更改音频速度,然后另存为新文件

Change audio speed then save as new file

本文关键字:新文件 文件 另存为 然后 音频 速度      更新时间:2023-09-26

我是否可以用javascript以编程方式更改音频文件的播放速度并将其保存为新文件?

我能想到的唯一解决方案是通过网络音频api节点传输音频文件,改变播放速率,并将输出记录为wav文件。但这并不理想,因为我必须全程播放该文件才能录制新版本。

您可以使用离线音频上下文(Web audio API)来处理音频。这将处理音频,而不必等待实时播放。

//will hold the sped up audio
var spedUpBuffer;
//Create the context 
var offlineCtx = new OfflineAudioContext(2,44100*40,44100);//(channels,length,Sample rate);
//create source node and load buffer
var source = offlineCtx.createBufferSource();
source.buffer = yourBuffer;
//speed the playback up
source.playbackRate.value = 1.25;
//lines the audio for rendering
source.start(0);
//renders everything you lined up
offlineCtx.startRendering();
offlineCtx.oncomplete = function(e) {
//copies the rendered buffer into your variable.
spedUpBuffer = e.renderedBuffer;
}