Как улучшить звук в блютуз наушниках на андроиде

Обновлено: 04.07.2024

Проблемы с беспроводными Bluetooth наушниками случаются не только на этапе подключения, но и после, когда наушники уже подключены к телефону, но звук через них воспроизводится с каким то искажением, треском, или вообще заикается, останавливается и т. д. Или же звук отстает от видео, появляется рассинхронизация. В этой статье мы рассмотрим несколько решений, которые нужно применить в случае возникновения этой проблемы при использовании беспроводных наушников с телефонами на Android, или с iPhone. Что касается самих наушников, то подобные проблемы бывают абсолютно с любыми моделями и форматами Bluetooth наушников. В том числе с TWS (когда два наушника раздельно) . Если у вас похожая проблема, но при подключении наушников к компьютеру, то читайте эту статью: плохой звук в Bluetooth наушниках на компьютере или ноутбуке.

По своему опыту могу сказать, что проблемы с искажением или помехами в воспроизведении звука через беспроводные наушники на Android бывают чаще, чем на iPhone. Там все это работает как-то более стабильно. Так что практически все решения будут именно для Android. Причина в огромном количестве разных устройств (в том числе сильно устаревших) , в разных версиях Android, в оптимизации ПО и железа и т. д. То, что звук передается по воздуху, и могут быть проблемы с какими-то помехами и т. д., из-за чего падает качество звука и появляются искажения или рассинхронизация, это понятно. И эти моменты тоже нужно исключить, об этом мы еще поговорим.

Если говорить о причинах, то их можно разделить на две группы:

  1. Программные: ошибки в программном обеспечении наушников или смартфона, разные функции и настройки, проблемы в работе разных программ (в том числе проигрывателей музыки и видео) , кодеки и т. д.
  2. Аппаратные: производительность телефона (слабое железо) , аппаратные поломки наушников или телефона (не редко проблемы с антенной, которая усиливает сигнал Bluetooth, с самим Bluetooth модулем) , большая разница в версиях Bluetooth между телефоном и наушниками.

Что делать, если заикается или отстает звук на телефоне через наушники?

  • Перезагрузите телефон. Наушник так же выключите и включите. Если у вас TWS наушник, то спрячьте их в кейс, достаньте и подключите к телефону после его перезагрузки.
  • Попробуйте запустить воспроизведение музыки или видео, которое хранится в памяти телефона, а не через интернет. Возможно проблема не в передаче звука, а в плохой скорости подключения к интернету, и контент просто не успевает прогружаться, поэтому останавливается.
  • Отключите на телефоне Wi-Fi. Понимаю, что это не решение, так как без Wi-Fi тоже никак, но для проверки попробуйте это сделать. И наоборот, если Wi-Fi уже отключен – включите его.
  • Если на телефоне есть чехол – попробуйте его снять. и подключите их заново. После этого проверьте, как воспроизводится звук, не заикается ли, не отстает ли звук от видео.
  • Обновите прошивку телефона (Android или iOS) и наушников (если это возможно в случае с вашими наушниками) . ПО наушников как правило можно обновить через фирменное приложение.
  • Обязательно проверьте наушник с другим телефоном, или компьютером. Так вы сможете понять в чем причина. После чего можете написать мне в комментариях, постараюсь подсказать решение. Если такая проблема с наушниками на всех устройствах, то это скорее всего аппаратная поломка. В этой ситуации можно обновить ПО наушников, сделать сброс настроек, и подключить их заново.
  • Проверьте, будут ли помехи в воспроизведении звука в другом месте. В другой комнате, на улице. Это позволит нам исключить вариант с помехами от Wi-Fi роутера, других устройств и т. д.
  • Попробуйте установить и использовать другой проигрыватель.

Другие решения (для Android)

