我目前正在开发一个项目,该项目使用 JavaScript 的 WebAudio API 来显示音频中的频率图。 AnalyserNode.getByteFrequencyData() 填充一个数组,该数组分为“bins”,每个都有一个频率范围。我想知道那些“垃圾箱”对应的频率(以赫兹为单位)。
我试过将每个 bin 解释为 1Hz 步长,但这显然是不对的。
这取决于样品。
数组中的每一项代表特定的分贝值 频率。 频率从 0 到 1/2 线性分布 采样率。例如,对于 48000 采样率,最后一项 数组将代表 24000 Hz 的分贝值。
https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/getByteFrequencyData
来自MDN 文档
AnalyserNode.getByteFrequencyData()
:
数组中的每一项代表特定频率的分贝值。频率从采样率的 0 到 1/2 线性扩展。例如,对于
采样率,数组的最后一项将表示48000
Hz 的分贝值。24000
采样率可以从
sampleRate
的AudioContext
属性获得(继承自BaseAudioContext
;docs for BaseAudioContext.sampleRate
)