Приложения для распознавания музыки (Shazam, SoundHound) и Content ID, который ищет пиратскую музыку на YouTube, работают по одному принципу.
Как это работает:
– Пользователь даёт приложению послушать играющую музыку.
– Алгоритм преобразует звук с микрофона в спектрограмму.
– Затем разбивает спектрограмму на одинаковые отрезки по доле секунды.
– На каждом отрезке находит только самые громкие звуки и отмечает их положение (чёрные точки на иллюстрации к посту). Таким образом, одновременный крик и удар барабана оставят отметки в разных частях спектра.
– Записывает координаты самых громких звуков в виде текстовой строки — хэша.
– Ищет похожие хэши в своей базе с миллионами предварительно проанализированных песен.
– Находит совпадение и показывает название песни и исполнителя.
Таким образом, приложение даже не отправляет запись звука на сервер, а всё преобразование происходит в телефоне пользователя.
Благодаря анализу только громких звуков, алгоритму не мешает фоновый шум и он прекрасно справляется с анализом музыки по радио.
Кстати, в начале 2000-х Шазам работал через звонки и СМС! Пользователь звонил на номер и Шазам слушал музыку по телефону. После анализа ответ с названием песни приходил по СМС.