是否可以捕获音频并将其存储在阵列中?

时间:2013-11-30 21:37:27

标签: javascript audio fft

我想从麦克风或其他输入设备捕获声音,并将数据存储在数组中,然后使用javascript对FFT进行分析,搜索大量网站和主题,找不到任何有用的信息

1 个答案:

答案 0 :(得分:1)

当然可以,API还提供FFT分析器(但仅适用于实时音频流)。它被称为Web Audio API并且目前是草稿,但是得到了WebKit(你需要使用前缀)和Gecko少得多的支持。另请看http://caniuse.com/#feat=audio-api

要获取麦克风音频,您需要使用getUserMedia草稿中定义的Media Capture and Streams方法,一旦获得MediaStream,您就可以创建MediaStreamAudioSourceNode ,并将其附加到其他节点。要录制音频样本,我建议尝试ScriptProcessorNode,另一个有用的节点是Analyzer节点。

Here是我几个月前做的一个小实验,我只在Chrome上试过,但应该可以使用任何WebKit浏览器。它基本上接收麦克风音频流并将其传递给分析器节点,该节点执行每帧(屏幕帧)FFT,在画布上绘制并用于确定音符(您只需通过鼠标单击设置阈值在画布上的任何地方)。然后在振荡器节点上重现猜测的音符。