Найти тему

Как работает Shazam?

Оглавление

Понравилась песня в кафе или сериале, достаёшь смартфон запускаешь Shazam и всё готово. Добавляешь в плейлист и слушаешь.

Но как это возможно? Сразу в голове — искусственный интеллект! Давайте разберём как это получается.

Что такое звук.

Вы точно видели изображение звуковой волны в учебнике физики:

-2

Но в реальности звук выглядит так:

-3

Частота — это количество волн за секунду. На синем графике 8 Гц частота или 8 волн за секунду. А на втором — отсутствуют воаторчющиеся узоры. Почему?

Ни один инструмент не создаёт только одну звуковую волну на одной частоте.

Чем больше разных частот будет создавать инструмент, тем сложнее окажется график волн.

Таким образом реальная звуковая волна — это результат наложения сотен волн различной частоты.

Как работает Shazam.

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

Анализируем частоту

Вместо этого

-4

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

После этого у смартфона появляется спектограмма

-5

То есть мы видим какие частоты и насколько громкая звучат они. А громкость мы отображается цветом, так как у нас только две оси: Y — частота, X — время.

На первом шаге смартфон Переводит записанный фрагмент мелодии в спектограмму. Но в ней есть посторонние шумы — разговоры, шум улицы, кафе и прочее.

Создаём карту созвездий

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

Сколько точек отмечается Shazam сложно сказать, но мы получаем

-6

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

Мы сократили размер композиции и убрали лишние шумы.

Такую карту приложение создаёт на смартфон до отправки на сервер Shazam.

В приложении, а точнее на сервере не хранится звук, а хранится именно карта созвездий.

Убиваем время

Человек не сможет каждый раз начинать запись фрагмента с начала. Он может записать маленький кусочек с середины композиции или ближе к концу. И вместо вот этого

-7

У нас получается вот это

-8

Что же делать?

База хранит информацию о том, как связаны конкретные частоты между собой.

То есть сервер ищет есть ли у него, в базе мелодия, в которой прозвучала частота 515 Гц, а затем ровно через 3 секунды был звук на 1600 Гц. А Shazam выдаст ту композицию, где совпадений было больше всего.