💾 Archived View for gemini.danis.one › wireless-audio-on-pc captured on 2024-08-18 at 19:21:08. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

За компом в беспроводных наушниках

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

🖼️ За компом в беспроводных наушниках

Мой текущий набор Bluetooth-старичков: AirPods gen2, Samsung Buds Live и Marshall Major III: TWS использую на улице, а маршаллы иногда на замену основным ушам, про которые обязательно расскажу ниже.

Честно признаюсь: я очень часто слушаю музыку. Иногда сижу в наушниках часами. Первые Bluetooth наушники у меня появились, кажется, тринадцать лет назад. Или даже четырнадцать. Речь, конечно, о стереонаушниках, а не гарнитуре.

В те годы телефоны не были действительно многозадачными, и было довольно сложно слушать музыку и одновременно с этим общаться голосом. Но как только появилась возможность, я подключил наушники к ноутбуку. И это было, мягко говоря, неприятно.

Пока пользуешься наушниками как устройством для воспроизведения звука, всё звучит нормально. Как только заходишь в какой-нибудь войсчат — звук превращается в тыкву. Словно разговариваешь по старому дисковому телефону.

Это ужасно мешает. Иногда хочется разговаривать и слышать какие-то звуки на фоне. Или хотя бы нормально слышать собеседника.

Всё дело в профилях

Для разных видов обмена данными стек Bluetooth Classic позволяет использовать разные спецификации, называемые профилями. Их довольно много, но нас интересуют несколько, связанных со звуком:

HSP — Headset Profile и HFP — Hands Free Profile

HSP — довольно простой профиль, обеспечивающий двустороннуюю связь. Может использоваться для передачи моно-аудиосигнала в устройство и приёма моно-аудио с микрофона этого устройства. И ещё поддерживает простейшие команды типа «ответить» и «повесить трубку».

HFP — чуть более расширенный профиль. Он обеспечивает чуть больше функций типа «поставить звонок на паузу». Кажется, через него даже вызываются голосовые помощники. Хотя, конечно, во времена его создания, таких штук не было. Начиная с версии 1.6 профиль допускает некоторое улучшение качества звука, позволяя использовать кодек mSBC с частотой дискретизации 16 кГц, но это всё равно очень плохое моно. Ну зато версия 1.7 наконец позволила передавать сведения об уровне заряда.

A2DP — Advanced Audio Distribution Profile

А это тот самый профиль, который мы используем для прослушивания музыки. Кодек здесь становится частью профиля, поэтому хоть SBC, хоть aptX, хоть AAC — в большинстве случаев профиль будет всё тот же.

Ну и ещё здесь можно упомянуть о AVRCP — Audio/Video Remote Control Profile. Он допускает работу параллельно с A2DP и позволяет передавать команды типа паузы, переключения трека или регулировки громкости.

Но главная проблема, с которой нам приходится сталкиваться — это невозможность одновременного использования A2DP с HFP/HSP в классическом стеке протокола Bluetooth.

И что с этим всем делать?

Осознав суть проблемы, ещё не так давно мы были бы вынуждены оказаться перед сложным выбором из нескольких неидеальных решений:

Запретить использование HFP/HSP

Самое банальное решение для компов (да и телефонов тоже): запретить переход устройства в эти профили. Таким образом мы останемся без микрофона наушников и будем вынуждены говорить в какой-то другой микрофон. Зато звук всегда будет нормальным и стерео.

Это решение рекомендуют многие официальные ресурсы, в том числе техподдержка Microsoft [1], техподдержка Apple [2], техподдержка Philips [3].

Это работает и в целом спасает. Но, к сожалению, несколько ограничивает пользователя. Например, для меня нормальный формат использования наушников с микрофоном — подключиться к созвону и перемещаться по дому: <зачёркнуто>сходить в туалет заварить кофе, выйти на балкон и не прерывать при этом разговор. С телефоном это тоже выходит глупо: зачем надевать наушники, но при этом держать телефон в руке и говорить в него? В общем, рабочее решение, но неудобное.

[1] техподдержка Microsoft

[2] техподдержка Apple

[3] техподдержка Philips

Внедрять костыли

Да, Bluetooth — это стандарт. Но что, если делать Bluetooth-совместимые устройства, допускающие выход за рамки стандарта?

Единственный подтверждённый кейс, который я нашёл — FastStream от CSR [4] : они модифицировали свою реализацию профиля A2DP, позволив передавать сигнал от микрофона, причём с качеством даже чуть повыше, чем у HFP 1.6. Решение прикольное, но работает только когда и наушники, и Bluetooth-адаптер поддерживают эту реализацию.

Есть предположение, что связка MacBook + AirPods использует кодек AAC в профиле HFP, поскольку эйрподсы воспроизводят вполне приличный звук при работающем микрофоне. Но подтвердить это я пока не могу, так что пусть это будет лишь домыслом.

Ещё на разных форумах обсуждались иные костыли: например, аудиоустройство и адаптер могли бы поддерживать хитрую схему, когда наушники реализуют сразу два устройства, а компьютер отображает их вновь как одно. Тогда можно было бы на одно передавать нормальный звук через A2DP, а со второго слушать микрофон по HFP. Или использовать иные кодеки вместо mSBC. Реализовал ли такое хоть кто-нибудь — для меня тайна.

[4] FastStream от CSR

А если не Bluetooth?

Решение, которое я в последние пару лет использую чаще всего — наушники с кастомным USB-адаптером. Вместо блютуза они <зачёркнуто>изобретают велосипед используют свой набор протоколов радиосвязи, обеспечивающий быструю и качественную передачу звука в обе стороны.

