Here's a question that may seem strange. 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 to optimally align the signals before passing them to the canceller. There seem to be many milliseconds of latency in a Wintel audio subsystem and I would like to accurately compensate for that rather than just using a huge echo tail. I would guess that the adaptive filter must compute some good data that I could use as observations for a tracking algorithm. I would appreciate hearing about any suggestions you may have. Thanks
> 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 to > optimally align the signals before passing them to the canceller. There > seem to be many milliseconds of latency in a Wintel audio subsystem and > I would like to accurately compensate for that rather than just using a > huge echo tail. > > I would guess that the adaptive filter must compute some good data that > 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. Jean-Marc
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. Thanks -----Original Message----- From: Jean-Marc Valin [mailto:jean-marc.valin@usherbrooke.ca] Sent: Thursday, June 07, 2007 4:55 PM To: Coffey, Michael Cc: speex-dev@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 orderto> optimally align the signals before passing them to the canceller.There> seem to be many milliseconds of latency in a Wintel audio subsystemand> I would like to accurately compensate for that rather than just usinga> huge echo tail. > > I would guess that the adaptive filter must compute some good datathat> 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. Jean-Marc