littlefool wrote: ↑Tue Apr 01, 2025 8:32 am
After studying the reference delay a bit, I found that in principle, even if the delay exists initially, it can be adaptively eliminated. Therefore, reference delay may not be the reason for the poor AEC performance.
Depends on the pipeline config you are using:
adec (automatic delay estimator and corrector (I think)) which adapts the delay as the application runs (by default will run a delay estimation once at the start)
adec_alt_arch is the same in terms of delays, different AEC + IC behaviour
fixed_delay does what it says
So if you are using any of the adec configs, it will do a delay estimation once and will fix it for the rest of the run. However, if you have a system with a fixed microphone + speaker position, I would recommend using the fixed_delay config (unless you want alt_arch).
littlefool wrote: ↑Tue Apr 01, 2025 8:32 am
Then I compared the AEC effects of the L71 dev board and my dev board, and found that the volume of the proc0 or mic0 output channels on the L71 dev board is always lower than those on my dev board. Thus, I suspect that the high volume(gain) on my dev board may be causing the poor AEC performance.
The input level should not affect the AEC a lot as the math inside is done using a block-floating point format. Unless your signal is clipped or too low, AEC should be ok
littlefool wrote: ↑Tue Apr 01, 2025 8:32 am
So I tried to reduce the AGC_PROFILE_ASR.max_gain on my dev board and reran the AEC test. The results showed a noticeable improvement in AEC performance. So I would like to ask if what I did is reasonable.
So the voice dsp pipeline (simplified) is:
delay + AEC + (ADEC) + IC + VNR + NS + AGC
AGC (automatic gain controller) sits at the very end of the pipeline and tries to keep the output at a similar level, so if you've reduced the agc gain and your keyword score became better it's not the AEC that was the problem.
Did you signal clip with the old gain setting? That might upset the ASR (if you're using one)