AEC Starts with the Correct Far-End Reference
An echo canceller cannot remove playback it never receives as a reference signal.
An echo canceller cannot remove playback it never receives as a reference signal.
Echo cancellation only has a useful reference when the reference represents what the loudspeaker actually played.
The AEC library consumed a block size that did not divide evenly into the telephony frame size.
Codec detection alone did not prove the capture channels meant what the DSP assumed they meant.
Turning processing off can reveal whether the artifact is created before, inside or after the algorithm.
Processed audio alone hides whether the wrong signal entered the algorithm.
A valid reference that arrives at the wrong time can be almost as useless as the wrong reference.
The physical capture clock and the network codec did not run at the same sample rate.
An echo canceller cannot remove what its reference channel does not represent.
A speakerphone must handle the user talking while the far end is also active.
The first seconds of a call should not depend on whatever history remains in DSP buffers.
A bad experimental build can be valuable when it changes a small set of variables and is easy to revert.
Before tuning echo cancellation I verified that the algorithm was receiving the microphone and far-end reference channels I thought it was.
The downlink could be packet-complete and still sound gritty or artificial after conversion to the physical playback rate.
Echo tuning was meaningless if the AEC reference did not represent what the loudspeaker actually played.
AEC was implicated in several symptoms, but disabling it permanently would remove a required speakerphone function.