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

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

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

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

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

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