[Speex-dev] AEC with different soundcards

p_j_r_m p_j_r_m at yahoo.com
Tue Jul 7 12:20:38 PDT 2009

I used this "sample counting " method to resample and put my audio signals in synch.
It worked perfectly in XP machines using a SoundMax audio card, but it failed in other XPs using Realtek cards. 
As seen on http://lists.xiph.org/pipermail/speex-dev/2008-September/006889.html my application continously checked my AEC level to slighly modify resample frequency, but convergence was impossible with that audio cards.
Then, I used ASIO (through port-audio library) in those machines, and AEC worked again. But this solution wasn´t practical (user must install a special driver) so i can´t say if this method will work or not on *every* machine.  
I think it will not work on Vista, no mather what card you use.

Just my 2c.

--- El mar, 7/7/09, John Ridges <jridges at masque.com> escribió:

De: John Ridges <jridges at masque.com>
Asunto: Re: [Speex-dev] AEC with different soundcards
Para: "Alexander Chemeris" <Alexander.Chemeris at sipez.com>
CC: "speex-dev at xiph.org" <speex-dev at xiph.org>
Fecha: martes, 7 julio, 2009 9:36

Measuring clock drift is a thorny problem that depends greatly on your 
hardware setup and OS. In my case (Windows machines) I simply measure 
how many samples are played and captured in a given time period, and use 
that ratio to calculate the clock drift. Unfortunately these 
measurements are usually very noisy and require some high-powered 
filtering to get stable results that converge in a reasonable time. I'm 
afraid I'm not at liberty to get any more detailed than that. Sorry.

John Ridges

Alexander Chemeris wrote:
> AFAIK, that's a common point for all AECs. But some of them
> solve the problem by resampling on of the end to keep it in sync
> with the other.
> On Tue, Jul 7, 2009 at 5:14 PM, ggb<ggb at tid.es> wrote:
>> Thank you John.
>> On 07/06/2009 11:03 PM, John Ridges wrote:
>> ly synchronized, and therefore the clock drift adds a non-linear
>> factor to the audio path. The AEC can only cancel linear changes to the
>> audio path, and so the AEC never converges.
>> Is this a limitation common to all the AEC implementations/algorithms, or
>> just the speex one?
>> One solution is to measure
>> the clock drift and resample either the input or output signal so that
>> they *are* synchronized, and then the AEC can converge. It's not fun,
>> but it works.
>> Could you detail me how to measure the clock drift?  Any pointer to doc or
>> example?
>> I apologize for my lack of knowledge in this topic,
>> G.
>> _______________________________________________
>> Speex-dev mailing list
>> Speex-dev at xiph.org
>> http://lists.xiph.org/mailman/listinfo/speex-dev

Speex-dev mailing list
Speex-dev at xiph.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20090707/20df780a/attachment.htm 

More information about the Speex-dev mailing list