From: Kirill K. <kir...@sm...> - 2015-03-13 22:51:24
|
An almost default way to detect DTMF tones is the Goertzel filter <https://en.wikipedia.org/w/index.php?title=Goertzel_algorithm&oldid=401512443> (somebody rewrote the article since then making it totally indigestible, so here's a 2010 version). Generally, one filter per DTMF tone in the 4×4 grid (8 total) are run in parallel. Somewhat akin to the notch filterbank proposal by Vijayaditya, only much cheaper to compute, a 2-nd order IIR each. Be aware that there is no "speech on top" of DTMF tones. It either one or another. In telephony, only one is normally transmitted. A summation may somehow happen on an analog trunk, but in all digital protocols I am aware of, the payload can be only one of the two types, not both. So we can silence tones, but usually not restore speech interrupted by them. I'd love to help, but I am horrifically swamped in things currently. What is the timeframe that you have in mind? > -----Original Message----- > From: Daniel Povey [mailto:dp...@gm...] > Sent: 2015-03-12 2205 > To: kal...@li... > Subject: [Kaldi-developers] DTMF and dialtone detection > > Everyone, > > Something that is sometimes needed is code to detect DTMF tones and > dial tones. It would be good to have the option to remove them from > the audio in addition to detecting them (so we can correctly process > speech that occurs on top of DTMF tones). And this ideally should be > done in an algorithm which can be in principle applied online, as the > signal comes in. > Does anyone want to help with this? If so, you might want to draft an > interface for this. > > Dan |