Как Shazam распознаёт музыку

Приложения для распознавания музыки (Shazam, SoundHound) и Content ID, который ищет пиратскую музыку на YouTube, работают по одному принципу.

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

Таким образом, приложение даже не отправляет запись звука на сервер, а всё преобразование происходит в телефоне пользователя.

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

Кстати, в начале 2000-х Шазам работал через звонки и СМС! Пользователь звонил на номер и Шазам слушал музыку по телефону. После анализа ответ с названием песни приходил по СМС.