Hi&nbsp; Vasant,<br><pre>&gt;I&nbsp;am&nbsp;doing&nbsp;this&nbsp;right&nbsp;now&nbsp;with&nbsp;no&nbsp;problem.&nbsp;&nbsp;I&nbsp;am&nbsp;not&nbsp;using&nbsp;speex&nbsp;for&nbsp;this&nbsp;at&nbsp;the&nbsp;moment&nbsp;though.&nbsp;&nbsp;Group&nbsp;delay&nbsp;is&nbsp;the&nbsp;biggest&nbsp;problem.&nbsp;&nbsp;I&nbsp;implemented&nbsp;a&nbsp;version&nbsp;where&nbsp;the&nbsp;input&nbsp;and&nbsp;output&nbsp;sample&nbsp;rates&nbsp;are&nbsp;known&nbsp;up&nbsp;front.&nbsp;&nbsp;The&nbsp;routine&nbsp;than&nbsp;interpolates&nbsp;between&nbsp;the&nbsp;jitter.&nbsp;&nbsp;This&nbsp;should&nbsp;solve&nbsp;the&nbsp;problem.&nbsp;&nbsp;The&nbsp;crystals&nbsp;used&nbsp;to&nbsp;clock&nbsp;the&nbsp;input&nbsp;and&nbsp;output&nbsp;have&nbsp;very&nbsp;fine&nbsp;tolerances&nbsp;on&nbsp;most&nbsp;standard&nbsp;audio&nbsp;cards.
<br>Are you sure?<br>1. What's the core algorithm of your AEC algorithm?<br>2. Have you tried common low-cost AC97 soundcards? I have tested more than 20 low-cost soundcards. Only 2 of them have exactly the sample rate of capturing and rendering. Differences of others range from 0.5Hz to 80Hz. The exact reason in detail is still unknown.<br>3. Group delay is not a problem compared to different sample rate. Because the latter one will cause delay shift and overflow and downflow (sudden change of delay) of buffers, which is a big obstacle to acoustic echo cancellation.<br>Who knows any AEC which is not sensitive to different sample rate? After all, microsoft said its new AEC can do it.<br><br>&gt;________________________________________
&gt;From:&nbsp;Li&nbsp;Maoquan&nbsp;[<a href="mailto:limaoquan2000@126.com">limaoquan2000@126.com</a>]
&gt;Sent:&nbsp;Tuesday,&nbsp;April&nbsp;12,&nbsp;2011&nbsp;2:48&nbsp;PM
&gt;To:&nbsp;Shridhar,&nbsp;Vasant
&gt;Cc:&nbsp;speex-dev
&gt;Subject:&nbsp;Re:RE:&nbsp;[Speex-dev]&nbsp;Anyone&nbsp;knows&nbsp;how&nbsp;microsoft&nbsp;AEC&nbsp;can&nbsp;deal&nbsp;with&nbsp;mismatches&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;between&nbsp;clocks&nbsp;of&nbsp;capture&nbsp;and&nbsp;render&nbsp;streams?
&gt;
&gt;Hi&nbsp;Shridhar,
&gt;
&gt;Sample&nbsp;rate&nbsp;conversion&nbsp;is&nbsp;not&nbsp;enough&nbsp;to&nbsp;solve&nbsp;this&nbsp;problem.&nbsp;I&nbsp;have&nbsp;tried&nbsp;this&nbsp;method&nbsp;several&nbsp;months
&gt;ago.&nbsp;The&nbsp;first&nbsp;step&nbsp;is&nbsp;to&nbsp;measure&nbsp;the&nbsp;difference&nbsp;between&nbsp;sample&nbsp;rate&nbsp;of&nbsp;capturing&nbsp;and&nbsp;rendering.&nbsp;Then
&gt;resampling&nbsp;(by&nbsp;what&nbsp;you&nbsp;said&nbsp;"sinc&nbsp;interpolation")&nbsp;one&nbsp;signal&nbsp;to&nbsp;eliminate&nbsp;the&nbsp;difference.&nbsp;The&nbsp;frequency
&gt;step&nbsp;in&nbsp;my&nbsp;experiment&nbsp;is&nbsp;less&nbsp;than&nbsp;0.1Hz.&nbsp;I&nbsp;have&nbsp;tried&nbsp;speex&nbsp;AEC&nbsp;after&nbsp;resampling,&nbsp;much&nbsp;more&nbsp;echo&nbsp;is
&gt;cancelled&nbsp;than&nbsp;the&nbsp;one&nbsp;without&nbsp;resampling.&nbsp;But&nbsp;there&nbsp;is&nbsp;still&nbsp;echo&nbsp;can&nbsp;be&nbsp;heared.
&gt;After&nbsp;all,&nbsp;frequency&nbsp;step&nbsp;of&nbsp;sample&nbsp;rate&nbsp;conversion&nbsp;is&nbsp;limited,&nbsp;mismatch&nbsp;is&nbsp;still&nbsp;exist&nbsp;after&nbsp;resampling.
&gt;Someone&nbsp;told&nbsp;me&nbsp;that&nbsp;capture&nbsp;and&nbsp;render&nbsp;codec&nbsp;have&nbsp;different&nbsp;clock&nbsp;generator&nbsp;which&nbsp;shift&nbsp;independently.
&gt;And&nbsp;LMS&nbsp;algorithm&nbsp;is&nbsp;very&nbsp;sensitive&nbsp;to&nbsp;the&nbsp;difference&nbsp;between&nbsp;sample&nbsp;rates.
&gt;
&gt;Sincerely
&gt;Maoquan
&gt;
&gt;At&nbsp;2011-04-12&nbsp;21:46:26£¬"Shridhar,&nbsp;Vasant"&nbsp;&lt;<a href="mailto:vasant.shridhar@harman.com">vasant.shridhar@harman.com</a>&gt;&nbsp;wrote:
&gt;I&nbsp;would&nbsp;imagine&nbsp;that&nbsp;it&nbsp;is&nbsp;handle&nbsp;through&nbsp;basic&nbsp;asynchronous&nbsp;sample&nbsp;rate&nbsp;conversion.&nbsp;&nbsp;There&nbsp;is&nbsp;a&nbsp;lot&nbsp;of&nbsp;literature&nbsp;out&nbsp;there&nbsp;on&nbsp;the&nbsp;different&nbsp;techniques&nbsp;to&nbsp;do&nbsp;this.&nbsp;&nbsp;A&nbsp;common&nbsp;method&nbsp;is&nbsp;sinc&nbsp;interpolation.&nbsp;&nbsp;This&nbsp;is&nbsp;how&nbsp;I&nbsp;have&nbsp;handle&nbsp;these&nbsp;types&nbsp;of&nbsp;things&nbsp;in&nbsp;the&nbsp;past.
&gt;
&gt;Vasant&nbsp;Shridhar
&gt;
&gt;From:&nbsp;<a href="mailto:speex-dev-bounces@xiph.org">speex-dev-bounces@xiph.org</a>&lt;mailto:<a href="mailto:speex-dev-bounces@xiph.org">speex-dev-bounces@xiph.org</a>&gt;&nbsp;[mailto:<a href="mailto:speex-dev-bounces@xiph.org">speex-dev-bounces@xiph.org</a>&lt;mailto:<a href="mailto:speex-dev-bounces@xiph.org">speex-dev-bounces@xiph.org</a>&gt;]&nbsp;On&nbsp;Behalf&nbsp;Of&nbsp;LiMaoquan2000
&gt;Sent:&nbsp;Tuesday,&nbsp;April&nbsp;12,&nbsp;2011&nbsp;12:36&nbsp;AM
&gt;To:&nbsp;speex-dev
&gt;Subject:&nbsp;[Speex-dev]&nbsp;Anyone&nbsp;knows&nbsp;how&nbsp;microsoft&nbsp;AEC&nbsp;can&nbsp;deal&nbsp;with&nbsp;mismatches&nbsp;between&nbsp;clocks&nbsp;of&nbsp;capture&nbsp;and&nbsp;render&nbsp;streams?
&gt;
&gt;
&gt;Hi&nbsp;all,
&gt;
&gt;We&nbsp;all&nbsp;know&nbsp;that&nbsp;mismatch&nbsp;between&nbsp;clocks&nbsp;of&nbsp;ADCs&nbsp;of&nbsp;far-end&nbsp;voice&nbsp;and&nbsp;near-end&nbsp;voice&nbsp;is&nbsp;not&nbsp;allowed&nbsp;in&nbsp;a&nbsp;time-domain&nbsp;or&nbsp;frequency-domain&nbsp;LMS&nbsp;based&nbsp;AEC&nbsp;system.&nbsp;It&nbsp;means&nbsp;that&nbsp;capture&nbsp;and&nbsp;render&nbsp;audio&nbsp;streams&nbsp;must&nbsp;be&nbsp;synchronized&nbsp;to&nbsp;a&nbsp;same&nbsp;sample&nbsp;rate.&nbsp;However,&nbsp;I&nbsp;found&nbsp;that&nbsp;this&nbsp;restriction&nbsp;is&nbsp;removed&nbsp;in&nbsp;microsoft&nbsp;AEC&nbsp;from&nbsp;Windows&nbsp;XP&nbsp;SP1.&nbsp;Anyone&nbsp;knows&nbsp;how&nbsp;microsoft&nbsp;AEC&nbsp;do&nbsp;it?&nbsp;This&nbsp;technology&nbsp;is&nbsp;much&nbsp;helpful&nbsp;for&nbsp;us&nbsp;to&nbsp;implement&nbsp;AEC&nbsp;in&nbsp;common&nbsp;PC.&nbsp;We&nbsp;know&nbsp;that&nbsp;most&nbsp;low-cost&nbsp;soundcards&nbsp;have&nbsp;different&nbsp;sample&nbsp;rates&nbsp;in&nbsp;capturing&nbsp;and&nbsp;rendering&nbsp;which&nbsp;prevents&nbsp;LMS&nbsp;based&nbsp;AEC&nbsp;from&nbsp;being&nbsp;used&nbsp;in&nbsp;most&nbsp;computer.
&gt;
&gt;http://msdn.microsoft.com/en-us/library/ff536174(VS.85).aspx&lt;http://msdn.microsoft.com/en-us/library/ff536174%28VS.85%29.aspx&gt;
&gt;In&nbsp;Windows&nbsp;XP,&nbsp;the&nbsp;clock&nbsp;rate&nbsp;must&nbsp;be&nbsp;matched&nbsp;between&nbsp;the&nbsp;capture&nbsp;and&nbsp;render&nbsp;streams.&nbsp;The&nbsp;AEC&nbsp;system&nbsp;filter&nbsp;implements&nbsp;no&nbsp;mechanism&nbsp;for&nbsp;matching&nbsp;sample&nbsp;rates&nbsp;across&nbsp;devices.&nbsp;.............&nbsp;In&nbsp;Windows&nbsp;XP&nbsp;SP1,&nbsp;Windows&nbsp;Server&nbsp;2003,&nbsp;and&nbsp;later,&nbsp;this&nbsp;limitation&nbsp;does&nbsp;not&nbsp;exist.&nbsp;The&nbsp;AEC&nbsp;system&nbsp;filter&nbsp;correctly&nbsp;handles&nbsp;mismatches&nbsp;between&nbsp;the&nbsp;clocks&nbsp;for&nbsp;the&nbsp;capture&nbsp;and&nbsp;render&nbsp;streams,&nbsp;and&nbsp;separate&nbsp;devices&nbsp;can&nbsp;be&nbsp;used&nbsp;for&nbsp;capture&nbsp;and&nbsp;rendering.
&gt;
&gt;Maoquan
&gt;
&gt;
</pre><pre></pre><br><br><span title="neteasefooter"><span id="netease_mail_footer"></span></span><br><br><span title="neteasefooter"><span id="netease_mail_footer"></span></span>