[Speex-dev] Preprocessor Idle state

Maris Engineering mail at maris-ee.eu
Tue Jun 15 11:04:47 PDT 2010


I'd like to maintain the speex preprocessor in an idle state when no  
communication is needed. Purpose: keep the SpeexEchoState struct content  
"frozen" as to restore last controlled cancel state for reuse with resumed  
communication. Since the audio path to speaker and mic is intended to be  
kept alive permanently, the echo delay should remain constant, a  
prerequisite for successful resume in converged state. Why idle? While in  
full operation, the preprocessor takes quite a lot of CPU-time (here:  
blackfin under uClinux, approx. 30% CPU).

Q.: would it work OK when the repetitive calls to speex_preprocess_run(),  
or only speex_echo_cancellation() are interrupted during idle? Or is  
another way to realize the desired behaviour as being preferred, e.g.  
copying the speex state as backup and restore using ctl-call  
SPEEX_PREPROCESS_SET_ECHO_STATE? Is this an intended feature to allow  
resume of idle connections?

Further I'd wish to have the speex control agility be reduced when once  
already converged. Reason: less susceptibility to disturbing artifacts  
(e.g. short microphone overdrive) is suggested to happen. Any pointers to  
appropriate documentation are welcome (if present).

-Rob


More information about the Speex-dev mailing list