David D. Hagood wrote:
> Wolfgang Fritz wrote:
>
>> Maybe it would be better to reenable harmonic checks but comparing
>> harmonic levels to the level of the fundamental instead of using
>> absolute values as in the present implementation.
>
>
> You mean the code DOESN'T normalize the signal to the total energy
> first?!?!? YEEP!
No. The original code used _absolute_ thresholds for the DTMF tones and
the harmonics. That did not work very well.
My simple patch added a relative energy comparision of the DTMF tones
and a simple plausibiltity check (DTMF is only accepted if there is
exactly one DTNF pair and no/low signal level on the other DTMF
frequencies. That worked with my (very limited) tests.
>
> The very FIRST thing you do is compute the total signal energy in the
> sample period, trivially reject if Etotal < MinETotal, then normalize
> all other signal energies to Etotal - that is a basic tenant of DSP.
>
My patch did a first step in that direction, but took only the energy
on the DTMF frequencies. That does not seem to be sufficient.
Another thing which may improve resistance against false DTMF detection
would be to require more than one consecutive samples to contain a valid
DTMF tone. See the link in one of my posts on lkml.
>
>> standard test procedure with a lot of test cases which are not
>> available to mortal humans (audio tapes from Bellcore IIRC)
>
>
> I think we may have the test cases as WAVs at work, and I think they are
> freely distributable - I'll kick a reminder to my work account off to
> check later today.
>
That would be nice. But that must be a rather big chunk of data - the
Mitel tape alone contains 30 minutes of speech, the Bellcore tapes even
more. Too much for my dialup line, I'm afraid.
Wolfgang
Well, I found out that while we have the DTMF test tape at work, it is
exactly that - a cassette tape that is copyrighted. So, no easy/legal
way to make it available for testing...
On Thu, Jan 09, 2003 at 05:32:51PM -0600, David D. Hagood wrote:
> Well, I found out that while we have the DTMF test tape at work, it is
> exactly that - a cassette tape that is copyrighted. So, no easy/legal
> way to make it available for testing...
What does such tape contain ?
- DTMF tones buried in various degrees of distortions,
which should be decodable ?
- DTMF tones buried in varying noises which should not be
decodable ?
- Other multi-tone signals which should not decode ?
For the last, I know of cases where test was done by playing a radio
station on the decoder for 2-3 days, and seeing when does it trigger
DTMFs (if ever).
For that matter, the Linux kernel ISDN audio DTMF detection is exactly
of the last variant.
/Matti Aarnio
> My simple patch added a relative energy comparision of the DTMF tones
> and a simple plausibiltity check (DTMF is only accepted if there is
> exactly one DTNF pair and no/low signal level on the other DTMF
> frequencies. That worked with my (very limited) tests.
I'm not sure if we're at the source of the problem. I mean - it should be
possible to set a minimum length as well, so just touching a key won't be
accepted. I beleive this'll remove most of the falsly detected dtmf signals
as well, as noone really holds the same tone for a long time while speaking
roy
--
Roy Sigurd Karlsbakk, Datavaktmester
ProntoTV AS - http://www.pronto.tv/
Tel: +47 9801 3356
Computers are like air conditioners.
They stop working when you open Windows.
Matti Aarnio wrote:
> What does such tape contain ?
> - DTMF tones buried in various degrees of distortions,
> which should be decodable ?
> - DTMF tones buried in varying noises which should not be
> decodable ?
> - Other multi-tone signals which should not decode ?
All that, plus voice (to detect falsing).
It's about 30 minutes long.