gpt4 book ai didi

javascript - 使用 AnalyserNode 提高 FFT 分辨率

转载 作者:行者123 更新时间:2023-11-30 05:36:38 33 4
gpt4 key购买 nike

我想我可能对使用 AnalyserNode 有点困惑。我目前将我的 userAudio 流“输入”连接到 AnalyserNode。然后我使用 getByteFrequencyData() 填充一个 Uint8Array。

当我播放单个 440Hz 音调时,阵列中强度最高的频率将是 468Hz421Hz(取决于我改变它的程度)。有没有一种方法可以提高这些频率附近的分辨率,使其在 468 到 421Hz 之间具有更多频率?

当我用 440Hz 音调绘制 fft 数据时,您可以看到 468Hz 和 421Hz 处的两个强烈频率。有没有办法将 FFT 数据平均到一个单独的数组中,以便平均 468Hz 和 421Hz(以及其他点)数据点的强度?我想这就像在频率之间插入数据......

JSFiddle:http://jsfiddle.net/puYw3/ (我不确定这是否真的有效,因为我当前的计算机上没有麦克风)。

最佳答案

来晚了一点,但也许有人会发现它有用。

您可以使用属性 fftSize 增加 fft 的“分辨率”分析器节点。

由于 fftSize 的最大值是有限的(我相信在写这篇文章的时候大约是 2^15)你最终还是会得到相当不精确的值。使用 parabolic peak interpolation 可以提高精度

关于javascript - 使用 AnalyserNode 提高 FFT 分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23327949/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com