I have a few questions regarding the TI AER algorithm :
1) We are currently getting into an issue where TI AER algorithm switches to bypass mode and does not cancel any echo. We have set tail length to 200ms and y2x_delay to 20ms. We do see number of underruns happening in our system (issue under investigation) however these underruns causing TI AER algorithm to switch to bypass mode. We compare this algorithm with another open source SPEEX algorithm does diverge at those underruns but converges quickly after some time. Our understanding is this is primarily due to variable tap adaptive filter delay implementation of TI AER comapred to fixed tap adaptive filter on SPEEX. AER sets initial tail length to 60ms and only increases it by additional 20ms if there is significant energy in those segments? Our question is there a way to set that initial tail length to > 60ms on TI AER algorithm. Attached is bypass.png file in ZIP File that shows waveforms of receiveinref (-6dBm random noise), receiveout (speaker output), sendin (capture signal) and sendout( AER processed signal). As you can see AER switches to bypass mode around 4second.
2) Another issue we are seeing is slow convergence of TI AER algorithm compared to SPEEX. This happens not everytime but only certain runs. Attached is slowconvergence.png file where the top waveform shows sendout signal of TI AER processed signal and the bottom waveform shows sendout signal of SPEEX (open source AEC) processed signal. As you can see TI AER converges very slowly for divergence happening around 750ms while TI SPEEX converges very quickly. Any pointers on what could cause such behavior? IF TI AER tail lenght is set to 60ms initially compared to SPEEX which has fixed tap implementation, we would expect TI AER to converge much faster than SPEEX.
Please note we are using minimal AER configuration with all other components disabled (NLP, DRC, etc).
Thanks in advance for your inputs.