我正在构建一个应该在服务器上运行并分析声音文件的工具。我想在Ruby中执行此操作,因为我的所有其他工具也是用Ruby编写的。但我很难找到完成此任务的好方法。我发现的很多例子都是在做可视化和图形化的东西。我只需要FFT数据,仅此而已。我既需要获取音频数据,又需要对其进行FFT。我的最终目标是计算一些东西,例如所有频率(加权幅度)的均值/中值/众数、第25个百分位数和第75个百分位数、BPM,也许还有其他一些好的特性,以便以后能够将相似的声音聚集在一起.首先,我尝试使用ruby-audio和fftw3,但我从未将两者真正结合使用。文档也不好,所以我真的不知道有什么数据被洗牌了。接下来,我尝
我最近一直在研究ruby,我决定开始一个简单的项目来编写一个ruby脚本,将线路输入声音记录到.wav文件中。我发现ruby不能很好地访问硬件设备(它可能不应该),但是PortAudio可以,而且我发现了一个很棒的PA包装器here(它不是gem,我认为是因为它使用ruby的ffi附加到PortAudio,而且PA库可能在很多地方)。我一直在摸索PortAudio的文档和示例以了解PA的工作原理。我已经很多年没有写过或读过C了。我在创建过程中应该将哪些参数传递给流以及在创建过程中传递给缓冲区时遇到了困难。例如,frame到底是什么,它与channel和samplerat
出于某些原因,我有一个网页可以解码wave文件。Chrome和Safari似乎工作正常。Firefox有时无法解码文件并给出错误:“传递给decodeAudioData的缓冲区包含无法成功解码的无效内容。”我创建了一个jsfiddle这说明了这个问题:varaudioCtx=new(window.AudioContext||window.webkitAudioContext)();varsource;functiongetData(){source=audioCtx.createBufferSource();request=newXMLHttpRequest();request.ope
目录WAV和PCM的简单介绍PCMWAV关于音频的基础知识声道数channels采样位数bits采样频率sample_rate进阶内容互相转换代码WAV和PCM的简单介绍PCMpcm:pulsecodemodulation,脉冲编码调制。将声音等模拟信号变成符号化的脉冲列,予以记录。是由[0]、[1]等符号构成的数字信号,未经过任何编码和压缩处理。pcm是没有压缩的编码方式。WAVwav:wav是一种无损音频文件格式,wav都有一个文件头,文件头包括音频流的【编码参数】,而对音频流的编码没有硬性规定,符合ACM规范的编码都行,所以wav格式通常只要在其他编码(pcm、MP3)下,加相应的dec
我正在尝试用html5制作一个网页,该网页将来自wav文件的示例数据存储在一个数组中。有没有办法用javascript获取样本数据?我正在使用文件输入来选择wav文件。在我已经添加的javascript中:document.getElementById('fileinput').addEventListener('change',readFile,false);但我不知道在readFile中做什么。编辑:我试图在ArrayBuffer中获取文件,将其传递给decodeAudioData方法并从中获取typedArraybuffer。这是我的代码:varopenFile=function
我使用file_get_contents在PHP中读取WAV文件,我想使用包github.com/mjibson/go-dsp/wav对于Go中的相同任务。但是没有关于这个包的任何简单示例。我是Go的新手,不了解它。有没有人指导我或建议其他方法?PHP代码:$wsdl='http://myApi.asmx?WSDL';$client=newSoapClient($wsdl));$data=file_get_contents(public_path()."/forTest/record.wav");$param=array('userName'=>'***','password'=>'*
我已经在debian上安装了ffmpeg,我尝试了这两个命令行。同一个目录下有两个文件,分别是first.wav和second.wav第一种方法是创建一个txt文件,在a.txt里面,它们是file'first.wav'file'second.wav'我跑了ffmpeg-fconcat-ia.txt-ccopyfinal.wav然后我运行它,它可以正常工作。但我想尝试另一种方法,这是ffmpeg-i"concat:first.wav|second.wav"-ccopyfinal2.wavsdcond命令行没有错误,但它只捕获了第一个文件,final2.wav的长度与first.wav几
在WindowsXP中,您可以通过预装的Windows软件配置声卡属性。在录音属性中,如果选择“stereomix”或“waveout”(或类似的东西)作为录音设备,可以录制音频的程序(例如windows中的“SoundRecorder”)会录制出质量不错的wave文件音频流。我通常使用download.com的Goldwave来执行此操作,作为功能相同的第三方应用程序的示例。好吧,我很难让这种情况以如上所述的直接no-bullsh*t方式在WindowsVista或更高版本上发生。不仅仅是Vista+,还有一些声卡根本没有那个选项。我只是想知道是否有一种方法可以运行一个windows
当我的vpn客户端断开连接时,我正在尝试播放wav文件。听从Howtocheckifaprocessisrunningviaabatchscript的MattLacey的建议我有以下内容:delsearch.logtasklist/FI"WINDOWTITLEeqVPNClient"/FOCSV>search.logFOR/F%%AIN(search.log)DOIF%%~zAEQU0GOTOendstartalarm.wav:end当search.log内容为空时,播放alarm.wav。但我不希望它在search.log为空时播放。我希望它在search.log中包含以下信息时播放
我已经在Windows命令行中编写了一个批处理程序来获取立体声wav文件,并使用soxv.14.4.0音频程序将左右声道拆分为单独的FLAC文件。像这样..for/r%%nin(*.wav)do(C:\sox\sox.exe%%n-c1%%n.left.flacremix1C:\sox\sox.exe%%n-c2%%n.right.flacremix2)但是,这比我希望的要长一些。我对此进行了更多研究,看来我可以使用SOX_OPTS和--multi-thread选项以及--buffer来同时执行两个sox操作。Sox文档说明了这一点:SOX_OPTS环境变量可用于为SoX的全局选项提供