Acoustic Echo Cancellation (AEC) is used on microphones to cancel out audio from causing echo to the far-end. A key concept in understanding AEC is the AEC Reference signal. The signals you send to the reference are the signals you'd like to remove from the microphone signal. There are two major rules for AEC processing:
- Never send a microphone to its own reference.
- Reference everything that will be played out of the local speakers and is possible to be picked up by the local microphones.
In many cases, the same signal is sent to every mic's AEC reference. However, there are some cases where it is advantageous to send a different signal to every microphone's AEC reference, and that is called per-channel referencing. This article will focus on when and why to use a per-channel AEC reference.
The primary use cases for per-channel referencing are: when an audio system spans multiple rooms or spaces, thus needing different content referenced for each; or when microphones are being used for both speech reinforcement and distance conferencing simultaneously.
To use per-channel referencing, you must select per channel in the AEC initialization window, when the AEC Input block is created. You can also right-click on the block and select "Edit Block Attributes" to open the AEC initialization window.
Here we will look at using an per-channel AEC reference for processing multiple spaces that require different references. These spaces would be acoustically isolated with different audio systems running in each. In the case below we are using a single TesiraFORTE for two rooms of processing where the per channel reference allows us to feed signals to the microphones in each space.
Per-channel referencing is important here, because Room A's reference should only get signals that are being played out of the speakers in Room A, and Room B's reference should only get signals that are being played out of the speakers in Room B. If there was a signal sent to Room A's reference, but that signal was not being played out of Room A's speakers, then you'd be asking the AEC algorithm to cancel out a signal that doesn't exist, and that would invite trouble.
An AEC mix-minus system is required if any microphone will be used for both speech reinforcement and distance conferencing. This is due to the fact that these microphones will be played out of the local speakers in the room. In other words, when you speak into mic 1 your voice will come out of the speakers in the room. Part of your voice signal will also be picked up by the other microphones in the room, and will be sent to the far end of the conference. This can contribute to a muddy, reverberant sound. Putting a microphone's signal into the reference for all other microphones can help greatly to clean up the way the system sounds to the far end.
In order to create an AEC mix minus you must have a unique path from a mixer to each channel of the AEC Ref.
For simplicity, the file below will be used as an example, 12 handheld microphones that will be used for local reinforcement and conferencing.
The AEC Ref still needs to receive the Codec Receive signal, so that it can be echo-canceled out as it normally would. We must also send all 12 microphones to the AEC Ref so that there is no echo is produced by the local reinforcement. The mix-minus comes into effect when you must reference each microphone to each other, but not to itself. This is because a microphone should never be sent to its own reference, under any circumstances. See the matrix mixer below for an example:
Ceiling versus Handheld Microphones
When applying AEC mix-minus to different microphones, you should treat them as such. The example above utilizes all handheld microphones that are often locally reinforced. In the average conference room you will likely see a hybrid of presentation microphones and conferencing microphones. When you are using ceiling or tabletop microphones for conferencing but not local reinforcement, then you can treat them as you would with any typical AEC scenario. The same goes for microphones that are being used for local reinforcement and not conferencing, they can be treated just as any other local source like program or far-end inputs.
Lets turn the example above into a hybrid system; with two handheld microphones labeled as HH1 and HH2, two lavalieres labeled LAV1 and LAV 2, and eight channels worth of ceiling microphones labeled C1 through C8. See the updated version of the mixer below:
The four locally reinforced microphones need an AEC Ref mix-minus in order to avoid echo. The eight ceiling microphones only need to reference the Codec Rx as well as the four locally reinforced microphones. The ceiling mic signals don't need to be sent to any AEC reference, because they are not locally reinforced in the room.