Re: Acoustic echo cancellation
"LiMaoquan2000"<[email protected]>
| Newsgroups | gmane.comp.audio.compression.speex.devel |
|---|---|
| Message-ID | <[email protected]> |
> Hi, > > I have a scenario in a mobile VoIP app that requires echo cancellation but > is somewhat different from what's described in the docs. > > Audio is received from and sent to the network at 8000Hz. Each packet > contains 160 samples worth a playback of 20ms. > > But the hardware requires aggregation for both playback and capture. So for > playback, I coalesce 4 packets in a buffer and queue them as a larger buffer > for playback. > On the send side, I read a large buffer (worth 4 packets) and send them out > over time 20ms apart. > > I tried using speex_echo_playback just when a 160-sample packet arrives from > the network, before coalescing and speex_echo_capture just before a packet > is sent out to the network but that doesn't seem to work properly (doesn't > cancel any echo). The most likely reason is that you didn't align the far-end and near-end samples. So the filter can not converge. > So, in this scenario above, please recommend a good place to insert > speex_echo_playback and speex_echo_capture. Should I be just before the read > and write to hardware? In that case, should I use a larger "frame size" of > 160 samples x 4? Of course you can set frame size to 160*4. Otherwise you can feed samples 4 times to the AEC if you don't want to modify the frame size. > > Thanks in advance, > Daniel. _______________________________________________ Speex-dev mailing list [email protected] http://lists.xiph.org/mailman/listinfo/speex-dev