Marina Mel'nikova
март 2015.
50854

По какому принципу работает приложение Shazam?

Ответить
Ответить
Комментировать
1
Подписаться
52
6 ответов
Поделиться

У Shazam есть доступ практически ко всем композициям мира. Каждая песня представлена в виде 2D-спектрограммы, которую компьютер анализирует и составляет так называемые «аудио-отпечатки» (acoustic fingerprints) конкретной композиции. Эти отпечатки являются практически индивидуальными для каждой песни (поэтому их называют отпечатками — по аналогии с отпечатками пальцев). У Shazam составлена огрооомная база этих отпечатков.

Итак:

1) С помощью приложения мы записали 10 секундный отрывок композиции.

2) Телефон анализирует спектрограмму аудиозаписи и отправляет из на сервер с базой отпечатков.

3) Если найдено совпадение, сервер сообщает пользователю подробную информацию о песне.

301

Все равно не понятно. Что за отпечатки, откуда берутся, как создаются.

+2
Ответить

То есть эти отпечатки - что-то вроде спектров в ИК-спектроскопии: для каждого вещества свой спектр, так и для каждой композиции свой отпечаток? Только вот что вообще он из себя представляет?

+1
Ответить

Никита, программа переводит звук в понятный для себя график, диаграмму (если так можно сказать), который быстрее и проще сравнить с другими диаграммами из базы и найти совпадения. Мне кажется, это чем-то похоже на эквалайзер в плеерах. Такой формат проще передать и проще хранить. 

+2
Ответить
Ещё 4 комментария

https://www.youtube.com/watch?v=M9xMuPWAZW8

вот так выглядит эта самая спектрограмма. На видео DJ Aphex "рисует" спектрограммой песни картинки. т.е. получается что в данном примере картинка закодирована ЗВУКОМ ( если уж совсем упростить)

+1
Ответить

Но на это же уходят считанные секунды. Как программа соотносит записанный звук и миллионы композиций ТАК быстро?

+2
Ответить

Магические алгоритмы поиска

0
Ответить

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

0
Ответить
Прокомментировать

Shazam превращает 10 секундный отрывок аудио в «отпечаток», основанный на спектрограммах (частотно-временной график). Он отправляет этот отпечаток на сервер, где уже имеется база таких отпечатков. Сравнивает их и находит нужную песню.

66
Прокомментировать

Товарищи попытались нас надурить своей технической белибердой, но мы-то с вами все прекрасно знаем, что, нажимая кнопку в приложении, пользователь Shazam связывается с мобильным аналитическим гном-центром, где трудятся тысячи гномов-меломанов, которые готовы помочь каждому узнать автора и название "вот этой крутой песенки".

34

Я думаю все таки это Величественная расса Эльфов. Потому что гномы любят музыку менее, чем Эльфы) 

0
Ответить
Прокомментировать

Как уже было сказано, создается своеобразный "отпечаток" звуковой композиции. Представляет собой он трехмерный график зависимости* интенсивности звука от его частоты и от времени. То есть в каждый момент времени определяется интенсивность звука каждой из возможных частот. (Интенсивность звука - количество звуковой энергии, проходящей через единичный кусочек площади в пространстве, расположенный перпендикулярно направлению распространения энергии, за единичное время; а если объяснять по-простому, то такая характеристика, как громкость является субъективным восприятием интенсивности). Разумеется, на практике значения обеих характеристик наносятся на график через малые равные промежутки времени.

Теперь в каждый момент времени можно найти частоту, обладающую наибольшей интенсивностью (частоту пика интенсивности). Соответственно составляется таблица: времени, прошедшему от начала композиции, ставится в соответствие определенная частота.

(На самом деле каждому моменту времени соответствуют две частоты: частота пика интенсивности и еще частота в некоторой опорной точке)

Это проделывается для огромного количества звуковых дорожек, составляется база данных. Приложение на вашем устройстве создает аналогичный отпечаток небольшого фрагмента песни, название которой вы хотите узнать. Затем программа ищет соответствие (цель - найти композицию, в которой за какое-то время картина изменения частот пика интенсивности максимально похожа на ту, что была получена на вашем отпечатке).

Стоит добавить, что получающийся график в идеале должен бы быть гладким, но обычно к отпечатку добавляется еще отпечаток окружающих шумов. Если я верно понимаю, то иногда они представляют собой очень резкие скачки частот и в таких случаях автоматически игнорируются при создании таблицы.

--------------------

* Разумеется, устройство не строит для себя график, а сразу анализирует данные, но подобная визуализация помогает понять принцип работы программы.

8
Прокомментировать

В каждом устройстве живут фиксики, как всем известно. В телефонах, где установлен Shazam живут фиксики-меломаны, они слушают музыку и говорят что это за песня. 

0
Прокомментировать
Читать ещё 1 ответ
Ответить