AnalyserNode.getByteFrequencyData() 返回的“bins”的赫兹频率是多少?

问题描述 投票:0回答:2

我目前正在开发一个项目,该项目使用 JavaScript 的 WebAudio API 来显示音频中的频率图。 AnalyserNode.getByteFrequencyData() 填充一个数组,该数组分为“bins”,每个都有一个频率范围。我想知道那些“垃圾箱”对应的频率(以赫兹为单位)。

我试过将每个 bin 解释为 1Hz 步长,但这显然是不对的。

javascript web-audio-api
2个回答
1
投票

这取决于样品。

数组中的每一项代表特定的分贝值 频率。 频率从 0 到 1/2 线性分布 采样率。例如,对于 48000 采样率,最后一项 数组将代表 24000 Hz 的分贝值。

https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/getByteFrequencyData


1
投票

来自MDN 文档

AnalyserNode.getByteFrequencyData()

数组中的每一项代表特定频率的分贝值。频率从采样率的 0 到 1/2 线性扩展。例如,对于

48000
采样率,数组的最后一项将表示
24000
Hz 的分贝值。

采样率可以从

sampleRate
AudioContext
属性获得(继承自
BaseAudioContext
docs for
BaseAudioContext.sampleRate

© www.soinside.com 2019 - 2024. All rights reserved.