Хабрахабр

Причины плохого звучания большинства смартфонов на Android

Зачастую смартфоны не могут похвастаться хорошим звуком, включая «музыкальные смартфоны с ЦАП» в сравнении с отдельными Hi-Fi плеерами. Этот материал о причинах и их возможных решениях. Наиболее подробно будет описана та часть, которая критичная именно для смартфонов.
При сравнении отдельного Hi-Fi плеера и смартфона для многих не очевидна разница в логике работы ОС. И по этой причине, смартфон с навороченным ЦАП может звучать существенно хуже, чем отдельный плеер на более простых комплектующих. Рассмотрим всю цепочку прохождения звукового сигнала по блокам и их влияние на конечное качество звучания.

Рассмотрим подробнее каждый блок. В наиболее простом виде маршрут сигнала выглядит так.

Исходный файл

Качество исходника безусловно важно, но, если не рассматривать низкобитрейтные форматы Lossy, то влияние на общее качество невелико. Безусловно, лучше использовать Lossless форматы в виде ape, flac и т.п…

Плеер

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

Микшер ОС

Именно в микшере заключается кардинальная разница между Hi-Fi плеером и смартфоном на ОС Android.

Например, плеер, различные музыкальные уведомления, музыка в игре и т.п… Все эти звуковые потоки могут иметь разную частоту дискретизации и разрядности. На ЦАП должен придти всего один стерео поток, но при этом несколько приложений могут одновременно воспроизводить звук. Такая логика одинакова для смартфонов на Android, iOS, Windows, Linux и т.п. Микшер все потоки должен привести к единой частоте и после сложить в один поток.

Но это редкое исключение, которое практиковалось в ранних версиях ОС для ПК. В редких случаях, если воспроизводится звук лишь из одной программы, то микшер может отключаться. Сегодня же делается упор на универсальность и стабильность работы приложений. Причиной отключения микшера была экономия ресурсов. Из-за алгоритмов конвертации качество звука деградирует. Для системы назначается единая частота дискретизации и ее разрядность.

Так как ПК активно используются для работы со звуком, где системный микшер совсем лишний, то для Windows есть два альтернативных вывода звука: WASAPI и ASIO.

В схеме блок драйвера между микшером и ЦАП для простоты убран. При использовании WASAPI и ASIO звуковой поток минует системный микшер и поступает напрямую в драйвер устройства и далее в ЦАП.

Остальные приложения будут молчать. При такой организации маршрута сигнала в системе только одно приложение может воспроизводить звук. Для некоторых звуковых карт сделан хитрый ход – драйвер может принять два потока – один с WASAPI и один из ASIO и далее средствами своего драйвера их смикшировать с высоким качеством. На практике такой подход не всегда приятен пользователю, где при запущенном секвенсоре нет звука например из skype.

Сейчас в некоторых плеерах можно встретить такие названия, как «Hi-Rez output driver», которые по своей сути являются аналогом WASAPI/ASIO и позволяют отдать звуковой поток мимо системного микшера ОС Android. Если для ОС Windows все относительно прозрачно и есть четкие названия для вывода звука, то в смартфонах с Android – полный мрак.

Хотя плееры некоторых компаний, используют пересчет потока из 44. В Hi-Fi плеерах FiiO на Android есть специальный режим, когда отключается все, что можно и остается только программный плеер в системе. Но, если к примеру у Pioneer XDP-300R алгоритм качественный, то у первого недешевого флагмана Sony ZX1 был посредственный. 1 в 48 кГц.

Насколько сильно он вредит? К чему столь подробное описание микшера ОС?

И есть соответствующий телевизор с разрешением 4k (аналог хорошего ЦАП, усилителя и качественных наушников). Если брать очень грубую аналогию с фото и видео, то у нас на входе фильм с разрешением 4k. После же поток обратно конвертируется в 4k из 640х480 и качество картинки на хорошем телевизоре оставляет желать лучшего. Программный плеер отдает кадры в микшер ОС и микшер все конвертирует в разрешение 640х480 самым низкокачественным способом для возможности наложения дополнительных системных титров (аналогично рингтонам). Он перебирает разные плееры, крутит в них настройки резкости, яркости, динамической обработки и останавливается на том плеере, где предварительная обработка изображения до понижения в 640х480 и обратно в 4к даст наименее ужасный результат. Как решает эту проблему пользователь, не слишком понимающий, от чего качество картинки так сильно пострадало? И этот плеер потом будет рекомендоваться как «самый качественный».

