test adv
,

Смартфоны Pixel автоматически распознают музыку вокруг. Как это работает (почти без прослушки)

Функция «Сейчас исполняется» не зря остаётся эксклюзивом Google для смартфонов Pixel — она очень интересно работает «под капотом»

Начиная с Pixel 2 и Pixel 2 XL (с 2017 года), фирменные смартфоны Google комплектуются эксклюзивной функцией «Сейчас исполняется». Речь о фоновом распознавании музыки, которое слушает всё, что играет вокруг, и практически в реальном времени отображает название композиции. Использование уникальной фичи напоминает эксплуатацию сервиса Shazam и аналогов, но для получения результата её не нужно сначала запускать, а потом долго и нудно ожидать получения результата — в этом её главное преимущество перед конкурентами. Именно поэтому интересно разобрать, как функция работает «под капотом». Инженеры действительно постарались.

Сразу стоит отметить существование Ambient Music Mod — пересобранное приложение, которое добавит функцию «Сейчас исполняется» на смартфоны других производителей. Впрочем, прямо-таки рекомендовать его установку нельзя: во-первых, фишка всё равно не заработает полноценно на все 100%; во-вторых, быть уверенным, что в коде программы нет «лишних» строк также не приходится. В общем, на свои страх и риск.

Чем реализация «Сейчас исполняется» отличается от конкурентов

→ она заменяет Shazam, но работает абсолютно иначе

В своё время Shazam оказался настоящим открытием (не зря Apple выкупила сервис). Чтобы распознать композицию, которая играет где-то рядом, достаточно запустить приложение и нажать на заветную кнопку — «шазамнуть». Инженеры Google пошли ещё дальше и предоставили владельцам смартфонов Pixel доступ к названию композиции без дополнительных действий. Многие считают, что для этого устройство на чистом Android постоянно слушает всё, что происходит вокруг, но это не так. На практике, используя сигнальный процессор, девайс фильтрует посторонние звуки и использует «горячие» ключевые слова (пару строк из текста композиции, к примеру), которые берутся как поисковый запрос, в качестве триггера функции «Сейчас исполняется». По описанию всё проще некуда — на деле немного иначе.

Включить функцию «Сейчас исполняется» получится в разделе параметров звука смартфона Google Pixel | The Verge

▶︎ Факт: на работе сигнального процессора также завязана активация умного голосового «Ассистента» от Google. Кажется, смартфон постоянно слушает всё, что происходит вокруг, в надежде дождаться фразу «Привет, Google». Впрочем, так любое устройство разряжалось бы достаточно быстро, поэтому и используется сигнальный процессор, ожидающий ключевые слова.

Как функция «Сейчас исполняется» работает в смартфонах Pixel

→ алгоритм обработки не совсем похож на другие сервисы

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

Как только смартфон определит какой-либо трек, значок с нотой на экране блокировки будет заменён его названием | The Verge

На самом деле, если все условия соблюдены, записывается фрагмент трека, который играет прямо сейчас, продолжительностью около 8 секунд. Он превращается в так называемый цифровой отпечаток, пригодный для сравнения с базой данных. В отличие от того же Shazam, база данных для сравнения на смартфонах Pixel хранится локально. Собственно, поэтому функция «Сейчас исполняется» может использоваться даже без подключения к интернету, что выгодно отличает её от любых аналогов. Когда сравнение оказывается успешным, владелец фирменного смартфона Google видит название композиции и может нажать на него, чтобы получить любую дополнительную информацию.

Смартфоны Pixel автоматически распознают музыку вокруг. Как это работает (почти без прослушки)

С какой базой данных функция сравнивает проигрываемое

→ неужели в локальную базу данных можно уместить всё?!

После предыдущего пункта должен появиться закономерный вопрос по поводу возможности хранения огромной базы данных музыкальных композиций в локальном хранилище смартфона. Ведь, к примеру, в Apple Music сейчас больше 90 миллионов треков, а в Spotify точно не меньше 80 миллионов. Shazam хранит онлайн более 15 миллионов треков для сравнения после нажатия заветной кнопки. В последнем случае речь не о конкретных файлах, а лишь о данных для поиска цифровых отпечатков. Впрочем, проблему это не решает — если хранить всё это офлайн, то в хранилище смартфона будет дополнительно занято не меньше нескольких гигабайт.

Важной особенностью функции «Сейчас исполняется» стал архив всех треков, которые были распознаны за последнее время | The Verge

Google использует абсолютно другой достаточно «хитрый» принцип. В локальной библиотеке смартфона хранится ограниченное количество композиций, список которых адаптируется под текущее местоположение владельца — по большому счёту, необходимая база данных просто «кешируется». К примеру, в случае США на устройстве находится список для определения до 70 тысяч композиций — он занимает всего 250 мегабайт. Перечень регулярно обновляется, когда гаджет подключается к Wi-Fi, и перезаписывается при глобальном изменении геолокации. Этого оказывается более чем достаточно для корректного использования функции «Сейчас исполняется» — по крайней мере, нареканий на недостаточный объём треков в сети замечено не было.

▶︎ Факт: во время запуска функции «Сейчас исполняется» в 2017 году в локальной базе смартфонов Pixel вообще хранилось около 10 тысяч музыкальных композиций. Впрочем, как показывает практика, тогда и такого количества оказывалось более чем достаточно, чтобы поразить владельцев фирменных гаджетов Google, техножурналистов и просто интересующихся энтузиастов.

Почему перенести функцию на другие гаджеты очень сложно

→ полноценно использовать её получится только на Pixel

Для использования функции «Сейчас исполняется» активно используется сигнальный процессор смартфонов Pixel. Никак иначе в Google не сумели реализовать процесс автоматического определения музыкальных композиций офлайн с минимальными затратами энергии. Поэтому перенести её на любое другое устройство под управлением Android очень сложно — каждый девайс использует своё аппаратное обеспечение, и многие «железные» решения вообще не подходят для использования описанной возможности. Именно поэтому разработчики того же Ambient Music Mod (переделанного движка фонового распознавания треков для сторонних устройств на Android) подчёркивают, что не могут гарантировать даже просто запуск функции на Android-смартфонах других производителей. О полноценной работе даже речи нет.


Последнее изменение:
 
Letifer562gmail
Letifer562gmail, 31 января 2023, 19:39   #   (...)
что думаешь о pixel 6a? )слишком различные отзывы…
Ответить
ahma_37
ahma_37, 2 февраля 2023, 07:41   #   (...)
Бери, не пожалеешь! Очень крутой смартфон. Экран так же хорош, не обращай внимания, что у него 60 герц всего. Зато система, звук, вибро и конечно же камера на высочайшем уровне.
Ответить
Letifer562gmail
Letifer562gmail, 2 февраля 2023, 08:40   #   (...)
спасибо за совет!
Ответить

Добавить комментарий
Если нужно ответить кому-то конкретно,
лучше нажать на «Ответить» под его комментарием