[Speex-dev] AEC with different soundcards
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.
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
>> I apologize for my lack of knowledge in this topic,
>> Speex-dev mailing list
>> Speex-dev at xiph.org
Speex-dev mailing list
Speex-dev at xiph.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Speex-dev