我正在尝试提取wav文件(音乐)的每一帧的音高。我正在使用libsnd来阅读wav文件。我也愿意使用其他库
我做了一些研究,发现我们可以使用小吃库编写一个脚本来使用wavsurfer提取音高文件。小吃库在C(link)中可用,但我认为我们不能从该库中提取音调。
我的最终目标是将此库移植到android。因此,如果有一个已经移植到android的库,它将是非常有用的
答案 0 :(得分:0)
从snack manual的快速浏览中,您会使用声音对象的pitch
方法来提取音高信息。我不知道小吃是否已移植到Android。如果没有,你需要付出一些努力。自己实现pitch detection algorithm可能要容易得多。记录Snack的音高法使用AMDF。
在黑暗的过去一次构建DTMF(也就是触摸音)探测器时,我相信我们在样本数据包上使用FFT并将结果分级以查找与音频中心的近似匹配。但DTMF的设计易于检测。
音乐转录可能完全是另一种动物,很容易被乐器声音的和声内容所混淆。
答案 1 :(得分:0)
aubio实现了几种音高估计算法。它主要是普通的C代码,因此只要你不关心性能,移植到其他OS / CPU是微不足道的。
另请查看Sonic Visualizer。它可以显示许多音频功能。