[Speex-dev] Echo Canceller on Windows Mobile
dennis.liu at mobidia.com
Mon Feb 11 17:01:25 PST 2008
From: Mohammed Sulaiman [mailto:mhh.sulaiman at talk21.com]
Sent: Monday, February 11, 2008 12:53 AM
To: Dennis Liu
Subject: RE: [Speex-dev] Echo Canceller on Windows Mobile
Hi, thanks. One question did you use these 2 functions
No, I didn't use them. I use my own code to buffer microphone and speaker
or do you have your audio in a single thread
Yes, I have my audio thread.
The AEC slows down our code real bad, i take it this where the optimisation
comes in. So far we have just used some of the PREPROCESSOR definitions that
come with the library. Are you saying we need to actually hand optimise
(modify)the code as well? Did you use assembly language for this?
Definitely you have to work on your own to optimize the code. I haven't
used assembly so far since the efficiency on WM5/6.
Dennis Liu <dennis.liu at mobidia.com> wrote:
I've worked on implementing Speex AEC to smartphone on the exactly same
platform as you have. The result is pretty good. I can remove most of the
acoustic echo. I'm still tuning the performance to minimize the remaining
echo. Here are the key points:
1. You have to sync microphone and speaker properly; otherwise it
wouldn't give you a good result.
2. You have to optimize Speex AEC in order to run on mobile device in
From: speex-dev-bounces at xiph.org [mailto:speex-dev-bounces at xiph.org] On
Behalf Of Mohammed Sulaiman
Sent: Friday, February 08, 2008 7:55 AM
To: Speex-dev at xiph.org
Subject: [Speex-dev] Echo Canceller on Windows Mobile
Hi Jean Marc,
We are running the speex echo canceller code on a Windows Mobile smartphone
using a TI OMAP 201MHz 850. We are making voip calls and audio is working
without echo canceller code. Simply adding the following 2 functions whether
the echo cancellation is wired in (ie we use the output frame ) or not
performance becomes terrible. Note 2 separate threads are used to handle
Playing Audio thread:
Write to codec
Capturing audio thread:
speex_echo_capture(echo_state, input_frame, output_frame);
We have compiled for fixed point.
We are using codec buffer size of 256 bytes ie 128, 16bit samples.
SpeexEchoState* iEchoState = speex_echo_state_init(ECHO_FRAME_SIZE,
ECHO_FRAME_SIZE = 128
ECHO_FILTER_SIZE = 1024
Do you know whether any one has this running on Windows Mobile platforms
Sent from Yahoo!
vt=51949/*http:/uk.docs.yahoo.com/mail/winter07.html> - a smarter inbox.
Support the World Aids Awareness campaign this month with Yahoo!
vt=51947/*http:/uk.promotions.yahoo.com/forgood/> for Good
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Speex-dev