gpt4 book ai didi

javascript - 使用 HTML5 网络音频 API 提取 mp3 文件的歌曲频率

转载 作者:技术小花猫 更新时间:2023-10-29 12:43:25 25 4
gpt4 key购买 nike

我正在使用 HTML5 网络音频 API 分析歌曲并在平均声音频率低于特定值时创建标记。使用现有的 AudioNode 基础设施,我设法做到了这一点,但仅在播放歌曲时才分析声音。

然而,我想要的是提前分析歌曲,这样我就可以提取静音标记,并将它们变成 CUE 按钮,用户可以使用它们在歌曲中移动。

显然,一开始依靠播放整首歌来分析它会很慢,尤其是当歌曲是 50 分钟的播客时。我尝试将 playbackRate 加速到 10 倍,但这没有帮助。

我认为解决方案在于跳过 Web 音频 API,并分析原始 ArrayBuffer,但是,我真的不知道从哪里开始。

建议?想法?

最佳答案

我已经能够在演示文稿中找到准确描述此内容的幻灯片:here

Normal use of the API is to process audio in real-time. Instead, we can pre-process the audio through the entire system and get result:

唯一的问题是我对音频 API 的理解过于简单,无法从代码示例中看出“技巧”是什么:

var sampleRate = 44100.0;
var length = 20; // seconds
var ctx = new webkitAudioContext(2, sampleRate * length, sampleRate);
ctx.oncomplete = function(e) {
var resultAudioBuffer = e.renderedBuffer;
...
};

function convolveAudio(audioBuffer, audioBuffer2) {
var source = ctx.createBufferSource();
var convolver = ctx.createConvolver();
source.buffer = audioBuffer;
convolver.buffer = audioBuffer2;

// source -> convolver -> destination.
source.connect(convolver);
convolver.connect(ctx.destination);

source.noteOn(0);
ctx.startRendering();
}

但我认为至少分享这个比完全保留它更好,即使这不是我希望给出的答案。

关于javascript - 使用 HTML5 网络音频 API 提取 mp3 文件的歌曲频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8699134/

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