有谁知道在哪里可以找到一个 matlab 算法来获得音乐节奏(以每分钟节拍或其他度量)?我尝试了这个网站上的一个:http: //www.clear.rice.edu/elec301/Projects01/beat_sync/beatalgo.html 但没有给我很好的回应。
问问题
4776 次
3 回答
2
找到音乐信号的节奏可能是一项非常困难的任务。对于以固定速度播放单个音符的简单信号,也许 kol 提出的方法会起作用,但正如 Oli Charlesworth 所提到的,我认为它不够稳健,无法给你一个很好的估计更复杂的音乐信号的速度。
这与音乐声学(尤其是乐器演奏的音符的频率内容比一组正弦波复杂得多)和心理声学(尤其是确定音符的开始时间受到影响的事实有很大关系)由其谐波含量)
一个好的(虽然可能很难根据您的背景阅读)参考是:ftp: //wgs.esat.kuleuven.ac.be/sista/bli/scheirer_jasa.pdf
您还应该在 DSP 上阅读此问题的答案和评论:https ://dsp.stackexchange.com/questions/386/autocorrelation-in-audio-analysis 。
于 2011-11-14T09:25:24.597 回答
1
如果整个音乐曲目需要单个数字,则可以进行 FFT,并找到相关频带中的最大峰值。峰值的频率会给你节奏。
于 2011-11-13T23:11:55.860 回答
0
我没有尝试过哥伦比亚的这个包裹,但也许它会满足你的需要。特别是它包含一个tempo.m
计算音频波形 BPM 的函数。它似乎在 GPL 许可下可用。
希望对你有帮助!
于 2011-11-14T11:32:09.917 回答