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