[Speex-dev] AEC - Echo is cancelled however.....

Elston Sa jose at rebaca.com
Tue May 11 10:07:04 PDT 2010


I tried cross-correlation. It does locate the sync point and it's almost
perfect. I guess now I have to make it more perfect. Thanks for the
pointers. 

On the side note: 
I have a test environment. Where I created the stream such a way that I have
one "captured stream" purely with echo (i.e. no one else is speaking) and
one stream with echo + someone speaking. I confirmed that I start in perfect
sync. When I run echo canceller on the first stream there is perfect echo
cancellation and on the second stream the echo is subdued. The echo is not
very audible unless you listen at high volume. Although this is acceptable,
I would like to know if you see similar issue. 

-Elston



-----Original Message-----
From: Marco Pierleoni [mailto:pierleoni.m at gmail.com] 
Sent: Tuesday, May 11, 2010 7:30 PM
To: Elston Sa
Cc: speex-dev at xiph.org
Subject: Re: [Speex-dev] AEC - Echo is cancelled however.....

2010/5/11 Elston Sa <jose at rebaca.com>:
> Is there an API in speex or have you implemented your own?

I don't know if there is an API in speex for this, probably not. There
is a test for AEC which does something very similar.
I implemented it starting from a FFT library. It is quite easy to do.

>
> I am currently trying to find one. But if you could point me to one it
will
> reduce my search time. :)
>
> Many Thanks,
>
> Elston
>
> -----Original Message-----
> From: Marco Pierleoni [mailto:pierleoni.m at gmail.com]
> Sent: Tuesday, May 11, 2010 5:55 PM
> To: Elston Sa
> Cc: speex-dev at xiph.org
> Subject: Re: [Speex-dev] AEC - Echo is cancelled however.....
>
> I usually use the cross-correlation between the speaker signal and the
> mic signal.
> It works pretty well. The problem is the you need enough data in order
> to get a good S/N.
> I compute the cross-correlation between 1.5 second data of each
> signals. In this way the application detection of any anomalies is
> quite slow.
> I am looking for something faster, but I fear it will be something
> very application dependent.
>
> Marco
>
> 2010/5/11 Elston Sa <jose at rebaca.com>:
>> Marco,
>>
>> Thank you for your response.
>>
>> Is there a way I can determine if the synchronization is perfect or not?
> If
>> not by how much it is off.
>>
>> - Elston
>>
>> -----Original Message-----
>> From: Marco Pierleoni [mailto:pierleoni.m at gmail.com]
>> Sent: Monday, May 10, 2010 3:46 PM
>> To: Elston Sa
>> Subject: Re: [Speex-dev] AEC - Echo is cancelled however.....
>>
>> Hi Helton,
>>
>> it is now several months that I am using the AEC speex. I experienced
>> very good performance and I agree that the synchronization is the most
>> important issue here. As a matter of fact I believe that your problem
>> could derive from a not perfect synchronization.
>> It seems that that filter, used in the AEC, is always adapting. When
>> you have not a perfect synchronization, the adapting filter allows to
>> cancel most of your echo, while the participant is talking. Once he
>> stops to talk, the filter cannot adapt in the right way until he
>> begins to talk again.
>> I think that this is the cause of the small return of echo.
>>
>> I don't know the details of your application, but in my case I wanted
>> to play audio packets incoming from the network, and I had similar
>> problems until I put a jitterBuffer between the network and the audio
>> device. This solution allows me to have a better scheduling of the
>> packets sent to the audio device improving the synchronization.
>> You should also consider that the sound card have an own internal
>> buffer which can introduce some anomalies in the audio playing, like a
>> small pause or an audio cut. Most of these anomalies are very
>> difficult to be heard but they are important for the synchronization
>>
>> I hope that this could help.
>>
>> Marco
>>
>>
>>
>> 2010/5/10 Elston Sa <jose at rebaca.com>:
>>> Yes. I guessed that too, however I am not sure why it keeps repeating
>> every
>>> time the user stops / pauses and starts speaking again in a single
>> session.
>>>
>>> I am using a laptop with standalone speakers. For echo cancellation to
>> work
>>> one has to make sure that the ref and echo buffers are synchronized. I
>> guess
>>> this is the most common problem.
>>>
>>> -Elston
>>>
>>> -----Original Message-----
>>> From: Anton A. Shpakovsky [mailto:saa at tomsksoft.com]
>>> Sent: Monday, May 10, 2010 2:43 PM
>>> To: Elston Sa; speex-dev at xiph.org
>>> Subject: RE: [Speex-dev] AEC - Echo is cancelled however.....
>>>
>>> Well, AFAIK AEC engine needs time to adapt. So probably that's why at
>>> the beginning of the conversation
>>> you hear the consequences of this adaptation. Btw, what sound system do
>>> you have? I mean laptop or arbitrary
>>> acoustic system? I'd like to know, cause I couldn't get enough echo
>>> cancellation with speex in my environment with
>>> standalone speakers AT ALL.
>>>
>>>
>>> -----Original Message-----
>>> From: speex-dev-bounces at xiph.org [mailto:speex-dev-bounces at xiph.org] On
>>> Behalf Of Elston Sa
>>> Sent: Monday, May 10, 2010 3:41 PM
>>> To: speex-dev at xiph.org
>>> Subject: [Speex-dev] AEC - Echo is cancelled however.....
>>>
>>> 1) Everytime a participant speaks there is a echo for a short duration
>>> (maybe a word or two) but as the participant continues to speak without
>>> a
>>> any break the echo is 95% cancelled (i.e there is a feeble echo still
>>> present if observed very carefully).
>>> 2) The moment the participant stops / pauses speaking and start talking
>>> again, scenario 1 is repeated as if the echo state has been
>>> re-initialized
>>> or reset.
>>>
>>> Please note that I observe this in a single audio session and not after
>>> restarting the application. I confirm that I am not re-initializing the
>>> echo
>>> state after the session starts.
>>>
>>> Is this normal? Is there any way I can keep the echo state to what it
>>> was
>>> when the participant not speaking.
>>>
>>> Also, any pointers on why I get a feeble echo back would be greatly
>>> appreciated.
>>>
>>> Thanks,
>>>
>>> Elston
>>>
>>> _______________________________________________
>>> Speex-dev mailing list
>>> Speex-dev at xiph.org
>>> http://lists.xiph.org/mailman/listinfo/speex-dev
>>>
>>> _______________________________________________
>>> Speex-dev mailing list
>>> Speex-dev at xiph.org
>>> http://lists.xiph.org/mailman/listinfo/speex-dev
>>>
>>
>>
>
>



More information about the Speex-dev mailing list