![](/img/trans.png)
[英]HTML5 web audio API wavesurfer.js crashes on large mp3 files
[英]Extracting the song frequency of an mp3 file using HTML5 web audio API
我正在使用HTML5網絡音頻API來分析歌曲,並在平均聲音頻率低於某個值時創建標記。 使用現有的AudioNode基礎設施,我設法做到這一點,但只分析聲音,並且僅在播放歌曲時。
然而,我想要的是提前分析歌曲,這樣我就可以提取靜音標記,並將它們變成CUE按鈕,用戶可以使用這些按鈕在整首歌曲中移動。
顯然,首先依靠播放整首歌來進行分析是很慢的,特別是如果這首歌是50分鍾的播客。 我嘗試將playbackRate加速到10倍,但這沒有用。
我認為解決方案在於跳過Web音頻API,並分析原始ArrayBuffer,但是,我真的不知道從哪里開始。
建議? 想法?
我已經能夠在其中找到確切地描述了這個演示幻燈片: 在這里
API的正常使用是實時處理音頻。 相反,我們可以通過整個系統預處理音頻並獲得結果:
唯一的問題是我對音頻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傅里葉變換。 根據您的需求,我看到了有關該主題的幾個有用鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.