Если перечисленные выше решения не помогли избавиться от проблемы с искажением звука через наушник, или хотя бы выяснить в чем причина, то попробуйте применить более сложные решения. Некоторые из них я вычитал на форумах.. Если что-то не получается, или остались какие-то вопросы – пишите в комментариях.

Включаем кодек ACC в настройках Bluetooth на Android

Скорее всего на вашем смартфоне по умолчанию используется кодек SBC (на iPhone по умолчанию используется ACC) . В случае с SBC могут быть проблемы со звуком (треск, шум и т. д.) . Нужно в настройках вашего смартфона попробовать переключиться на кодек ACC. На Android это скорее всего (мне сложно сказать где находятся эти настройки на разных версиях Android, разных телефонах и т. д. ) можно сделать в разделе "Для разработчиков" – "Аудиокодек для Bluetooth". Выберите там ACC.

Кодек ACC в настройках Bluetooth на Android

Можете поэкспериментировать с другими вариантами.

Отключите режим энергосбережения

Если причина в нехватке производительности устройства, то отключение режима энергосбережения может решить проблему с передачей звука. Отключить режим энергосбережения (Экономия заряда) можно в настройках телефона. Самый быстрый способ сделать это, через шторку уведомлений. Там есть отдельная кнопка.

Искажение звука через наушники на Android из-за режима энергосбережения

Отключите 4G

В интернете есть много отзывов, что отключение 4G (переход в режим только 3G) решил проблему с помехами при воспроизведении звука с телефона через Блютуз наушник. Возможно, отключение 4G снимает нагрузку с беспроводного модуля, или с процессора. Можете попробовать. Отключить 4G можно в настройках, в разделе "Мобильная сеть" - "Мобильная передача данных". Пункт "Предпочтительный режим сети". Ставим там "Только 3G".

Глючит звук через Bluetooth наушники из-за 4G

После этого перезагрузите смартфон.

Искажение и рассинхронизация звука из-за приложений

Нужно удалить или закрыть (желательно все же удалить) все лишние приложения, чтобы снять нагрузку с железа и увеличить производительность телефона. Так же есть информация, что звук на наушники может передаваться с искажением из-за голосовых помощников. Например, видел отзыв, в котором автор говорил о том, что проблема ушла после удаления Яндекс браузера с голосовым помощником Алиса. Сам не проверял, но это вполне может быть рабочее решение. Еще видел, когда проблему решали "заморозкой" стандартного голосового ассистента (Voice Assistant) .

Отключите звуковые эффекты

Не на всех смартфонах есть такие настройки. Показываю на примере смартфона Redmi. В разделе "Расширенные настройки" может быть пункт "Наушники и звуковые эффекты". Отключите там "Улучшение звука MI". Чтобы настройки стали активными нужно подключить наушники.

Отстает и заикается звук из-за звуковых эффектов на Android

Запрещаем "Доступ к контактам и журналу звонков"

При первом подключении наушников появляется запрос на разрешение на доступ к контактам и журналу звонков. Как правило, все нажимают "Разрешить". Попробуйте удалить наушник на своем телефоне по этой инструкции, подключить их заново, и при появлении этого запроса выбрать "Запретить" (Отклонить) .

Зависает звук в наушниках с Android телефона из-за доступа к контактам и звонкам

Так же в настройках можно попробовать отключить "Аудиоустройство телефона" (наушники не будут работать как гарнитура) и тот же "Обмен контактами". Оставить только "Мультимедийное аудиоустройство".

Использование наушников только для аудио без микрофона на Android

Отключите "Видимость" для других устройств

Снять нагрузку с Bluetooth модуля можно отключив функцию "Видимость", когда ваш смартфон доступен для поиска и видим на других устройствах. Это можно сделать в настройках Блютуз.

Отключение функции "Видимость" по Bluetooth на Android для улучшения качества звука

Если у вас там есть пункт "Поиск Bluetooth-устройств" – отключите его так же. После этих действий звук в наушниках должен воспроизводиться без искажений и зависаний.

С удовольствием буду дополнять статью новыми решениями. Если вам удалось победить эту проблему используя решение из этой – оставьте отзыв в комментариях. Если у вас есть какое-то другое решение – поделитесь, буду благодарен! Ну и задавайте вопросы, всем обязательно отвечу.

Некоторые пользователи беспроводных наушников отмечают низкое качество звука и недостаток высоких частот при использовании стандартного Bluetooth-кодека SBC, который поддерживают все аудиоустройства. Частой рекомендацией для улучшения звука является покупка устройств и наушников с поддержкой кодеков aptX и LDAC. Эти кодеки требуют лицензионных отчислений, поэтому устройства с их поддержкой стоят дороже.

Оказывается, низкое качество SBC обусловлено искусственными ограничениями Bluetooth-стеков и настроек наушников, и это ограничение можно обойти на любых существующих устройствах, путём программных изменений смартфона или компьютера.

Кодек SBC

У кодека SBC есть множество разных параметров, которые согласуются на этапе установки соединения. Среди них:

  • Количество и тип каналов: Joint Stereo, Stereo, Dual Channel, Mono;
  • Количество частотных полос: 4 или 8;
  • Количество блоков в пакете: 4, 8, 12, 16;
  • Алгоритм распределения битов при квантовании: Loudness, SNR;
  • Максимальное и минимальное значение пула битов, используемых при квантовании (bitpool): обычно, от 2 до 53.

Декодирующее устройство обязано поддерживать любое сочетание этих параметров. Кодирующее устройство может реализовывать не все.
Существующие Bluetooth-стеки, как правило, согласуют следующий профиль: Joint Stereo, 8 полос, 16 блоков, Loudness, bitpool 2..53. Этот профиль кодирует 44.1 кГц аудио с битрейтом 328 кбит/с.
Параметр bitpool напрямую влияет на битрейт в рамках одного профиля: чем он выше, тем выше битрейт, а следовательно и качество.
Однако параметр bitpool не привязан к конкретному профилю; влияние на битрейт также в значительной степени оказывает и другие параметры: тип каналов, количество частотных полос, количество блоков. Поднять битрейт можно косвенно, путем согласования нестандартных профилей, без изменения bitpool.


Формула подсчета битрейта SBC


Например, режим Dual Channel кодирует каналы раздельно, используя весь bitpool для каждого из каналов. Заставив устройство использовать Dual Channel вместо Joint Stereo, мы получим почти удвоенный битрейт при том же максимальном значении bitpool: 617 кбит/с.
По моему мнению, использование не привязанного к профилю значения bitpool на этапе согласования — недоработка стандарта A2DP, которая и привела к искусственному ограничению качества SBC. Разумней было бы согласовывать bitrate, а не bitpool.

Такие фиксированные значения Bitpool и Bitrate берут свое начало из таблицы с рекомендованными к использованию значениями для высококачественного аудио. Но рекомендация — не повод ограничиваться этими значениями.

Таблица профилей Bluetooth SBC

Спецификация A2DP v1.2, которая была активна с 2007 по 2015 год, предписывает всем декодирующим устройствам корректно работать с битрейтами до 512 кбит/с:

The decoder of the SNK shall support all possible bitpool values that do not result in excess of the maximum bit rate. This profile limits the available maximum bit rate to 320kb/s for mono, and 512kb/s for two-channel modes.

В новой версии спецификации ограничение по битрейту отсутствует. Предполагается, что современные наушники, выпущенные после 2015 года и поддерживающие EDR, могут поддерживать битрейты до ≈730 кбит/с.

По какой-то причине, у проверенных мной Bluetooth-стеков Linux (PulseAudio), Android, Blackberry и macOS есть искусственные ограничения максимального значения параметра bitpool, который напрямую влияет на максимальный битрейт. Но это — не самая большая проблема, почти все наушники тоже ограничивают максимальное значение bitpool числом 53.
Как я уже успел убедиться, большинство устройств отлично работает на модифицированном Bluetooth-стеке с битрейтом в 551 кбит/с, без прерываний и треска. Но такой битрейт никогда не будет согласован в обычных условиях, на обычных Bluetooth-стеках.

