[Speex-dev] Echo canceller

Jean-Marc Valin jean-marc.valin at usherbrooke.ca
Thu Aug 28 16:03:16 PDT 2008


Most problems (don't know about yours) are linked to synchronisation
issues. See the manual for more details.

	Jean-Marc

Francisco Puentes a écrit :
> I am using 'portaudio' and 'speex' to implement a speech audio
> capture/playback.
> Preprocess works fine but not the echo canceller (associated with
> preprocessor).
> I have read 'testecho.c' but it didn't help me.
> 
> What I am doing bad? This is my implementation:
> 
> One thread to capture and playback, both are different functions called in
> different times directly from 'portaudio'.
> 
> On capture I do:
>   
> 	speex_echo_cancellation(es,input,buffer,output);
> 		
> 		Input is the audio just captured
> 		Buffer is the last frame audio playbacked
> 		Output is obvious
> 
> On playback I do:
> 
> 	speex_preprocess_run(ps,(spx_int16_t*)output);
> 	memcopy(buffer,output,settings.bufferSize());
> 
> 		output is the frame audio to sound (different that the
> 'output' in capture)
> 		buffer store the last frame audio to be used later on
> capture (look on capture)
> 
> Echo and preprocess states are conveniently initiated using
> speex_echo_state_init(fpb,fpb*25) and
> speex_echo_ctl(es,SPEEX_ECHO_SET_SAMPLING_RATE,&sr) (and, of course
> speex_preprocess_state_init)
> 
> Echo state is associated with preprocess state using
> SPEEX_PREPROCESS_SET_ECHO_STATE
> 
> What is wrong?
> 
> 
> 
> _______________________________________________
> 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