We are experiencing multiple issues tuning aer_c64Px_obj_17_0_0_0_Linux for use in our product in hands‑free mode, however we have had success with tuning the algorithm for use in handset mode.
I’ve followed the tuning guide and tried setting everything as aggressive as possible but even with no activity at the far end (and the noise guard active), loud shrieks are coming back.
The main issues I am having are getting the NLP operating suitably and possibly the answers to the following questions could help me configure it properly. What I am trying to achieve is maximum aggressiveness of the NLP (forcing half duplex operation if necessary) with no echo or artifact breakthrough so I can start backing it off.
-
What exactly does ‘Hands Free mode processing” do? (apart from allowing increased tail length) does it interact with the NLP?
-
Enabling frequency domain NLP causes the speech to become garbled and distorted so I can’t use it. Any ideas why this might be happening? (I’ve tried changing the FDNLP delay setting and got some minor improvement, but it was still unusable)
-
I’m unable to see much impact on operation when changing the combined loss target, how does this link with NLP_linattn_Max_ERLE? (I’ve read the description in the developer guide but haven’t seen much change in performance when changing the Max_ERLE parameter). For the linear attenuator to operate at maximum aggressiveness all the time what should I set NLP_linattn_Max_ERLE to? Are there any other requirements to make the linear attenuator work other than setting these parameters? We have disabled the AER built in AGC, does that have an impact?
-
I haven’t managed to work out exactly what Thresh_Rx_NLD does. I understand that it is the threshold above which non-linear distortion is expected, but what is supposed to happen when the threshold is exceeded? Does this only work when hands-free mode processing is enabled?
-
Changing the value of Thresh_Tx_Noise seems to massively affect intelligibility of speech and the echo cancellation performance. The developer guide mentions it is used to make decisions regarding NLP break-in. How does it interact with the NLP?
Regards,
Ed