Модифицируем Bluetooth-стек

В любом Bluetooth-стеке, который совместим со стандартом A2DP, есть поддержка режима Dual Channel, но активировать её из интерфейса не представляется возможным.

Давайте добавим переключатель в интерфейс! Я сделал патчи для Android 8.1 и Android 9, которые добавляют полноценную поддержку Dual Channel в стек, добавляют режим в меню переключения режима в инструменты разработчика, и обрабатывают SBC с поддержкой Dual Channel так, будто это дополнительный кодек, вроде aptX, AAC или LDAC (Android называет это HD Audio), добавляя галочку в настройки Bluetooth-устройства. Вот как это выглядит:

image

При активации галочки, Bluetooth-аудио начинает передаваться с битрейтом 551 кбит/с, если наушники поддерживают соединение на скорости 3 мбит/с, или 452 кбит/с, если наушники поддерживают только 2 мбит/с.

  • LineageOS
  • Resurrection Remix
  • crDroid

Откуда взялись 551 и 452 кбит/с?

Технология разделения эфира в Bluetooth предназначена для эффективной передачи больших пакетов фиксированного размера. Передача данных происходит слотами, самое большое количество слотов, отправляемых за одну передачу — 5. Также есть режимы передачи, использующие 1 или 3 слот, но не 2 или 4. В 5 слотах можно передать до 679 байт на скорости соединения 2 мбит/с и до 1021 байт на скорости 3 мбит/с, а в 3 — 367 и 552 байта соответственно.

image

Если мы хотим передать меньше данных, чем 679 или 1021 байт, но больше, чем 367 или 552 байта, то передача всё равно займет 5 слотов, а данные будет передаваться за такое же время, что уменьшает эффективность передачи.

image

SBC в режиме Dual Channel, на 44100 Гц-аудио с параметрами Bitpool 38, 16 блоков во фрейме, 8 частотных диапазонов, кодирует аудио во фреймы размером 164 байт, с битрейтом 452 кбит\с.
Аудио должно быть инкапсулировано в протоколы передачи L2CAP и AVDTP, которые забирают 16 байт от полезной аудионагрузки.

Таким образом, в одну Bluetooth-передачу с 5 слотами удаётся вместить 4 аудиофрейма:

Мы вместили 11.7 мс аудиоданных в отправляемый пакет, который будет передан за 3.75 мс, и у нас осталось 6 неиспользованных байт в посылке.
Если чуть поднять bitpool, 4 аудиофрейма уже не удастся упаковать в одну посылку. Придётся отправлять по 3 фрейма за раз, что снижает эффективность передачи, уменьшает количество передаваемого аудио за одну посылку, и быстрее приведёт к заиканиям аудио при плохих радиоусловиях.

Таким же образом был подобран битрейт 551 кбит/с для EDR 3 мбит/с: с Bitpool 47, 16 блоками во фрейме, 8 частотными диапазонами получается размер фрейма 200 байт, при битрейте 551 кбит/с. В одну посылку вмещается 5 фреймов или 14.6 мс музыки.

Зачем всё это нужно?

Вопреки расхожему мнению о качестве звука кодека aptX, на некоторых файлах он может давать результаты хуже, чем SBC со стандартным битрейтом в 328 кбит/с.

