Hi,
we are currently trying to get the AEC working with our evaluation setup. Quick overview:
We are developing a handheld device with 1 or 2 mics that are getting processed by the XU316 and processed through a common portable audio chain in order to deliver a clean voice extracted signal for communication and more. One major criterion is the echo-less hands-free usage. Therefore we've already built a setup with an external Codec with DSP which feeds back the reference signal to the XU316 and receives the mic input on the same audio interface (I2S).
The whole audio system is sampled @48kHz.
For initial evaluation purposes we used the int_fixed_delay ffva without the intent engine. The external (non XU316) audio pipeline is functional and seems correct. The Codec puts out audio on a pair of 1W speakers while transferring the reference in parallel to the XU316.
Now the strange part:
The AEC converges within milliseconds when playing a sine wave reference tone. Sometimes this gets unstable but recovers shortly after (mostly during movement in the room or a change in the speaker position).
Playing music, voice or even white noise leads to no conversion. The processed output is totally unstable an contains a lot of very audible echo.
I assume that this is due bad configuration or other very common issues. The configuration is still the same: 2X channels, 2Y channels, 150ms MAX Delay size, 10 main phase pools and 5 shadow phase pools.
Is there any experience on how sensible the AEC reacts to the Mic_to_Ref delta ?
Additionally i have to mention that i am aware of the speakers having an impactful frequency response, which i also emulated with an IR based on a graph from the data-sheet and applied to the reference signal ONLY.
I really think i am missing on some ideas here...
I would really appreciate help on this :)
Thanks!
AEC Issue on the XK-VOICE-L71
-
- New User
- Posts: 2
- Joined: Fri May 16, 2025 10:19 pm
-
- New User
- Posts: 2
- Joined: Fri May 16, 2025 10:19 pm
Here are some additional information:
In our setup the speakers are also very close to the microphones. I don't know if this makes the AEC not applicable for this case.
Also i'd like to know how gain differences between the mic and reference signals affect AEC quality. The mic put out very low energy signals after manually inspecting the buffers for x.
The reference signal does not clip but uses definitely more of the possible Q31 value range.
In our setup the speakers are also very close to the microphones. I don't know if this makes the AEC not applicable for this case.
Also i'd like to know how gain differences between the mic and reference signals affect AEC quality. The mic put out very low energy signals after manually inspecting the buffers for x.
The reference signal does not clip but uses definitely more of the possible Q31 value range.
-
Verified
- Member++
- Posts: 29
- Joined: Wed May 22, 2024 3:30 pm
The first thing to look at would be to check your ref/mic alignment. Sine waves are less sensible to misalignment so this could be a part of your problem. You can control it using the delay.
Regarding ref/mic levels:
The level difference between mic and ref does not matter .. a lot .. but it does. The DSP is implemented in block floating point, so it can handle any arbitrary signal (within bfp limitations). However, the closer your signals are, the less precision you'll lose when they interact with each other.
Also just to note, the quality of your mic signal is very important.
Good luck ;)
Regarding ref/mic levels:
The level difference between mic and ref does not matter .. a lot .. but it does. The DSP is implemented in block floating point, so it can handle any arbitrary signal (within bfp limitations). However, the closer your signals are, the less precision you'll lose when they interact with each other.
Also just to note, the quality of your mic signal is very important.
Good luck ;)
Pavel
xmos software engineer
xmos software engineer