gpt4 book ai didi

javascript - 使用 WebAudioAPI 从 fft 返回哪种格式

转载 作者:行者123 更新时间:2023-11-30 17:30:06 27 4
gpt4 key购买 nike

我使用 WebAudioAPI 和 Dancer.js 可视化了一个音频文件。一切正常,但可视化效果看起来非常不同。谁能帮我找出为什么它看起来如此不同?

The Web-Audio-API code (fft.php, fft.js)

The dancer code (plugins/dancer.fft.js, js/playerFFT.js, fft.php)

WebAudioAPI 的可视化是: http://multimediatechnology.at/~fhs32640/sem6/WebAudio/fft.html

对于舞者是 http://multimediatechnology.at/~fhs32640/sem6/Dancer/fft.php

最佳答案

不同之处在于如何“找到”频率处的体积。您的代码使用分析器,它获取值并进行一些平滑处理,因此您的图形看起来不错。 Dancer 使用脚本处理器。每次经过特定样本长度时,脚本处理器都会触发回调,并将该样本传递给 e.inputBuffer。然后它只绘制“原始”数据,不应用平滑。

var
buffers = [],
channels = e.inputBuffer.numberOfChannels,
resolution = SAMPLE_SIZE / channels,
sum = function (prev, curr) {
return prev[i] + curr[i];
}, i;

for (i = channels; i--;) {
buffers.push(e.inputBuffer.getChannelData(i));
}

for (i = 0; i < resolution; i++) {
this.signal[i] = channels > 1 ? buffers.reduce(sum) / channels : buffers[0][i];
}

this.fft.forward(this.signal);
this.dancer.trigger('update');

这是 Dancer 用来获取频率声音强度的代码。

(这可以在 adapterWebAudio.js 中找到)。

关于javascript - 使用 WebAudioAPI 从 fft 返回哪种格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23299025/

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