Как правильно выбрать кодеки для гарнитуры Bluetooth?

Я только что получил свою новую гарнитуру Sony WH-1000XM3 и хотел бы знать, как правильно подключить ее к моей машине с Ubuntu. Это наушники ANC со встроенными микрофонами - в первую очередь для записи окружающего шума, но их также можно использовать в качестве входа. Моя машина, представляющая основной интерес, работает под управлением 18.04 LTS (рабочий ноутбук), но я также запускаю 20.04 LTS / 20.10 на своих личных компьютерах.

Когда я впервые подключил гарнитуру к компьютеру, я был шокирован тем, насколько плохим было качество звука, но потом я понял, что в разделе «Качество звука» выбрано «Головное устройство гарнитуры (HSP / HFP)». Я смог без проблем выбрать «High Fidelity Playback (A2DP)», и выходной звук стал лучше. Проблема в следующем: всякий раз, когда я включаю «Гарнитура - LE_WH-1000XM3» в качестве устройства ввода через внутренний микрофон ноутбука, выход возвращается к «Головному устройству гарнитуры (HSP / HFP)». Надеясь, что это поможет мне, я установил поддержку LDAC из PPA: https://github.com/EHfive/pulseaudio-modules-bt/wiki/Packages#ppaeh5pulseaudio-a2dp , но проблема, конечно же, не исчезла. Где-то по дороге я прочитал, что декодеры LDAC (в отличие от установленного мною кодировщика) даже не доступны в свободном доступе (источник: https://habr.com/en/post/456182/ ), поэтому пытаюсь отправить сигналы микрофона через LDAC с самого начала были обречены на провал.

Какие у меня есть варианты, чтобы получить приемлемый микрофонный вход и сохранить хороший аудиовыход (оба лучше, чем HSP / HFP) от моей недавно купленной гарнитуры? Каким-то образом моему устройству Android (LineageOS 15.1 - Oreo 8.1) удается сохранять приличное качество ввода и вывода, и я хочу получить то же самое на своих машинах с Linux.

Статистика Android согласно параметрам разработчика:

Bluetooth AVRCP Version: AVRCP 1.4
Bluetooth Audio Codec: LDAC
Bluetooth Audio Sample Rate: 96 kHz
Bluetooth Audio Bits Per Sample: 32 bits/sample
Bluetooth Audio Channel Mode: Stereo
Bluetooth Audio LDAC Codec: Best Effort (Adaptive Bit Rate)

