在Python中解析(提取)DTMF
如果我有一个录制好的音频文件(MP3格式),有没有办法用纯Python找出里面录制的DTMF音调?
(如果纯Python不行的话,Java也可以。关键是它应该能在Google Appengine上运行)
2 个回答
1
对数据进行快速傅里叶变换(FFT)。这样你会在两个音调的频率上看到尖峰。
7
首先,你需要把MP3文件解码成一种没有压缩的格式,也就是原始的音频样本,这样可以设置特定的位深和采样率。接下来,你要找出组成每个DTMF音调的频率。虽然可以用快速傅里叶变换(FFT)来实现这个,但更常用的方法是戈策尔算法(Goertzel Algorithm)。这个算法的好处在于,你在进行转换之前就已经知道你关心的频率是什么:http://en.wikipedia.org/wiki/Goertzel_algorithm
网上有一些免费的Python代码可以用戈策尔算法来检测DTMF音调,虽然我自己没试过,但你可以看看这个链接: