A coworker pointed out an related issue on the mailing list. It
contained a hint to the solution. I did not set a sampling rate on the
canceler.
example code:
int sampleRate = 32000;
speex_echo_ctl(echoState, SPEEX_ECHO_SET_SAMPLING_RATE, &sampleRate);
In my defense, the need to do this was not specified in the manuals I
read (like http://www.speex.org/docs/manual/speex-manual ). Perhaps a
mention of this is warranted there?
Regards,
Niels
Op 10-1-2011 10:57, Niels Werensteijn schreef:> Hi,
>
> I've set up speex AEC in our application. The echo's seem to be
> canceling, but the captured voice is distorted somehow. It sounds to me
> like low and/or high frequencies are removed. This happens even if I set
> my playback(echo) data to only zero's.
>
> Is this "normal" for the AEC? As far as I understand, if I send
0's as
> playback/echo data, the resulting data should be the same as the echo data?
>
> My chain is like this:
>
> 1. get playback and capture data
> 2. down sample both to codec rate
> 3. do echo cancellation
> 4. do pre processing (using speex. The preprocessor also does residual
> echo cancelling because i called
> "speex_preprocess_ctl(m_pSpeexPreprocessState,
> SPEEX_PREPROCESS_SET_ECHO_STATE, m_EchoState)")
> 5. encode and send data over network.
>
--
Regards,
Niels Werensteijn