В комментариях можно обсудить другие варианты аналогий. При прямом же сравнении качества картинки с плеера, который напрямую донесет картинку без этапа изменения разрешения в 640х480, а например трансляции на монитор с разрешением 2k – результат будет существенно лучше.

Для реальной оценки влияния микшера на звук подготовлены специальные звуковые файлы.

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

Это совершенно обычный трек. Для примера было оцифровано вступление Mari Boine – Song For The Unborn. При желании можно подобрать более проблемный трек или вовсе обойтись техническим сигналом.

У Android штатно доступно 15 ступеней для регулировки уровня громкости. В качестве источника выступил смартфон Xiaomi Redmi Note 4x на Android 7. В названии файлов: уровень «15» соответствует максимальному уровню, «1» минимальному. Для получения полной картины была проведена оцифровка всех уровней в штатном плеере Android Google Player (Play Музыка) и Neutron (платная версия с возможностью отдать звуковой поток в обход системного микшера в этом смартфоне). Буква G – Android Google Player, N – Neutron.

Android Google Player, 1
Neutron, 1

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

Треки нормализованы к полной громкости и соответственно фоновый шум с ЦАП должен быть хорошо слышен для вариантов низкой громкости.

В варианте для Google плеера гораздо сильнее слышны те искажения, о которых идет речь в этом материале.

Если же разница в звучании совершенна не очевидна, то или есть серьезные проблемы со слухом, или устройство для воспроизведения никуда не годится. Возможно, у вас появится новая ассоциация с фразой «андроидный звук». В любом случае, оставьте свое мнение в комментариях к материалу.

Полный архив

Они нормализованы к одинаковой амплитуде. Архив представлен файлами для всех уровней. В наушниках обычного и посредственного качества разница должна быть слышна до уровней 10-11. Попробуйте сравнивать файлы от разных плееров на одинаковой амплитуде. Далее разница может упереться в возможности вашего источника – если он добавляет искажений, то файлы от Neutron потеряют исходную прозрачность звучания.

На аппаратуре, где воспроизведение прямое, без дополнительных искажений от системы разница есть для всех уровней.

Разница амплитуд относительно максимума для ступеней уровней регулятора выглядит так:
Шаг-ступень / Уровень в Neutron в % / Уровень по шкале dBFS / Шаг изменения в дБ

15 / 100 / 0 / 0
14 / 93 / -2,97 / 2,97
13 / 87 /-5,95 / 2,98
12 / 80 / -8,5 / 2,55
11 / 73 / -11,47 / 2,97
10 / 67 /-14,45 / 2,98
9 / 60 / -17 / 2,55
8 / 53 / -21,02 / 4,02
7 / 47 / -25,05 / 4,03
6 / 40 /-28,52 / 3,47
5 / 33 /-32,55 / 4,03
4 / 27 / -36,61 / 4,06
3 / 20 /-40,09 / 3,48
2 / 13 / -46,67 / 6,58
1 / 7 / -53,65 / 6,98

Значения в процентах в Neutron не имеют никакой прямой связи с децибелами, эти цифры условны. Возможно, в других устройствах, отличных от Xiaomi Redmi Note 4x, распределение амплитуд другое.

При понижении более, чем на 48 дБ при корректном понижении амплитуды исходный звуковой поток станет немного шумнее, а при некорректном, добавятся искажения и качество снизится. В целом, если данные обрабатываются в регуляторе громкости в 24 бит и этот поток поступает на ЦАП, то без потери качества есть запас по регулировке до 48 дБ (до 1-ой ступени).

При передаче данных в 32 бит запас по регулировке громкости без искажений составляет 96 дБ.

