[Speex-dev] Preserving echo canceller state between two connections?

Maris Engineering mail at maris-ee.eu
Fri Nov 6 03:03:32 PST 2009

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.

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.



More information about the Speex-dev mailing list