Hi all,<br><br>The conclusion of the discussion is that most sound cards indeed have<br>different capture and playing frequencies for the unknown reasons.<br>But we all know the adaptive filter of the AEC relies on the synchronization<br>of the far-end and near-end sampling rates.<br><br>Then Has anybody tried to use speex AEC in Windows system? How do you<br>solve this problem?<br>(I have tested speex AEC. In most computers, it has poor echo cancelltion<br>effect. Of course, the sound cards of these computers have different capture<br>and playing frequencies.)<br><br>But why MSN and Skype exhibit almost perfect echo cancelltion effect in<br>the same computers? <br>What should we do to use AEC in most computers?<br>(Don't tell me to change a sound card.)<br><br>>><br>>> From: Steve Underwood <steveu@coppice.org <mailto:steveu@coppice.org>><br>>><br>>> > It seems some cards use a PLL for their ADC, so they can lock to an<br>>> > incoming SPDIF signal, but always use a local crystal clock source for<br>>> > their DAC. These cards do not have their ADC and DAC synchronised.<br>>><br>>> Do common on-board or PCI sound card lock to some incoming signal?<br>>><br>>I already said they do, and what the lock to - SPDIF ports. Most modern <br>>machines have one, and if they don't its generally still there in the <br>>chipset, and there is simply no socket provided.<br>>><br>>> Yes, there is a crystal oscillator and a PLL or divider to generate<br>>> assigned clock signal. But if playing and capture are assigned the<br>>> same sampling rate, why clock of ADC and DAC are not synchronised?<br>>><br>>There seems no good reason why the DAC rate should not be synchronised <br>>to the ADC rate. In reality, this frequently doesn't happen.<br>>><br>>> 1. If it is a pure hardware sound card (no incoming SPDIF signal).<br>>> Why not send ONE clock signal to ADC and DAC?<br>>><br>>Because the ADC always runs from the same PLL source, presumably for <br>>simplicity.<br>>><br>>> 2. if it is a AC97 or HD sound card, clock frequencies of their hardware<br>>> ADC and DAC are all fixed to 48/196KHz. Then why their are still not<br>>> synchronised?<br>>><br>>Not really. They are *approx* 48kHz or *approx* 192kHz.<br>>><br>>> > It seems like Skype's speakerphone works OK on these machines, so maybe<br>>> > they do something tricky to measure the slip rate and resynchronise in<br>>> > software. On the other hand, they might just fall back to a crude echo<br>>> > suppression scheme. Skype seems to do a reasonable job, though.<br>>><br>>> It is difficulty to measure the accurate difference between two sampling<br>>> rate by a software in a short time. So I don't believe Skype do some kind<br>>> of resynchronise or re-sampling work.<br>>><br>>They have plenty of time. It is possible to do the necessary resync <br>>*provided* the PLL doesn't drift around too much when it is not being <br>>driven by a proper source. Concern about that point might make them <br>>avoid it completely.<br>>><br>>> From: Guilherme Balena Versiani <guibv@comunip.com.br <br>>> <mailto:guibv@comunip.com.br>><br>>><br>>> > Yeah, the ADC and DAC work at different rates. I really don't know <br>>> why these<br>>> > soundcards are designed this way, but I can tell you that this is very<br>>> > common. In fact, I didn't ever find a soundcard with the same <br>>> capture and<br>>> > render rates.<br>>><br>>> If it is very common. I have tested more than 20 sound cards. Only 2 <br>>> sound cards<br>>> have exactly the same capture and render rates.<br>>><br>>> > If you want to sinchronize capture and render parts, you need to <br>>> implement a<br>>> > kind of buffer control, referenced as "skew control" (check it out). <br>>> There<br>>> > is a very common control that removes or increases the delay when <br>>> there is<br>>> > not enough energy on the output stream (i.e. the voice being <br>>> acquired by the<br>>> > microphone).<br>>><br>>> Sorry, I don't think so. It will cause sudden change of the echo delay <br>>> which<br>>> is harmful to the adaptive filter of AEC.<br>>><br>>> > But these kind of controls seem to put AEC of Speex crazy... When <br>>> the skew<br>>> > control occurs, normally the AEC stops to work fine.<br>>><br>>> Yes, of course.<br>>><br>>><br>>It is quite possible that most hardware actually has the ability to <br>>select clocking arrangements that will ensure the ADC and DAC operate in <br>>lock step. Maybe the facility just isn't exposed in a usable way. In the <br>>end the reasons don't matter all the much. You have to live with what <br>>you get.<br><br>>Steve<br><br><br><span title="neteasefooter"/><hr/>
<a href="http://qiye.163.com/?163" target="_blank">您想拥有和网易免费邮箱一样强大的软件吗?</a>
</span>