Как Shazam узнает песню за 5 секунд в шумном кафе — и почему он не слушает мелодию

Появилась интерактивная демонстрация процесса

Как Shazam узнает песню за 5 секунд в шумном кафе — и почему он не слушает мелодию

Разработчик Шри Кхалпада создал интерактивную демонстрацию. Она наглядно объясняет, как Shazam распознает музыку за несколько секунд в шумном помещении. 

Оказывается, приложение не слушает мелодию и не распознает слова — механизм куда хитрее.

Звук превращается в картинку

Микрофон улавливает звук и преобразует его в цифровой сигнал. Затем телефон применяет быстрое преобразование Фурье — математическую операцию, которая разбивает каждый отрезок звука на составляющие частоты. 

Из таких срезов складывается спектрограмма: трехмерная «картинка», где по горизонтали идет время, по вертикали — частота, а яркость точки означает громкость.

Выбрасываем почти все

Алгоритм оставляет только самые яркие пики — частоты, которые в каждый момент звучат громче всего. 

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

И именно поэтому Shazam плохо распознает напетую мелодию: голос создает другие пики.

Хэши и мгновенный поиск

Алгоритм соединяет соседние пики попарно и из каждой пары вычисляет короткий код — хэш — на основе двух частот и промежутка времени между ними. 

Одна трехминутная песня порождает тысячи таких хэшей. 

В базе данных они хранятся как адреса, а не по песням — это позволяет искать одинаково быстро среди сотен миллионов треков. 

Финальная проверка — временные промежутки между хэшами в клипе и в базе должны совпасть. Если совпадений достаточно — песня найдена за доли секунды.

Соцсети: Юлия Зубарева
Вам может быть интересно
easy