2010-09-18 76 views
-1

您已經在python中獲得一個來源從音頻文件中獲得基本frequecys,我想用它來獲得來自DTMF音頻的音調!如何從DTMF音低頻率

但是如何從音頻中獲得低音?

thks !!


確切地說,即時應用FFT,但其返回總是高頻。

的表frequencys這裏

http://www.mediacollege.com/audio/tone/dtmf.html

對於爲例,當我拿到關鍵的一個.WAV音頻文件「1」我剛纔在requency 1209

如何獲得這個低頻對於鍵「1」的情況是697,FFT不給我這個:-(

+0

由於DTMF原則上是等幅正弦波,所以應該可以通過計算零交叉來做這個測試,對嗎? – flies 2010-09-24 16:22:08

+0

John Etherton在他的博客中爲Python中的[DTMF音頻檢測發佈了一個很好的模塊。](http://johnetherton.com/projects/pys60-dtmf-detector) – synthesizerpatel 2010-09-20 07:12:43

回答

3

要獲得波中出現的頻率(任何聲音,不僅DTMF,和所有其他波形),您可以應用快速傅里葉變換。

當您將其應用於DTMF時,您將得到信號所包含的兩個頻率的兩個峯值。

http://en.wikipedia.org/wiki/Fast_Fourier_transform

3

因爲你只需要與DTMF幾個頻率的信息,你可能想使用Goertzel algorithm每個頻率嘗試。你不需要所有的FFT分箱;並且您可以根據時間窗口更精確地定位感興趣的頻率,然後在FFT分箱最終居中的任何位置。

將Goertzel濾波器的幅度輸出與RMS總能量進行比較,以確定音頻的存在。然後做一張表查找DTMF frequencies目前的代碼。