[Speex-dev] Time Delay Estimation

Coffey, Michael mcoffey at avistar.com
Thu Jun 7 17:37:09 PDT 2007

Aha. By "frames" I assume you mean 10ms or 20ms or whatever I have
passed as frame_size to speex_echo_state_init. Correct? (I suppose I
could go to a smaller frame size if desiring finer precision.)

I gather that prop[] contains proportional adaptation rates. I guess
I'll have to read up on the MDF algorithm to get a better sense of what
that means.


-----Original Message-----
From: Jean-Marc Valin [mailto:jean-marc.valin at usherbrooke.ca] 
Sent: Thursday, June 07, 2007 4:55 PM
To: Coffey, Michael
Cc: speex-dev at xiph.org
Subject: Re: [Speex-dev] Time Delay Estimation

> Does the echo canceller maintain some data structure that I might be
> able to use if I wanted to estimate the amount of delay between the
> near-end and far-end signals? I'd like to be able to do this in order
> optimally align the signals before passing them to the canceller.
> seem to be many milliseconds of latency in a Wintel audio subsystem
> I would like to accurately compensate for that rather than just using
> huge echo tail.
> I would guess that the adaptive filter must compute some good data
> I could use as observations for a tracking algorithm.

If you don't need too much accuracy, you can look at the prop[] array.
The index of the largest element in "prop" will give you the delay in
frames. If you need more accurate, then you'll need to convert the
frequency-domain weights (W) tp time domain and look for the max.


More information about the Speex-dev mailing list