[Speex-dev] echo cancellation
Jean-Marc Valin
Jean-Marc.Valin at USherbrooke.ca
Thu Dec 30 13:08:03 PST 2004
Le jeudi 30 décembre 2004 à 21:35 +0100, Alfredo Moreira a écrit :
> I'm going to test the echo cancellation...
> but before doing something wrong, i want to know what is the right way
> to use it...
The best I can suggest is to *not* use it... unless you know how to
debug/tune it.
Jean-Marc
> -------------------------------------------------------------------------------------
> short * speakerSample; //will contain what the speakers are going to play
> short * microphoneSample; //what the microphone is going to register
> short* cancelledSample; //the ouput without echo
> int* cancelledSpectrum; //output cancelled spectrum
>
> //now i assume that i should initialise everything like that:
>
> SpeexEchoState* pechoState = speex_echo_state_init(160,x*160); //do the
> second parameter need to be a multiple of the frame size?
> AllocBuffers(SpeakerSample,microphoneSample,cancelledSample,cancelledSpectrum);
>
> do{
> captureSpeaker(speakerSample);
> captureMicrophone(microphoneSample);
> speex_echo_cancel(pechoState, microphoneSample, speakerSample,
> cancelledSample, cancelledSpectrum);
> while (!keypressed());
>
> -------------------------------------------------------------------------------------
>
> so, do i need to deal with the cancelledSpectrum variable to perform
> echo cancellation in a proper way?
> do i need to deal with the delay between the sound being registered by
> the microphone and the one going out of the speakers? (i don't know you
> anderstand what i mean, sorry for my poor english)
> also, there is an echo parameter to the preprocess function : int
> speex_preprocess(SpeexPreprocessState *st, short *x, int *echo);
> do i need to provide to it my cancelledSpectrum variable?
>
> best regards,
> fredo
>
>
>
>
--
Jean-Marc Valin <Jean-Marc.Valin at USherbrooke.ca>
Université de Sherbrooke
More information about the Speex-dev
mailing list