[Speex-dev] Sound card problem in acoustic echo cancellation
LiMaoquan2000 at 126.com
Wed Jun 9 19:32:27 PDT 2010
From: Steve Underwood <steveu at coppice.org>
> It seems some cards use a PLL for their ADC, so they can lock to an
> incoming SPDIF signal, but always use a local crystal clock source for
> their DAC. These cards do not have their ADC and DAC synchronised.
Do common on-board or PCI sound card lock to some incoming signal?
Yes, there is a crystal oscillator and a PLL or divider to generate
assigned clock signal. But if playing and capture are assigned the
same sampling rate, why clock of ADC and DAC are not synchronised?
1. If it is a pure hardware sound card (no incoming SPDIF signal).
Why not send ONE clock signal to ADC and DAC?
2. if it is a AC97 or HD sound card, clock frequencies of their hardware
ADC and DAC are all fixed to 48/196KHz. Then why their are still not
> It seems like Skype's speakerphone works OK on these machines, so maybe
> they do something tricky to measure the slip rate and resynchronise in
> software. On the other hand, they might just fall back to a crude echo
> suppression scheme. Skype seems to do a reasonable job, though.
It is difficulty to measure the accurate difference between two sampling
rate by a software in a short time. So I don't believe Skype do some kind
of resynchronise or re-sampling work.
From: Guilherme Balena Versiani <guibv at comunip.com.br>
> Yeah, the ADC and DAC work at different rates. I really don't know why these
> soundcards are designed this way, but I can tell you that this is very
> common. In fact, I didn't ever find a soundcard with the same capture and
> render rates.
If it is very common. I have tested more than 20 sound cards. Only 2 sound cards
have exactly the same capture and render rates.
> If you want to sinchronize capture and render parts, you need to implement a
> kind of buffer control, referenced as "skew control" (check it out). There
> is a very common control that removes or increases the delay when there is
> not enough energy on the output stream (i.e. the voice being acquired by the
Sorry, I don't think so. It will cause sudden change of the echo delay which
is harmful to the adaptive filter of AEC.
> But these kind of controls seem to put AEC of Speex crazy... When the skew
> control occurs, normally the AEC stops to work fine.
Yes, of course.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Speex-dev