Javascript AnalyzerNode低频(低音)

Javascript AnalyzerNode低频(低音),javascript,web,html5-audio,web-audio-api,Javascript,Web,Html5 Audio,Web Audio Api,我已经阅读了有关AnalyzerNode的文章,也尝试去理解W3C文档。 我有一个工作代码: 但极低的“低音”频率仅占5巴左右。。 是否可以更详细地显示较低的频率?否,不使用分析仪的较大FFT。数学在FFT中的工作方式是,容器线性展开;如果你想要更多的细节,你需要在整个频谱中获得更多的细节(当然,需要相应的CPU成本)。@cwilso基本上是正确的 但这里有一个替代方案,它将通过(相当多的)工作、分析和思考来获得你想要的 对信号进行低通滤波,以获得您感兴趣的低频率。切断信号。将此信号保存在音频

我已经阅读了有关AnalyzerNode的文章,也尝试去理解W3C文档。 我有一个工作代码:

但极低的“低音”频率仅占5巴左右。。
是否可以更详细地显示较低的频率?

否,不使用分析仪的较大FFT。数学在FFT中的工作方式是,容器线性展开;如果你想要更多的细节,你需要在整个频谱中获得更多的细节(当然,需要相应的CPU成本)。

@cwilso基本上是正确的

但这里有一个替代方案,它将通过(相当多的)工作、分析和思考来获得你想要的

对信号进行低通滤波,以获得您感兴趣的低频率。切断信号。将此信号保存在音频缓冲区中。使用
AudioBufferSource
AnalyserNode
创建一个
OfflineAudioContext
。运行脱机上下文并从分析仪获取频率数据

例如,假设上下文以48 kHz的频率运行。我们希望将频率细化到3 kHz以下。因此,创建截止频率为3 kHz的低通滤波器。(使用单个IIRFilter或多个双四阶滤波器级联。)将过滤后的音频发送到AudioWorklet或ScriptProcessor。该节点仅保留每16个样本,将信号减少8倍(48/(2*3))。收集足够的数据并将其保存在采样率为6 kHz的音频缓冲区中。该抽取产生带宽为3 kHz、采样率为6 kHz的信号。因此,信号的有趣部分占据了整个带宽


现在我们有了这个缓冲区,创建一个采样率为3 kHz的脱机上下文。在此上下文中,使用该缓冲区创建AudioBufferSourceNode,并将其传递给AnalyzerNode。从分析仪获取频率数据。如果使用1024个点,则每个频率单元现在为3 kHz/1024或约3 Hz宽。您已经改进了低频率。

代码不能从图像运行,因此请包含您的代码而不是图像。我很想了解有关此方法的更多详细信息。我仍然在学习很多关于音频的知识,但是我在理解你的说明时遇到了一些困难。啊,我的回答是不正确的。它是用来精炼高频的。我很快会用更好的答案更新它。