[Speex-dev] [SPAM] [BombData][alltestmode] Re: [SPAM] [BombData][alltestmode] Using Speex Echo Canceller

Anton A. Shpakovsky saa at tomsksoft.com
Thu Sep 30 00:00:58 PDT 2010



So in your case if you don't want to use speex_echo_cancellation than
you should do next way:


Save the playback frames (clean echo) within separate playback thread
with speex_echo_playback func.

Then use speex_echo_capture - it will remove the clean echo frame (saved
with speex_echo_playback func) from

const spx_int16_t *rec buffer (saved with speex_echo_capture) and you
will get clean frame in "out" buffer.


The sync is very important - because speex_echo_capture won't be able to
remove clean echo frame that you didn't provide with


I hope I didn't messed up anything :)


Best Regards,

Anton A. Shpakovsky



From: Christopher Adoremos [mailto:chrisadoremos at gmail.com] 
Sent: Thursday, September 30, 2010 11:52 AM
To: Anton A. Shpakovsky
Cc: speex-dev at xiph.org
Subject: [SPAM] [BombData][alltestmode] Re: [SPAM]
[BombData][alltestmode] [Speex-dev] Using Speex Echo Canceller


Hi Anton

Thanks for the info...

What if I use this function do I still need to sync the playback and
Assuming that the captured voice (*rec) already contains the echo which
I need to cancel out...
void speex_echo_capture (SpeexEchoState *st, const spx_int16_t *rec,
spx_int16_t *out)

        st     Echo canceller state
        rec     signal from the microphone (near end + far end echo)
        out     Returns near-end signal with echo removed

thanks & regards,
Chris Adoremos

On Wed, Sep 29, 2010 at 5:46 PM, Anton A. Shpakovsky <saa at tomsksoft.com>



Yes, it's absolutely unnecessary to use speex codec. You can encode the
echo cancelled auido data with any codec you want.

The Echo Canncelation API is here -

I would advice you to look at speex_echo_cancellation function but you
will have to sync playback and capture streams by yourself.


I've used GSM, iLBC and Speex codecs with Speex AEC and it works fine.


Best Regards,

Anton A. Shpakovsky



From: speex-dev-bounces at xiph.org [mailto:speex-dev-bounces at xiph.org] On
Behalf Of Christopher Adoremos
Sent: Wednesday, September 29, 2010 4:39 PM
To: speex-dev at xiph.org
Cc: jean-marc.valin at usherbrooke.ca
Subject: [SPAM] [BombData][alltestmode] [Speex-dev] Using Speex Echo




Is it possible to use only the speex echo cancellation module w/o using
the speex codec?


Here's the scenario:

1. I have my voice recorded in PCM audio file format

2. I want to cleanup the recorded voice by removing any echo included in
the audio file/buffer

3. can I just use the ff APIs?

   - SpeexEchoState* speex_echo_state_init()

   - int speex_echo_ctl()

   - void speex_echo_capture()

4. then, will it be possible to encode the output buffer from
speex_echo_capture() to any codec?

    Like G711? GSM? etc....


I'm quite new to audio format concepts/development, so if you have any
ideas your advice is highly appreciated..


Thanks in advance

Chris A


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20100930/781f8328/attachment-0001.htm 

More information about the Speex-dev mailing list