【发布时间】:2014-04-27 19:27:26
【问题描述】:
我想我可能会对使用 AnalyserNode 感到有些困惑。我目前将我的 userAudio 流“line-in”连接到 AnalyserNode。然后我使用 getByteFrequencyData() 填充一个 Uint8Array。
当我播放单个 440Hz 音调时,我的阵列中强度最高的频率将是 468Hz 或 421Hz(取决于我改变它的程度)。有没有办法可以提高这些频率的分辨率,使其在 468 和 421Hz 之间有更多的频率?
当我用 440Hz 音调绘制 fft 数据时,您可以看到 468Hz 和 421Hz 处的两个强烈频率。有没有办法将 FFT 数据平均到一个单独的数组中,以便平均 468Hz 和 421Hz(以及其他点)数据点的强度?我想这就像在频率之间插入数据......
JSFiddle:http://jsfiddle.net/puYw3/(我不确定这是否真的有效,因为我当前的计算机上没有麦克风)。
【问题讨论】:
-
您可以将信号的频率(使用playbackRate 或失谐)移到较低的频率,然后分析此信号。 (也许一些过滤会有所帮助)。
-
您使用什么 FFT 大小(如果不是默认 2048)?你能展示一些代码/创建一个小提琴吗?
-
我只是使用默认的 2048。稍后我会附上一个 jsfiddle。
标签: javascript signal-processing web-audio-api audiocontext