views:

88

answers:

4

Hi have made one source in python for get fundamental frequecys from audio files, i want use this for get tones from DTMF audios !

but how get the low tones from the audio?

thks!!

+3  A: 

To get frequencies that appear in a wave (any sound, not only DTMF, and all other wave forms), you can apply the Fast Fourier Transform.

When you apply it to a DTMF, you'll get two peaks for the two freqs that the signal contains.

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

Ivan
A: 

Exactly im apply FFT but its return always the High Frequency.

the table for frequencys here

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

For exemple when i get one .wav audio file of key "1" i have just the requency 1209

how get the low frequency in this case for key "1" is 697, FFT dont give me this :-(

Eder
+3  A: 

Since you only need information on a few frequencies with DTMF, you might want to try using the Goertzel algorithm for each frequency. You don't need all the FFT bins; and you might be able to target the frequencies of interest more precisely, depending on the time window, then wherever the FFT bins end up centered.

Compare the magnitude outputs of the Goertzel filters with the RMS total energy to make some decision for tone presence. Then do a table look up for the DTMF frequencies present to get the code.

hotpaw2
+1  A: 

John Etherton ([email protected]) posted a nice module for DTMF tone detection in Python on his blog.

synthesizerpatel