algorithm - 检测声音文件中的重复

标签 algorithm audio

我真的不知道我的想法是否可行,但管他呢。

我有一些游戏音乐的 MP3。这个游戏音乐是用 Tracker 格式渲染的,这意味着在某些时候轨道会循环回到更早的点,所以它是这样的:

Intro---|Main loop-------------------|Main loop-------------------|Main loop fade|

或以“正则表达式”形式:

/^\p{Intro}(\p{Main_0}\p{Main_1}\p{Main_2})+\p{Main_0}\p{Main_1_fading}$/

我希望这能传达正在发生的事情!

基本上,我想知道是否可以根据波形的重复来检测主循环的开始和结束。这个想法是因为它们是从跟踪器格式呈现的,所以循环之间的波形应该完全相同,即使在以 MP3 格式“烘焙”之后也是如此。

如果这是可能的,我怎样才能找到这样一个重复循环?目标是以编程方式扩展这些循环轨道以重复更多次,因此我不必手动执行。

在这个阶段,我只是在寻找解决问题的通用算法。我可以计算出如何读取 MP3 文件的波形、处理它并毫无困难地保存一个新波形,我在这里需要帮助的是如何找到波形的重复部分。有没有人有什么智慧可以传授?

最佳答案

寻找最大值。 autocorrelation 的峰-function 应该可以帮助您找到信号中的重复项。

关于algorithm - 检测声音文件中的重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26734219/

相关文章:

生成一组整数的不同大小的所有排列的算法?

algorithm - 在 Processing 中使用正弦算法简化跟踪

java - 插入声音/音频

javascript - 使用 JavaScript 代码创建音频对象

java - 如何在树中找到连接的道路元素

performance - 时间复杂度 - 计算算法的最坏情况

algorithm - 以下如何等同于 O(N)

touch-event - 动态壁纸onTouchEvent ACTION_DOWN仅播放声音片段的1/3

python - 在给定的时间戳下以python播放音频

java - 如何在不更改Java中单个属性的情况下以wave格式连接多个音频文件