Web Audio API:使用媒体流时,firefox 中的 FFT 数据与 chrome 中的不同?

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

我正在尝试使用网络音频 API 对从麦克风获取的数据进行频率分析。我需要实时数据(您可以通过 1024 个样本的窗口大小获得实时数据)。

我使用

createMediaStreamSource
作为源节点。我通过
getByteFrequencyData
方法 (
sample size = 1024
) 使用了来自分析器节点的 FFT 数据。

FFT 数组的数据在 Chrome 和 Firefox 中完全不同(在 Firefox 中,频谱总是尺寸较小(矢量维度较小)且值较小(值较低),而 Chrome 与其他 FFT 相比似乎还不错例如 Audacity 中的算法)。即使我使用来自 https://webaudiodemos.appspot.com/AudioRecorder/index.html 的音频录音机并将录音放入其中一个音频分析器应用程序(Windows 上的audacity)中,我也会得到 这个(图像)

我想知道为什么 Firefox 中的频谱与 Chrome 中的频谱不同。

感谢您的帮助。

javascript api audio web
2个回答
3
投票

这是因为我们 (Firefox) 自动对输入应用处理(回声消除、噪声抑制)并在输入音频流上使用 16kHz 采样率。

情况将会改变,但现在就是这样,对此感到抱歉。

将来可以请求输入采样率并停用任何处理。


0
投票

我对 Web Audio API 也有类似的相关问题,Android 中的 Chrome、Opera、Edge 浏览器似乎将音频采样率限制为 16kHz,但对于 Firefox,它似乎在 48kHz 下工作得很好。我的帖子在以下链接:

JavaScript Web Audio API - Android 上的音频采样率问题 JavaScript Web Audio API - Android 上的音频采样率问题

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