Основные мои домашние наушники — SteelSeries Arctis 9 [5]. Пользуюсь ими больше двух лет и в целом доволен. Они поддерживают одновременную работу через свой адаптер и через Bluetooth. Адаптер поддерживает ПК и PlayStation. В итоге можно воткнуть адаптер в плойку, подключиться к телефону и совмещать гринд с прослушиванием подкастов или выступлений. А на компе можно разделить источники звука на две группы и управлять громкостью каждой, меняя, например, соотношение громкости войсчата и игры. И ещё радует кнопка отключения микрофона. Впрочем, есть и минусы: адаптер периодически странно ведёт себя с макбуком, а некоторые узлы наушников довольно хрупкие: после очередного падения треснуло крепление чашки к дуге, и из-за люфта внезапно наушники начали отключаться от малейшего движения. Пришлось разбирать и клеить.

[🖼️ IMG 1447] [6] Ага, вот эти ребята. Матовый пластик чашек слишком легко собирал отпечатки и был обклеен стикерами буквально через пару недель после покупки. В принципе, если наушники поддерживают Bluetooth, то их можно использовать и для прослушивания музыки на улице с телефона. Но в эпоху легких и качественных TWS-наушников это, пожалуй, теряет смысл.

🎮

Кстати, PS4, как и, кажется, все поколения Xbox, принципиально не дружит с большинством Bluetooth-наушников даже производства своей компании. Решается либо покупкой специального Bluetooth-адаптера, эмулирующего аудиоинтерфейс, либо покупкой гарнитуры, поддерживающей консоль. У PS5, кажется, с этим дела полегче, и она поддерживает обычные USB Bluetooth-адаптеры [7]. А у Switch вообще всё отлично, и аудио по блютузу они уже несколько лет, как умеют передавать [8].

[5] SteelSeries Arctis 9

[6] [🖼️ IMG 1447]

[7] поддерживает обычные USB Bluetooth-адаптеры

[8] умеют передавать

Будущее наступает: Bluetooth LE Audio

Тут надо начать с пояснения: Bluetooth и Bluetooth Low Energy — это два разных стандарта. Принципиально разных. Профили Bluetooth, описанные выше, применимы только к «классическому» стандарту Bluetooth. Таким образом, нельзя работать одновременно по двум стандартам. Например, если ваши умные часы умеют в оба стандарта, то они для приёма уведомлений будут использовать BLE, но при необходимости произвести какую-то неподдерживаемую BLE операцию переключатся на «прожорливый» классический Bluetooth.

🖱️

Приведу пример: когда-то у меня был недорогой USB-Bluetooth-адаптер для компа. Я подключил к нему Bluetooth-мышь и Bluetooth-наушники. И это было фиаско: каждое движение мыши приводило к кратковременному обрыву звука в наушниках: адаптер переключался из BLE в классику, взаимодействовал с мышью, теряя связь с «ушами» и возвращался обратно. Хороший адаптер так себя вести не должен, а вот для пользовательского устройства это поведение абсолютно нормально.

Итак, до недавнего времени весь аудиосигнал можно было передавать только по классическому Bluetooth. И так уж получилось, что последние годы на него все забили, поскольку BLE стал выглядеть куда более перспективным. И вот в 2020 году был анонсирован стандарт Bluetooth LE Audio [9] включенный в спецификацию Bluetooth версии 5.2, а в 2022 он был окончательно принят [10] для наушников. И это замечательно!

Во-первых, он вводит новые профили [11] для передачи звука. В том числе, и энергосберегающи�� профили, и, конечно долгожданные профили (насколько понимаю, TMAP [12]) для передачи нормального (до 32 кГц [13] с новым кодеком) звука в обе стороны!

[9] Bluetooth LE Audio

[10] принят

[11] новые профили

[12] TMAP

[13] до 32 кГц

А во-вторых, стандарт описывает технологию Auracast [14], которая позволит подключить к одному устройству несколько разных пар наушников и слушать в них один и тот же звук. Наконец-то можно будет подключить к телефону две пары наушников и смотреть вместе один и тот же фильм на одном планшете! Без костылей и с полным соответствием стандартам.

Ну и ещё есть ожидание поддержки одновременной поддержки разных источников звука: можно будет подключить наушники одновременно и к телефону, и к компьютеру без необходимости переподключаться между ними.

Остаётся открытым вопрос о том, когда BLE Audio начнут реализовывать в массовых устройствах (а не в каких-нибудь дорогих наушниках за сотни тысяч денег). И, конечно, интересно поразмышлять, сколько нам потребуется времени, чтобы поменять все свои (вообще-то, пока ещё довольно хорошие) старые наушники на новые. В телефонах и компьютерах поддержку потихоньку завозят: похоже, айфоны с 14 версии [15] уже его поддерживают, а вот из эйрподсов это <зачёркнуто>могут только прошки второго поколения. В общем, теперь ищем устройства с поддержкой Bluetooth версии 5.2 и выше. Обновлено: увы, даже новые прошки не поддерживают LE Audio [16], несмотря на поддержку Bluetooth 5.3. Поэтому, пока следует быть внимательнее, и не доверять только версии Bluetooth.

В качестве послесловия для тех, кому интересно подробнее изучить тему звука через Bluetooth, подкину отличную статью.

А если хочется обсудить этот пост — заходите сюда.

[14] Auracast

[15] с 14 версии

[16] не поддерживают LE Audio