Open lowlyocean opened 1 month ago
Please can you state:
I don't have any echo-cancelling devices to try this for myself, but if I am given enough information to reproduce the rest of your set-up I may be able to track down some possible causes.
Sure, not built from source - pasting relevant distro-provided packages:
> ii bluez 5.66-1+rpt1+deb12u1 arm64 Bluetooth tools and daemons
> ii bluez-alsa-utils 4.0.0-2 arm64 Bluetooth Audio ALSA Backend (utils)
> ii bluez-firmware 1.2-9+rpt3 all Firmware for Bluetooth devices
> ii bluez-hcidump 5.66-1+rpt1+deb12u1 arm64 Analyses Bluetooth HCI packets
> ii libasound2-plugin-bluez:arm64 4.0.0-2 arm64 Bluetooth Audio ALSA Backend (plugins)
Sample rate & format for speakerphone with bluealsa: arecord -vvv -f S16_LE -r 8000 -c1 <file.wav>
. Logs indicated codec was CVSD
For pulseaudio I run systemctl mask bluealsa.service
followed by rm /etc/asound.conf
, and reboot; then after bluetoothctl connect <address>
and pactl set-card-profile bluez_card.<address> handsfree_head_unit
, I run the same arecord command
arecord -vvv ...
The output from that should show the setup of each ALSA plugin used. Please could you post that section of the output so that we can see which plugins are used, and what the setup of each is? It is possible that the pitch-shift may be caused by a plugin; but it is also possible that dropped SCO frames may result in a raised pitch, combined with frequent underruns. (In this case playing from the hcidump file would also result in the raised pitch, but without the underruns).
Setup
There are two bluetooth devices:
That I've been pairing to two machines:
Problem
I have an issue when I pair Device 2 (speakerphone) with Machine 1 (Blue Alsa): there is distortion and pitch-shift during recording from the microphone. It sounds demonic.
I can confirm that playback of
hcidump -A output.raw
contains the distortion, so I suspect the speakerphone's echo cancellation somehow doesn't work well with bluealsa. The same device works paired on the separate PulseAudio machine.. but the separate pair of headphones records on this machine without distortionAdditional context
Configuration of Raspberry Pi with BlueAlsa:
bluealsa -p a2dp-source -p a2dp-sink -p hfp-hf -p hsp-hs -p hfp-ag -p hsp-ag
Ubuntu machine with PulseAudio: