我可以配置 getByteFrequencyData() 的频率范围吗?
Can I configure the frequency range of getByteFrequencyData()?
我正在使用 JavaScript 网络音频 API 创建频率查看器。
显然 getByteFrequencyData
在数组中分配从 0 到 255 的频率增益,但频率显然是从 20Hz 到 20kHz,我想知道我是否可以调节存储的频率范围。例如,我想要 20Hz 到 800Hz,而不是 20Hz 到 20kHz。
编辑:
显然,fftSize 会导致频率范围减小,但如果增加很多,就会给分析留下很多延迟。
不,您不能真正配置范围。频率范围始终为 0 到 context.sampleRate / 2
。更改 fftSize
只会更改覆盖范围的 bin 数。
如果您只需要 20-800 Hz 的范围,只需采用覆盖该区域的一组 bin。你会丢掉很多数据,但能做的却不多。
我真的认为 AnalyserNode
确实是为了可视化,而不是分析,尽管名称如此。
我正在使用 JavaScript 网络音频 API 创建频率查看器。
显然 getByteFrequencyData
在数组中分配从 0 到 255 的频率增益,但频率显然是从 20Hz 到 20kHz,我想知道我是否可以调节存储的频率范围。例如,我想要 20Hz 到 800Hz,而不是 20Hz 到 20kHz。
编辑:
显然,fftSize 会导致频率范围减小,但如果增加很多,就会给分析留下很多延迟。
不,您不能真正配置范围。频率范围始终为 0 到 context.sampleRate / 2
。更改 fftSize
只会更改覆盖范围的 bin 数。
如果您只需要 20-800 Hz 的范围,只需采用覆盖该区域的一组 bin。你会丢掉很多数据,但能做的却不多。
我真的认为 AnalyserNode
确实是为了可视化,而不是分析,尽管名称如此。