SBC динамически выделяет биты квантования для частотных полос, действуя по принципу «от нижних к верхним». Если весь битрейт использовался на нижние и средние частоты, верхние частоты «обрежутся» (вместо них будет тишина).
aptX квантует частотные полосы одним и тем же количеством бит постоянно, из-за чего у него постоянный битрейт: 352 кбит/с для 44.1 кГц, 384 кбит/с для 48 кГц, и он не может «перенести биты» на те частоты, которые больше всего в них нуждаются. В отличие от SBC, aptX не будет «обрезать» частоты, а будет добавлять в них шумы квантования, уменьшая динамический диапазон аудио, и иногда привносить характерные потрескивания. SBC же «съедает детали» — отбрасывает наиболее тихие участки.
В среднем, по сравнению с SBC 328k, aptX вносит меньше искажений в музыку с широким частотным диапазоном, но на музыке с узким диапазоном частот и широким динамическим диапазоном SBC 328k иногда выигрывает.

image

Рассмотрим частный случай. Спектрограмма записи игры на фортепиано:

image

Основная энергия лежит в частотах от 0 до 4 кГц, и продолжается до 10 кГц.
Спектрограмма файла, сжатого в aptX, выглядит следующим образом:

image

А так выглядит SBC 328k.

image

Видно, что SBC 328k периодически полностью отключал диапазон выше 16 кГц, и расходовал весь доступный битрейт на диапазоны ниже этого значения. Однако, aptX внес больше искажений в слышимый человеческим ухом спектр частот, что можно видеть на вычтенной оригинальной спектрограмме из спектрограммы aptX (чем ярче, тем больше искажений):

image

В то время как SBC 328k меньше испортил сигнал в диапазоне от 0 до 10 кГц, а остальное — обрезал:

image

Битрейта 485k SBC хватило, чтобы сохранить весь диапазон частот, без отключения полос.

image

SBC 485k на этой композиции значительно опережает aptX в диапазоне 0-15 кГц, и с меньшей, но все же заметной разницей — в 15-22 кГц (чем темнее, тем меньше искажений):

Переключившись на высокобитрейтный SBC, вы получите звук, зачастую превосходящий aptX, на любых наушниках. На наушниках, поддерживающих подключение EDR 3 мбит/с, битрейт 551 кбит/с даёт звук, сравнимый с aptX HD.

А можно ещё больше?

В патче для Android также имеется опция для ещё большего повышения битрейта для устройств EDR 2 мбит/с. Можно повысить битрейт с 452 кбит/с до 595 кбит/с, ценой уменьшения стабильности передачи в сложных радиоусловиях.
Достаточно установить переменную persist.bluetooth.sbc_hd_higher_bitrate в значение 1:

Патч на экстремальный битрейт пока принят только в LineageOS 15.1, но не в 16.0.

Совместимость с устройствами

SBC Dual Channel поддерживается практически всеми наушниками, колонками и автомобильными головными устройствами. Это немудрено — стандарт предписывает его поддержку в любых декодирующих устройствах. Есть небольшое количество устройств, на которых этот режим вызывает проблемы, но это — единичные экземпляры.
Более подробно с совместимыми устройствами можно ознакомиться на 4pda или xda-developers.

Сравнение различий звука

Связь с разработчиками Android

Я писал многим разработчикам Bluetooth-стека из Google, с просьбой рассмотреть включение патчей в основную ветку Android — AOSP, но не получил ни одного ответа. Мои патчи в системе работы с патчами Gerrit для Android также остались без комментариев со стороны кого-либо причастного.
Я был бы рад, если бы мне посодействовали в связи с разработчиками из Google и внедрении SBC HD в Android. Патчcет в gerrit уже устарел (это одна из ранних ревизий), и я его обновлю, если разработчиков заинтересуют мои изменения (мне непросто его обновлять, у меня нет совместимых с Android Q устройств).

Как сделать беспроводной звук лучше, а опыт использования приятнее. Вряд ли многие люди при выборе наушников или адаптера в первую очередь думают о кодеках — я не думал.

  • Это аудио кодек. Говоря проще он уменьшает задержку и делает звук чище, становится больше деталей в сравнении с SBC и AAC;
  • Присутствует не только в дорогих наушниках;
  • Достаточный для повседневных целей: посмотреть фильм, послушать музыку онлайн с битрейтом 320 kbs;
  • Не избыточный, менее труднодоступный в сравнении Aptx HD и LDAC;
  • По сравнению с SBC и AAC разница есть и различима на слух, если слушать музыку хотя бы в 320kp или смотреть видео.