Текущая серия Aqstic обладает характеристиками в виде динамического диапазона в 130 дБ и уровнем искажений до -109 дБ. При беглом поиске не удалось найти упоминание, какой ЦАП использует Xiaomi Redmi Note 4x, но есть вероятность, что что-то из серии Qualcomm Aqstic Audio Codec, которые рекомендованы для используемого Qualcomm Snapdragon 625. По отношению к Redmi Note 4x немного смущает, что полноценно вывести звуковой поток выше 48 кГц не удалось. Младший WCD9335 принимает поток до 192kHz/24bit, старший WCD9341 до 384kHz/32bit и DSD128. По итогам тестирования можно уверенно сказать, что есть полноценная поддержка 24 бит, а по уровню искажений этот ЦАП ничуть не хуже альтернативных современных ESS/AKM. Возможно, используется еще более ранняя версия кодека со схожими параметрами.

Возможно, у вас хороший смартфон с штатным фирменным плеером и таких проблем нет. После прослушивания демонстрационных записей, как только станет очевидно, что же именно надо услышать, попробуйте послушать уже свои треки в разных плеерах. А может и обратная ситуация – ЦАП от ESS/AKM, а звук как из «Android».

По умолчанию, микшер работает на максимально поддерживаемой частоте для ЦАП. Искажения в каждом смартфоне могут немного отличаться из-за разной фактической частоты дискретизации.

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

Либо вместо штатного ресемплера у смартфона может использоваться качественный и ресурсоемкий SRC, где смартфон не поддерживает прямое воспроизведение в 44,1 кГц, но при
этом очень качественно конвертирует в 48/96/192 кГц, как это делает к примеру Onkyo Granbeat DP-CMX1.

Пути решения проблем с искажениями

Использование специального плеера

Использование плеера, который поддерживает вывод звука в обход микшера. Решение на первый взгляд простое, но не всегда рабочее. Дело в том, что плееров с такой поддержкой – считанные единицы и работают по принципу «удачи». Более того, плеер может показывать в настройках, что вывод звука прямой, но по факту – кривой. Так же не исключены и «подлянки» от очередных обновлений системы.

Счастье длилось месяц-два, т.к. Из собственного опыта, путем тестов практически всех плееров год назад удалось выявить единственный плеер для Xiaomi Readmi Note 4x в виде PowerAmp версии v704 с экспериментальным выводом звука Hi-Rez. Почти год не было ни одного плеера с прямым выводом для Android 7. после ОС обновилась с 6-й до 7-й версии и вывод в Hi-Rez перестал работать. Буквально на днях вышла версия v709, и она, за исключением некоторых багов работает как надо. Потом появилась версия v790, из которой звуковой поток выходил не выше, чем в 16 бит и приложение останавливало звук, если экран гас.

Но так как Neutron не утруждает себя публикацией версий, то когда именно появилась действительно рабочая версия – сложно сказать. При этом чуть ранее обновился Neutron, у которого аналогично добавилась поддержка прямого вывода. Ранее Neutron мог корректно выдавать звуковой поток только по USB.

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

Этот плеер адекватный результат для внутреннего кодека показывает только в Android 5. В пример часто приводят foobar2000. И при этом только для 16 бит.

Например тестирование в лаборатории RAA смартфонов LeEco Cool changer s1 и Xiaomi Redmi Note 4 как раз попало в промежуток отсутствия подходящих плееров под Android 7 и результаты хорошими назвать нельзя.

Использование внешнего ЦАП с усилителем

Это хороший вариант, где можно и ЦАП «прокачать» и усилитель. Но, при подключении такого устройства микшер Android аналогично будет повышать частоту дискретизации с проблемами в звучании.

На экране xDuoo XD-05 мы видим 192 кГц. Здесь в примере воспроизведение из Android Google Player с исходным файлом с частотой дискретизации 44,1 кГц. Экран с отображением частоты – удобная вещь.

