Automatic Echo Cancellation (AEC)¶
This process uses the stereo audio from the product as a reference signal to model the echo characteristics between each loudspeaker and microphone, caused by the acoustic environment of the device and room.
The AEC uses four models to continuously remove echoes in the microphone audio input created in the room by the loudspeakers. The models continually adapt to the acoustic environment to accommodate changes in the room created by events such as doors opening or closing and people moving about.
An illustration of echo paths in two sizes of room are shown below.
After reset, or when echo paths change due to a change in the environment, the AEC will re-converge. Echo Return Loss Enhancement (ERLE) can be used to indicate the degree of convergence on the AEC filters as shown below.
For optimal AEC settling-time performance, the volume of the loudspeakers must be linearly proportional to the level of the reference audio sent to the XVF3610. If the volume of the loudspeakers changes without the level of the reference changing by the same linear factor, the AEC will respond as if the environment has changed such that all echo paths have increased/decreased energy. The AEC and therefore incur a settling time.
The Alternative Architecture (described in the Alternative Architecture mode (ALT_ARCH) section) selectively extends the AEC filters to accommodate highly reverberant environments.
The configuration parameters for the AEC are shown below:
COMMAND |
TYPE |
VALUE |
DESCRIPTION |
NOTES |
---|---|---|---|---|
GET_BYPASS_AEC SET_BYPASS_AEC |
uint32 |
[0,1] 0 = AEC bypass disabled (default) 1 = AEC bypass enabled |
Get/Set AEC bypass parameter. If set to one, AEC processing is disabled. |
A |
SET_ADAPTATION_CONFIG_AEC GET_ADAPTATION_CONFIG_AEC |
uint32 |
[0, 1, 2] 0 = Auto adapt (default) 1 = Force adaptation ON 2 = Force adaptation OFF |
Sets AEC adaptation configuration. If AEC is set to bypass then setting the adaptation config has no effect. |
B |
GET_ERLE_CH0_AEC |
float |
Get AEC ERLE for channel 0 |
||
GET_ERLE_CH1_AEC |
float |
Get AEC ERLE for channel 1 |
C |
|
RESET_FILTER_AEC |
This command resets all AEC filters. |
Notes:
[A] When the Alternative Architecture (ALT_ARCH) mode is enabled (default), AEC bypass state will be overwritten and so should not be used. The GET command remains functional. For more information see the Alternative Architecture (ALT_ARCH) section.
[B] If Automatic Delay Estimation is enabled, these parameters will be overwritten and so should not be used. The GET commands remain functional. For more information see the Automatic Delay Estimation & Correction (ADEC) section.
[C] When the ALT_ARCH mode is enabled, there is only valid ERLE data available on CH0. In this mode the GET_ERLE_CH1_AEC will report NaN.
Note
The AEC operates on acoustic paths modelled in the AEC tail length. The Automatic Delay Estimation and Correction module handles delays between microphone and loudspeaker introduced by the equipment, for instance receiving the reference ahead of it actually being played out of the loudspeakers.