[Speex-dev] trouble getting speex_echo_cancel() to work
Jean-Marc.Valin at USherbrooke.ca
Tue May 31 16:04:35 PDT 2005
A couple things you may want to check:
- set sampling rate to 8 kHz (at least for now)
- make sure the far end signal in the playback signal is always a bit in
advance (never late) compared to the mic signal.
- Set the tail length to something around 100 ms.
Also, if you're using two different soundcards (as I understand) for the
playback and the capture, you're *never* going to get echo canceller to
work because the playback and capture need to be *exactly* in sync.
Le mardi 31 mai 2005 à 23:38 +0200, Thorvald Natvig a écrit :
> I'm trying to convert my current headphones and microphone chat
> application to support loudspeakers and microphone, and so I thought I'd
> give speex_echo_cancel() a try.
> Since my users quite frequently have other sound-producing applications
> running on their computer (such as winamp), I sample 'wave' recording
> device of the soundcard in addition to the microphone.
> I then call speex_echo_cancel() as
> speex_echo_cancel(st, data sampled from microphone device, data sampled
> from output of soundcard, output pointer, y-buffer)
> .. which as I understand it should be correct?
> I've gone to some effort to make sure that the two sets of sampled data
> are from the exact same time (seems my two soundcards don't sample 32khz
> at the exact same rate, they differ by about 0.1%), but it doesn't remove
> any of the echo, it just provides some weird artifacts in addition to the
> original signal.
> I'm using a framesize of 640, the same as the speex framesize at 32khz
> uwb, and tested this with speex 1.1.8
> If anyone has some idea on what I'm doing wrong, please let me know :)
> Speex-dev mailing list
> Speex-dev at xiph.org
Jean-Marc Valin <Jean-Marc.Valin at USherbrooke.ca>
Université de Sherbrooke
More information about the Speex-dev