When making a bluetooth hands free phone call, the person on the receiving end of the call hears an echo (or loopback) of their own voice with an aprox 1 second delay. The feedback IS NOT caused by a speaker feeding back into a microphone.
For general checking: Can you switched out the speaker/microphone to validate the issue most likely relating to software? Also can you share how you know it’s not related to speaker->microphone feedback?
Can you describe your hardware setup, and what software steps you are taking to produce this event?
I have a Verdin board with an IMX8MP. I’m using headphones for the audio (completely sealed), and the device has an integrated microphone. I used bluetoothctl to connect my iPhone. I initiate a phone call on my iPhone to another phone. I then ran the following BlueALSA scritp (from the tutorial).
On my end (bluetooth connect through embedded device), I can hear the person on the other phone perfectly, and they can hear me perfectly.
However, on the receiver end, they hear their voice repeated back to them with an aprox 1 second delay. On my end, I never hear any feedback, echo, or loopback.
Looking through your old post, you stated that you updated bluealsa to v4.1.1. Can you confirm you did this? I ran into some gdbus-codegen issues when attempting.
I’m not on the build team, so I’m not exactly sure how it was done. We upgraded because there was a bug in the old version that caused a crash for us.
Unfortunately I couldn’t recreate the error. I will escalate the topic on our end, that most likely won’t provide any immediate solution. I would recommend reaching out to the bluez-alsa community on their git-hub link and maybe they can provide specific guidance.
Add the oFono profile to bluealsa by adding -p hfp-ofono in the ExecStart command in /lib/systemd/system/bluealsa.service
Connect a microphone and headset to the board (I’m using a headset that has 3.5mm mic and audio connector and using the green and pink ports on the Verdin dev board)
Connect to a phone using bluetoothctl
Initiate a call on the phone
Run the alsaloop_call.sh script created in the how-to guide right after you start the call.
At this point, you should be able to have a phone conversation through the headset. The person on the other end will hear their voice repeated back to them.
Please feel free to ask any questions regarding settings on my board if you run into issues.
I received an updated from our escalation processes. What was determined is that the Bluez-ala project considered echo cancelling out of scope. For a bit more information: Integration of echo-cancelling · Issue #532 · arkq/bluez-alsa · GitHub There is the belief that this issue wont be able to be solved via just ALSA tools.
They were able to get a bluetooth HFP setup using pulseaudio, and are working on documentation.
Dear @eric.tx,
I have the same problem and I am trying to integrate the webrtc echo canceller into my system.
I have included the following lines in local.conf
It looks like the echo effect/issue is reproducible with Pluseaudio, there are some tools that may allow elimination of the echo, this is the next step in the investigation.
Hi @eric.tx,
I have created a new post asking for your help to integrate the pulseaudio echo canceller.
On the other hand, we have been testing and we believe that the echo is not due to acoustic feedback but to a failure of the WM8904. It seems to have a very high crosstalk between the HP and MIC signal path. @eric.tx have you tested if with another codec you get the same echo? Have you tested with the NAU88C22?