Отключить автоматическое переключение профилей Bluetooth-устройств (особенно ввода), когда приложения запрашивают это, в PipeWire и Ubuntu 23.04.

Вопрос или проблема

Я столкнулся с той же проблемой, что и описано в этом комментарии на реддит r/linuxquestions, но для pipewire.

Вкратце: по умолчанию аудиоконтроллеры и система позволяют приложениям переключаться с высококачественного профиля A2DP на HSP/HFP, поскольку приложения заставляют использовать микрофон Bluetooth-гарнитуры, который требует низкокачественного профиля HSP, насколько мне известно. Это происходит, например, в MS Teams, GMeet и других.

Решение описано здесь: https://wiki.archlinux.org/title/PipeWire#Automatic_profile_selection

Необходимо создать глобальный файл конфигурации для wireplumber: /etc/wireplumber/policy.lua.d/11-bluetooth-policy.lua (или пользовательский в ~/.config/wireplumber/)

и добавить следующую опцию:

bluetooth_policy.policy["media-role.use-headset-profile"] = false

Перезапустите pipewire или ваш компьютер, и теперь профили не должны меняться автоматически, что позволит сохранить ручной контроль над настройками ввода/микрофона в приложениях!

Для Ubuntu 24.10 это новый ответ, поскольку теперь используется Wireplumber, а не сырая Pulse Audio:

https://wiki.archlinux.org/title/Bluetooth_headset#Switch_between_HSP/HFP_and_A2DP_setting

По сути, создайте следующий файл:

~/.config/wireplumber/wireplumber.conf.d/51-stop-swapping-profiles.conf:

## В WirePlumber есть ошибка, из-за которой некоторые приложения переключаются на профиль гарнитуры
## --
## См. проблемы №634, №645, №630, №629, №613
## --
## Эта конфигурация смягчает проблему, полностью отключая переключение и поддержку профиля гарнитуры (HFP)
## Использовать это будет иметь смысл, только если вы никогда не планируете использовать микрофон вашей гарнитуры.

wireplumber.settings = {
  ## Использовать ли профиль гарнитуры при наличии входящего потока.
  ## --
  ## Отключить на данный момент, так как это вызывает проблемы. См. примечание вверху, чтобы узнать, почему.
  bluetooth.autoswitch-to-headset-profile = false
}

monitor.bluez.properties = {
  ## Включенные роли (по умолчанию: [ a2dp_sink a2dp_source bap_sink bap_source hfp_hf hfp_ag ])
  ##
  ## В настоящее время некоторые гарнитуры (Sony WH-1000XM3) не работают с
  ## включенными hsp_ag и hfp_ag, поэтому по умолчанию мы включаем только HFP.
  ##
  ## Поддерживаемые роли: hsp_hs (HSP Headset),
  ##                      hsp_ag (HSP Audio Gateway),
  ##                      hfp_hf (HFP Hands-Free),
  ##                      hfp_ag (HFP Audio Gateway)
  ##                      a2dp_sink (A2DP Audio Sink)
  ##                      a2dp_source (A2DP Audio Source)
  ##                      bap_sink (LE Audio Basic Audio Profile Sink)
  ##                      bap_source (LE Audio Basic Audio Profile Source)
  ## --
  ## Включите здесь только A2DP и отключите HFP. См. примечание вверху, чтобы узнать, почему.
  bluez5.roles = [ a2dp_sink a2dp_source ]
}

Затем перезагрузите ПК.

Ответ или решение

Если вы столкнулись с проблемой, когда приложения автоматически переключаются с высококачественного профиля A2DP на HSP/HFP при использовании Bluetooth-гарнитуры в Ubuntu 23.04, то решить ее можно, изменив настройки PipeWire и WirePlumber.

Вам необходимо создать файл конфигурации для WirePlumber, который позволит контролировать автоматическое переключение профилей Bluetooth-устройств. Это особенно актуально для приложений, таких как Microsoft Teams и Google Meet, которые переключают профили для использования микрофона и тем самым ухудшают качество звука.

Как отключить автоматическое переключение профилей Bluetooth в Ubuntu 23.04

  1. Измените конфигурацию WirePlumber.

    Для глобальных изменений создайте файл конфигурации /etc/wireplumber/policy.lua.d/11-bluetooth-policy.lua. Для пользовательских изменений используйте директорию ~/.config/wireplumber/. В этот файл добавьте:

    bluetooth_policy.policy["media-role.use-headset-profile"] = false
  2. Создайте файл для настройки WirePlumber.

    Создайте конфигурационный файл ~/.config/wireplumber/wireplumber.conf.d/51-stop-swapping-profiles.conf и добавьте в него следующее содержимое:

    wireplumber.settings = {
      bluetooth.autoswitch-to-headset-profile = false
    }
    
    monitor.bluez.properties = {
      bluez5.roles = [ a2dp_sink a2dp_source ]
    }

    Этот файл отключает автоматическое переключение на профиль гарнитуры и ограничивает использование профилей только для A2DP, что гарантирует сохранение высокого качества звука.

  3. Перезагрузите компьютер.

    После внесения изменений, перезапустите систему, чтобы конфигурации вступили в силу.

Заключение

Следуя вышеописанным шагам, вы сможете отключить автоматическое переключение профилей Bluetooth-устройств в Ubuntu 23.04, что позволит вам сохранить высокое качество звука даже при использовании приложений, требующих микрофон. Эта настройка также улучшает общее управление профилями и делает взаимодействие с Bluetooth-устройствами более гибким и контролируемым.

Оцените материал
Добавить комментарий

Капча загружается...