在C中提取wav文件的音高

时间:2013-10-29 20:20:04

标签: android audio signal-processing pitch

我正在尝试提取wav文件(音乐)的每一帧的音高。我正在使用libsnd来阅读wav文件。我也愿意使用其他库

我做了一些研究,发现我们可以使用小吃库编写一个脚本来使用wavsurfer提取音高文件。小吃库在C(link)中可用,但我认为我们不能从该库中提取音调。

我的最终目标是将此库移植到android。因此,如果有一个已经移植到android的库,它将是非常有用的

2 个答案:

答案 0 :(得分:0)

snack manual的快速浏览中,您会使用声音对象的pitch方法来提取音高信息。我不知道小吃是否已移植到Android。如果没有,你需要付出一些努力。自己实现pitch detection algorithm可能要容易得多。记录Snack的音高法使用AMDF

在黑暗的过去一次构建DTMF(也就是触摸音)探测器时,我相信我们在样本数据包上使用FFT并将结果分级以查找与音频中心的近似匹配。但DTMF的设计易于检测。

音乐转录可能完全是另一种动物,很容易被乐器声音的和声内容所混淆。

答案 1 :(得分:0)

aubio实现了几种音高估计算法。它主要是普通的C代码,因此只要你不关心性能,移植到其他OS / CPU是微不足道的。

另请查看Sonic Visualizer。它可以显示许多音频功能。