Aymeric Moizard a ?crit :> > I'm working on the echo canceller with the SVN, with Windows Mobile 5 > PocketPC. > > Obviously, I can't make it run correctly.What happens/doesn't happen?> My question: If I use the SPEEX_PREPROCESS_SET_ECHO_STATE, I have > changes in the sound: noise seems to be removed.Noise should be removed even without SPEEX_PREPROCESS_SET_ECHO_STATE as long as you use the preprocessor.> I want to know if I have to use the preprocessor AND that option > to make the echo canceller to work or if it's optionnal?The only thing that SPEEX_PREPROCESS_SET_ECHO_STATE allows is for the preprocessor to also remove part of the echo that speex_echo_cancellation() (or equivalent call) couldn't cancel.> Is there any other usefull option to the preprocessor that can > be needed or helpfull?There's SPEEX_PREPROCESS_SET_NOISE_SUPPRESS, SPEEX_PREPROCESS_SET_ECHO_SUPPRESS, SPEEX_PREPROCESS_SET_ECHO_SUPPRESS_ACTIVE that would be useful. They control how aggressive the preprocessor will be in removing respectively the noise, the echo and the echo when the near-end speaker is active. The value is a negative int (in dB). Defaults are -25, -45, -15. Jean-Marc
Goal: cancel the echo on my WM5 device. I have switched back to do more testing on other platform: -> echo cancellation perfect with macosx -> echo cancellation known to work on linux/alsa (not tested by me) -> echo cancellation broken on my PC. I have finally end up with a result on PC: -> Every X seconds, I call "speex_echo_state_reset()">From this test, I notice that the echo canceller if used with thepreprocessor with "noise" argument USED, IS working for a very limited period: not more than 3 seconds I would say. The only trouble then is that every time the reset is called, my own voice is modified so that its level is changing each 3 seconds which is not of course acceptable... Any idea why it only works 3sec? It seems to me that using the "noise" argument with the echo canceller remove MORE echo than using the echo canceller only? Why? Aymeric MOIZARD / ANTISIP amsip - http://www.antisip.com osip2 - http://www.osip.org eXosip2 - http://savannah.nongnu.org/projects/exosip/
Most likely the difference between those setups is not Speex, but the soundcard and associated code. The only way to debut that would be for you to record the streams, so that the problem can be reproduced with testecho.c. Once you can show me the problem with testecho.c, then it shouldn't be too hard to diagnose (and hopefully fix) the problem. Jean-Marc Aymeric Moizard a ?crit :> > Goal: cancel the echo on my WM5 device. > > I have switched back to do more testing on other platform: > > -> echo cancellation perfect with macosx > -> echo cancellation known to work on linux/alsa (not tested by me) > -> echo cancellation broken on my PC. > > I have finally end up with a result on PC: > -> Every X seconds, I call "speex_echo_state_reset()" > >> From this test, I notice that the echo canceller if used with the > preprocessor with "noise" argument USED, IS working for a very > limited period: not more than 3 seconds I would say. > > The only trouble then is that every time the reset is called, my > own voice is modified so that its level is changing each 3 seconds > which is not of course acceptable... > > Any idea why it only works 3sec? > > It seems to me that using the "noise" argument with the echo canceller > remove MORE echo than using the echo canceller only? Why? > > > Aymeric MOIZARD / ANTISIP > amsip - http://www.antisip.com > osip2 - http://www.osip.org > eXosip2 - http://savannah.nongnu.org/projects/exosip/ > > >