исследование «Журнала отслеживания Bluetooth HCI» ( https://btcodecs.valdikss.org.ru/ ) дало:

Connection:
  XX:XX:XX:XX:XX:XX (Redmi Note 4) → YY:YY:YY:YY:YY:YY (WH-1000XM3)
Supported codecs:
  Audio SBC (44100 48000 | Mono DualChannel Stereo JointStereo | block: 4 8 12 16 | subbands: 4 8 | allocation: SNR Loudness | bitpool: 2..53)
  Audio non-A2DP (LDAC - 44100 48000 88200 96000, Mono DualChannel Stereo)
  Audio non-A2DP (aptX HD - 44100 48000, Stereo)
  Audio non-A2DP (aptX - 44100 48000, Stereo)
  Audio MPEG-2,4 AAC
Used for audio:
  Audio non-A2DP (LDAC - 96000, Stereo)

что соответствует с информацией Sony: https://helpguide.sony.net/mdr/wh1000xm3/v1/en/contents/TP0001703175.html

Что можно сделать, чтобы эта гарнитура правильно работала в Linux?
Если я ничего не могу сделать, почему?
Если я ничего не могу сделать с этим конкретным устройством, какие свойства мне нужно искать, если я хочу купить хорошую беспроводную гарнитуру для Linux, и как мне найти такую ​​гарнитуру "Linux"?
Bluetooth-гарнитуры еще не используются в Linux, и мне нужно использовать гарнитуры с кабельным подключением, если я хочу получить хороший опыт?

Я осведомлен о вопросе Как сохранить профиль звука в A2DP при использовании микрофон с Bluetooth-гарнитурой? (Push-to-talk) и WIP: реализация профилей HSP и HFP Bluetooth через демон hsphpfd , но я думаю, что мой вопрос не идентичен.

редактировать: добавить pactl output

user@pc:~$ pactl list sinks
Sink #0
    [...]
    Description: Built-in Audio Analog Stereo
    [...]

Sink #25
    State: RUNNING
    Name: bluez_sink.ZZ_ZZ_ZZ_ZZ_ZZ_ZZ.a2dp_sink
    Description: LE_WH-1000XM3
    Driver: module-bluez5-device.c
    Sample Specification: s16le 2ch 44100Hz
    Channel Map: front-left,front-right
    Owner Module: 33
    Mute: no
    Volume: front-left: 34080 /  52% / -17,04 dB,   front-right: 34080 /  52% / -17,04 dB
            balance 0,00
    Base Volume: 65536 / 100% / 0,00 dB
    Monitor Source: bluez_sink.ZZ_ZZ_ZZ_ZZ_ZZ_ZZ.a2dp_sink.monitor
    Latency: 36416 usec, configured 30804 usec
    Flags: HARDWARE DECIBEL_VOLUME LATENCY 
    Properties:
        bluetooth.protocol = "a2dp_sink"
        bluetooth.a2dp_codec = "LDAC"
        device.description = "LE_WH-1000XM3"
        device.string = "ZZ_ZZ_ZZ_ZZ_ZZ_ZZ"
        device.api = "bluez"
        device.class = "sound"
        device.bus = "bluetooth"
        device.form_factor = "headset"
        bluez.path = "/org/bluez/hci0/dev_ZZ_ZZ_ZZ_ZZ_ZZ_ZZ"
        bluez.class = "0x240404"
        bluez.alias = "LE_WH-1000XM3"
        device.icon_name = "audio-headset-bluetooth"
        device.intended_roles = "phone"
    Ports:
        headset-output: Headset (priority: 0, available)
    Active Port: headset-output
    Formats:
        pcm

user@pc:~$ pactl list sources
Source #0
    [...]
    Description: Monitor of Built-in Audio Analog Stereo
    [...]

Source #1
    [...]
    Description: Built-in Audio Analog Stereo
    [...]
    
Source #37
    State: IDLE
    Name: bluez_sink.ZZ_ZZ_ZZ_ZZ_ZZ_ZZ.a2dp_sink.monitor
    Description: Monitor of LE_WH-1000XM3
    Driver: module-bluez5-device.c
    Sample Specification: s16le 2ch 44100Hz
    Channel Map: front-left,front-right
    Owner Module: 33
    Mute: no
    Volume: front-left: 65536 / 100% / 0,00 dB,   front-right: 65536 / 100% / 0,00 dB
            balance 0,00
    Base Volume: 65536 / 100% / 0,00 dB
    Monitor of Sink: bluez_sink.ZZ_ZZ_ZZ_ZZ_ZZ_ZZ.a2dp_sink
    Latency: 0 usec, configured 30804 usec
    Flags: DECIBEL_VOLUME LATENCY 
    Properties:
        device.description = "Monitor of LE_WH-1000XM3"
        device.class = "monitor"
        device.string = "ZZ_ZZ_ZZ_ZZ_ZZ_ZZ"
        device.api = "bluez"
        device.bus = "bluetooth"
        device.form_factor = "headset"
        bluez.path = "/org/bluez/hci0/dev_ZZ_ZZ_ZZ_ZZ_ZZ_ZZ_DA"
        bluez.class = "0x240404"
        bluez.alias = "LE_WH-1000XM3"
        device.icon_name = "audio-headset-bluetooth"
        device.intended_roles = "phone"
    Formats:
        pcm
3
задан 31 October 2020 в 23:36

0 ответов

Другие вопросы по тегам:

Похожие вопросы: