我想在浏览器中分析来自麦克风输入的分辨率<1Hz
普通网络音频分析器节点的最大 FFT_SIZE为32768.对于正常采样率(48kHz),这会产生 ~1.4Hz 的分辨率。
现在我想使用jsfft或类似的东西进行频率变换。我想收集65536个音频样本,因为这个fft大小应该达到~0.7Hz的分辨率。 (时间分辨率并不重要)
不幸的是,ScriptProcessorNode的最大缓冲区大小也只有16384 我希望将其4个缓冲区组合到一个Float32Array中。 我以为会有像
这样的东西copyChannelData(array, offset, length)
但只有
getChannelData(array)
因此,如果我理解正确的话,我必须先复制更大阵列中的所有数据才能完成fft。
只是为了确保我不会错过任何内容...... 有没有办法直接将数据检索到我的大阵列?
答案 0 :(得分:2)
不,您需要复制数据。无论如何,这种方法效率很低(ScriptProcessor,我的意思) - 副本不是你最担心的,因为你基本上需要复制那些数据。