Из практики – каждый плеер работает только с определенным перечнем устройств и под каждое устройство надо подбирать отдельный плеер. Для внешних ЦАП надо подбирать отдельный плеер со своей библиотекой драйверов. Благо, хоть они и платные, но относительно недорогие и обычно есть пробные версии.

В примере при воспроизведении через Neutron на экране Pro-Ject Pre Box S2 Digital показана исходная частота 44. При воспроизведении из более подходящего плеера частота воспроизведения во внешнем ЦАП будет совпадать с частотой исходного файла. 1 кГц.

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

А вот вариант «бутерброда» из смартфона и ЦАП в эксплуатации не слишком удобен. По сути, использование внешнего ЦАП для смартфона желательно лишь наличием чуть большего количества возможных плееров с более оперативным обновлением под новые системы.

Если для определенного смартфона все программные плееры не поддерживают прямого вывода звука для USB-ЦАП, то все не так плохо, подойдет рекомендация для случая с использованием обычного усилителя.

Отдельный усилитель

Если смартфон использует хороший ЦАП, то можно максимально снизить влияние искажений от микшера системы.

И попутно мониторить информацию по обновлениям версия программных плееров. Для этого надо выставить уровень громкости на максимум и уже далее регулировать громкость в самом усилителе.

Альтернативный вариант без усилителя — использовать наушники с аналоговым регулятором громкости, вроде Sennheiser CX 980.

ЦАП

Хотя именно ЦАП обычно уделяется наибольшее внимание в рекламных проспектах, на деле его вклад в общее звучание самый минимальный. Дело в том, что его качество сильно зависит от реализации, где хороший результат обычно достигается в больших габаритах с существенным энергопотреблением.

Звук может быть хороший в рамках смартфона, но все остальные участки цепочки на практике более критичны.

Усилитель

Если получится вывести звук напрямую в ЦАП, то именно этот участок будет вторым по значению.

Если напряжение будет низкое, то усилитель будет тихий и можно будет использовать только внутриканальные высокочувствительные наушники. От того, какое напряжение может выдать усилитель, будет зависеть конечный уровень громкости устройства. Это чревато хорошей слышимостью фонового шума (как в треках с ступенями громкости ниже 5-той). Если амплитуда напряжения будет наоборот высока – то смартфон вероятно «раскачает» полноразмерные наушники, но при подключении внутриканальных наушников потребуется сильно снижать уровень громкости. Если же плеер прямого вывода звука не имеет, то к шуму еще добавятся и дополнительные искажения.

Ток может быть ограничен для обеспечения долгой работы устройства. Помимо напряжения важно и значение отдаваемого тока усилителем. При достижении определенного уровня громкости при подключенных наушниках звучание может стать резким или хриплым.

Для этого сделан соответствующий сервис сравнения в RAA. Важно подбирать оптимальные наушники под исходный усилитель усилитель в смартфоне.

Наушники

Наушники должны быть совместимы с усилителем. Должно быть оптимальное сочетание чувствительности и сопротивления (импеданса) с напряжением и током усилителя. Должен быть запас по регулировке громкости как вверх, так и вниз. Совместимость в данном случае сопоставима с выбором «шестеренок» в коробке передач автомобиля для обеспечения оптимальной скорости. Качество наушников безусловно важно, но оно не заменяет согласование с усилителем.

О согласовании наушников и усилителей можно прочитать в отдельном материале — Рекомендуемое сопротивление наушников для усилителя

Плееры и смартфоны

В лаборатории RAA в завершающей стадии методика тестирования программных плееров для смартфонов и Hi-Fi плееров на Android. Это позволит делать групповые тесты плееров за относительно короткое время и давать точную информацию по поддержке прямого выхода звука и настройкам плееров для штатного ЦАП/кодека и вывода по USB. Голые цифры, без субъективного «показалось».

А у производителей – понимание, что такой интерес действительно есть. Дело только за интересом к этой теме у обычных пользователей.

Основной целью было показать наличие проблемы и общие решения проблем. В этом материале не было конкретики со списком плееров и их настроек под смартфоны.

Теги
Показать больше

Похожие статьи

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть