<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;"><DIV>I worked some time for a company doing AEC using Speex on Windows.It is true it depends a lot on sound card models. I remember I could do AEC by resampling frequencies so play and record frequencies where equal.Frequencies where aprox 100Hz appart.Also, I know that on other cases AEC was achieved by disabling FX DirectSound effects where it wasn`t possible&nbsp;before that.Try to disable all you don´t need before calling Speex AEC function.</DIV>
<DIV>Also, I tried the&nbsp;ASIO driver,as an experiment. I think it worked, but it was of no practical use.</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>--- El <B>mar, 20/7/10, limaoquan2000 <I>&lt;limaoquan2000@126.com&gt;</I></B> escribió:<BR></DIV>
<BLOCKQUOTE style="BORDER-LEFT: rgb(16,16,255) 2px solid; PADDING-LEFT: 5px; MARGIN-LEFT: 5px"><BR>De: limaoquan2000 &lt;limaoquan2000@126.com&gt;<BR>Asunto: Re: [Speex-dev] Sound card problem in acoustic echo<BR>Para: speex-dev@xiph.org<BR>Fecha: martes, 20 de julio, 2010 10:27<BR><BR>
<DIV id=yiv1087619391>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" rel=nofollow target=_blank>您想拥有和网易免费邮箱一样强大的软件吗?</A> </SPAN></DIV><BR>-----Adjunto en línea a continuación-----<BR><BR>
<DIV class=plainMail>_______________________________________________<BR>Speex-dev mailing list<BR><A href="http://es.mc242.mail.yahoo.com/mc/compose?to=Speex-dev@xiph.org" ymailto="mailto:Speex-dev@xiph.org">Speex-dev@xiph.org</A><BR><A href="http://lists.xiph.org/mailman/listinfo/speex-dev" target=_blank>http://lists.xiph.org/mailman/listinfo/speex-dev</A><BR></DIV></BLOCKQUOTE></td></tr></table><br>