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

Posted

技术标签:

【中文标题】Web Audio API:当使用媒体流时,Firefox 中的 FFT 数据与 chrome 中的不同?【英文标题】:Web Audio API: FFT data in firefox differ from those in chrome, when using media stream? 【发布时间】:2014-09-04 14:08:40 【问题描述】:

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

我使用createMediaStreamSource 作为源节点。我使用 getByteFrequencyData 方法 (sample size = 1024) 使用来自 Analyzer 节点的 FFT 数据。

来自 FFT 数组的数据在 chrome 和 firefox 中完全不同(在 firefox 中,频谱的大小总是更小(更小的向量维度)和更小的值(更低的值),而不是 Chrome,与 Chrome 相比,它看起来还可以例如 Audacity 中的其他 FFT 算法)。即使我使用来自https://webaudiodemos.appspot.com/AudioRecorder/index.html 的录音机并将录音放入其中一个音频分析器应用程序(windows 上的大胆),我也会得到this (image)。

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

感谢您的帮助。

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

感谢您的回答,我们认为这与 Firefox 处理有关,只是不确定。所以这个答案很有帮助。

以上是关于Web Audio API:当使用媒体流时,Firefox 中的 FFT 数据与 chrome 中的不同?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Web Audio API 中将 SoundManager2 定义为媒体元素源

Web API 服务在读取流时挂起

使用 Web Audio API 为声音的开头添加静音 [关闭]

关于Web Audio API的入门

无法使用Web Audio API与iOS 11 Safari配合使用

可以使用 Web Audio API 和 createMediaElementSource 分析来自 Icecast 的流式音频吗?