Проблемы начинаются когда нужно чтобы устройство использовало это кодек. Казалось бы: купил наушники, подключил и наслаждаешься звуком. Ведь о тебе уже подумали — нет.

На iPhone, iPad — никак. На Android зависит от устройства. На компьютерах Mac проблем не будет, даже относительно старые модели со встроенным Bluetooth поддерживаю Aptx. Есть нюанс — нужно следить за тем, через какой кодек Mac передает звук на беспроводное аудиоустройство.

Когда используется не одно устройство, допустим клавиатура и наушники Mac отдает приоритет первому подключенному устройству. Подключенные после него наушники не получат Aptx. Проверить это легко: держите Option, нажимаете на иконку Bluetooth в верхнем баре, выбираете устройство и смотрите через какой кодек оно работает.

Признаюсь, не знаю почему Mac так поступает. Существуют программы для принудительного выбора кодека, но без них можно обойтись. Отключить клавиатуру, например, физическим переключателем на ней, подключить аудиоустройство, затем включить.

«Куплю самый новый и дорогой адаптер от фирмы, которая у всех на слуху и в нём всё будет» — Не-а, не будет.

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

Aptx запатентован Qualcomm. Мне не ясно почему, но многие производители не выпускают адаптеры с его поддержкой. Нужен адаптер на чипе CSR8510 от Qualcomm. Не буду говорить за все варианты на рынке, но Windows 10 подхватывает большинство адаптеров на этом чипе и сторонних драйверов устанавливать не нужно. Aptx будет работать сразу. Не буду называть брендов, скажу, что цены варьируются от 150-250р. на Али и до 500-700 в магазинах.

Решение кажется очевидным, но не тогда, когда ты пытаешься выбрать адаптер из десятков брендовых и ноунеймов. Когда ни у каких из них не указана поддержка Aptx по-человечески, ты видишь только тонны негативных отзывов, по большей части, о комплектных драйверах, которые на практике устанавливать нет необходимости. Aptx на Windows есть, он работает и имеет смысл, следуй за белым кроликом, как говорится (за чипом Qualcomm).

В данной статье мы расскажем вам, как можно улучшить качество звука для Bluetooth-устройств, которые вы подключаете к своему Android смартфону. Конечно, сразу стоит оговориться, что не нужно ждать колоссальной разницы в звучании. Это действительно поможет сделать звук лучше, но, если Bluetooth-устройство, на котором вы прослушиваете музыку, изначально не удовлетворяет вас своими характеристиками, вряд ли это изменит ваше мнение даже после изменения настроек.

И да, увы, но все следующие рекомендации можно использовать только на смартфонах с операционной системой Android, она позволят задействовать некоторые скрытые настройки.


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

Так вот, перейдя в раздел «Параметры разработчика» вам будут интересны несколько пунктов: аудиокодек для передачи через Bluetooth, частота дискретизации и битрейт. Стоит сказать, что вариантов совмещения этих параметров бывает масса. Для удобства мы можете воспользоваться таблицей ниже.


Самые лучшие из "средних" кодеков – aptX и aptX HD. Поэтому, если ваше Bluetooth-устройство поддерживает такие кодеки, смело выбирайте их. А далее выберите частоту дискретизации и битрейт, как мы советуем в таблице. Выставлять значение выше смысл имеет только тогда, если ваше устройство поддерживает более высокие значения. В остальном, если вы поставите битрейт выше, чем может дать ваше устройство, никакого изменения в лучшую сторону вы не заметите. Поэтому выставляйте максимальные значения, которые поддерживает Bluetooth-колонка или наушники.

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

Читайте также: