Headset delivers bad audio quality and low microphone volume on HSP/HFP mode
I own a Teufel Airy (2017) bluetooth headset (bluetooth 4.0, aptX support) and like to use it as a headset through bluetooth on Fedora 31. The settings dialog allows me to connect it in A2DP mode (just playback, good sound quality) and in HSP/HFP mode. The letter one offers bad playback quality, the microphone seems to work, but the record levels are way too low. Knocking directly on the microphone produces just 3 to 8 dashes in the picture below.
Pulseaudio source details for my headset:
* index: 30
name: <bluez_source.A0_E9_DB_01_7E_D0.headset_head_unit>
driver: <module-bluez5-device.c>
flags: HARDWARE HW_VOLUME_CTRL LATENCY
state: RUNNING
suspend cause: (none)
priority: 9050
volume: mono: 65536 / 100%
balance 0,00
base volume: 65536 / 100%
volume steps: 16
muted: no
current latency: 36,42 ms
max rewind: 0 KiB
sample spec: s16le 1ch 8000Hz
channel map: mono
Mono
used by: 1
linked by: 1
fixed latency: 28,00 ms
card: 6 <bluez_card.A0_E9_DB_01_7E_D0>
module: 28
properties:
bluetooth.protocol = "headset_head_unit"
device.intended_roles = "phone"
device.description = "Teufel AIRY"
device.string = "A0:E9:DB:01:7E:D0"
device.api = "bluez"
device.class = "sound"
device.bus = "bluetooth"
device.form_factor = "headset"
bluez.path = "/org/bluez/hci0/dev_A0_E9_DB_01_7E_D0"
bluez.class = "0x240404"
bluez.alias = "Teufel AIRY"
device.icon_name = "audio-headset-bluetooth"
ports:
headset-input: Headset (priority 0, latency offset 0 usec, available: yes)
properties:
active port: <headset-input>
Info of bluetoothctl:
Device A0:E9:DB:01:7E:D0 (public)
Name: Teufel AIRY
Alias: Teufel AIRY
Class: 0x00240404
Icon: audio-card
Paired: yes
Trusted: yes
Blocked: no
Connected: yes
LegacyPairing: no
UUID: Headset (00001108-0000-1000-8000-00805f9b34fb)
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: Handsfree (0000111e-0000-1000-8000-00805f9b34fb)
If connected to my phone (Android 9), the playback quality is as intended, the record quality is as intended and playback quality in phone calls is as intended - perfectly fine.
I guess some part of the bluetooth system isn't supporting something or is misconfigured, but I don't know which part. I found this bugreport on launchpad mentioning the issue and a possible solution which seems to be applied in ChromiumOS - they stated that the kernel/bluetooth stack isn't supporting modern HSP/HFP modes (which was standardized in 2011).
I don't know whether this is the correct channel to report this bug. If not, please report it to an appropriate upstream project, like bluez, pulseaudio or the linux kernel. I'd be happy to assist in gathering more logs.
My software versions: Fedora 31 pulseaudio 13.0-rebootstrapped bluetoothctl 5.52 kernel 5.3.14