gpt4 book ai didi

javascript - 使用网络音频 API 进行峰值检测?

转载 作者:行者123 更新时间:2023-12-03 00:29:40 25 4
gpt4 key购买 nike

TL;DR - 我想使用 Javascript 来检测鼓手的节拍音轨(仅包含节拍的 mp3)中的每次点击,然后将其替换为不同点击声的 .wav 样本。鼓手的节拍音轨不是恒定时间的,因此我无法简单地检测 BPM 并从中替换样本。

我有一个任务想用 Javascript 和网络音频 API 来实现,但我不确定使用其中任何一个是否真的可以......

基本上,我经常使用录制的歌曲背景音轨,并用自定义节拍样本(一个 .wav 样本用于小节的第一拍,另一个样本用于小节的第一拍)替换默认的节拍音轨(鼓手演奏的节拍器轨道)。任何给定小节中的剩余节拍)。令人烦恼的是,许多鼓手节拍音轨都不是在恒定的时间内 - 因此从开始到结束没有恒定的 BPM。

我想检测节拍音轨中的每次节拍(每个峰值声波),然后将其替换为 .wav 样本,并将最终文件下载为 MP3。这可能吗?

最佳答案

WebAudio 中没有内置方法可以执行此操作。您必须使用 ScriptProcessorNode 来实现峰值检测器或AudioWorkletNode 。一旦获得每个峰值的位置,您就可以安排替换点击次数以在点击时间开始播放。带有 OfflineAudioContext ,即可得到PCM结果。要获得压缩版本(可能不是 mp3),我认为您需要使用 MediaRecorder .

关于javascript - 使用网络音频 API 进行峰值检测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53926361/

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