Maris Engineering
2009-Nov-06 11:03 UTC
[Speex-dev] Preserving echo canceller state between two connections?
I wish to preserve the state of the echo canceller engine when it is in a converged state, in order to use this for a later, separate VoIP connection. However, any jitter in processing delay from playback to record might make this impossible. From the manual: Latency and algorithmic delay Every speech codec introduces a delay in the transmission. For Speex, this delay is equal to the frame size, plus some amount of ?look-ahead? required to process each frame. In narrowband operation (8 kHz), the delay is 30 ms, while for wideband (16 kHz), the delay is 34 ms. These values don?t account for the CPU time it takes to encode or decode the frames. Q: When audio chunks are subject to jitter (time difference between playback and record chunks), how can the echo canceller provide properly converged results? The other way round: when the canceller can keep its converged state despite some jitter, it should also be possible to conserve the canceller state between two VoIP connections. Or am I wrong? My environment: Blackfin uC-Linux with Linphone app. Regards, Rob