Инженерно-технологический университет Джайпи, Гуна

Отдел компьютерных наук и инженерии

Курсовая работа

On

ПРИЛОЖЕНИЕ ШАЗАМ

-Ариан Джейн 191b071

РЕЗЮМЕ

Shazam — это приложение, которое может идентифицировать музыку, фильмы, рекламу и телепередачи на основе воспроизведенного короткого фрагмента и с помощью микрофона на устройстве. Shazam идентифицирует песни с помощью звукового отпечатка на основе частотно-временного графика, называемого спектрограммой. Он использует встроенный микрофон смартфона или компьютера, чтобы собрать краткий образец воспроизводимого звука. Shazam хранит каталог звуковых отпечатков в базе данных. Пользователь отмечает песню на 10 секунд, и приложение создает звуковой отпечаток. Shazam работает, анализируя захваченный звук и ища совпадение на основе акустического отпечатка пальца в базе данных миллионов песен. Если он находит совпадение, он отправляет пользователю такую ​​информацию, как исполнитель, название песни и альбом.

ВВЕДЕНИЕ

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

Каждый аудиофайл подвергается «отпечатку пальца» — процессу, в ходе которого извлекаются воспроизводимые хэш-токены. И «база данных», и «образцы» аудиофайлов подвергаются одинаковому анализу. Отпечатки пальцев неизвестного образца сопоставляются с большим набором отпечатков пальцев, полученных из музыкальной базы данных.

  • Как Shazam находит песню?

Подводя итог процессу, взгляните на следующие шаги, чтобы узнать, как работает приложение Shazam.

  1. Пользователь записывает песню в приложении.

2. Затем Shazam создает звуковой отпечаток/спектрограмму из предоставленной пользователем записи.

3. Shazam ищет совпадения звуковых отпечатков пальцев в своей базе данных приложения.

4. Наконец-то теперь вы можете наслаждаться песней, если она есть в базе данных.

Таким образом, это было все о том, как приложение на самом деле обрабатывает, чтобы найти и распознать записанный пользователем звук из своей базы данных.

  • Как найти совпадение?

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

При сопоставлении с точечной диаграммой, где ось Y представляет время появления хеша в записи пользователя Shazam, а ось X представляет время появления хеша в аудиофайле из базы данных Shazam, совпадающие хэши будут формироваться диагональная линия (рис. 3А). На гистограмме тех же данных, где ось Y представляет время смещения, а ось X представляет количество совпадений, будет большой всплеск в правильное время смещения (рис. 3B).

  • Основные аспекты Shazam-
  • преобразование Фурье

Преобразование Фурье (FT) — это формула, которая преобразует звуковую волну в график частот, из которых состоит звук, и их интенсивности. Если мы посмотрим на гифку ниже, мы увидим цифровой звук (состоящий из красных ступенчатых волн) и аналоговый звук, состоящий из нескольких чистых тонов (синие извилистые волны), преобразованные в график.

источник: википедия

Однако есть несколько проблем: 1. FT занимает очень много времени, чтобы преобразовать песню в график, и 2. FT дает нам только частоты и их интенсивности (амплитуды) без какой-либо информации о времени. Другими словами, мы не знаем, когда в песне появляются эти частоты.

Проблема скорости может быть легко решена с помощью быстрого преобразования Фурье (FTT), которое использует процесс субдискретизации для сохранения информации о частоте за счет других данных. Однако ни FT, ни FFT не могут решить проблему неполной визуализации звука. Чтобы исправить это, Shazam использует специальный тип графика, называемый спектрограммой.

  • Алгоритм спектрограммы и звукового отпечатка

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

источник: компьютерщик

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

Способности человеческого слуха помогают фильтровать большой объем данных. Человеческие уши могут регистрировать звуки частотой от 20 Гц до 20 000 Гц. Однако на практике этот диапазон оказывается еще более узким (вы можете проверить свои слуховые способности здесь) и уменьшается с возрастом. Кроме того, человеческое восприятие громкости зависит от частоты. Чем выше частота, тем громче звук. Все это позволяет алгоритму ориентироваться только на пиковые точки на графике, помеченные как более энергоемкие. Это отфильтровывает все ненужные данные и снижает влияние фонового шума на аудиоидентификацию.

После создания звукового отпечатка он сохраняется в базе данных в виде хеш-таблицы. Ключами в этой таблице являются частоты: «пиковая интенсивность» плюс вторая «точка привязки». Этот метод акустического снятия отпечатков пальцев позволяет таким приложениям, как Shazam, различать две тесно связанные обложки одной и той же песни.

Созданный звуковой отпечаток сохраняется в базе данных. В базе данных Shazam более 11 миллионов песен.

Теперь, когда мы все это знаем, давайте соберем все вместе:

Шаг 1: песня, которую мы хотим определить, является аналоговой волной.

Шаг 2: он записывается микрофоном нашего телефона и преобразуется в цифровой формат.

Шаг 3: цифровое аудио преобразуется в частотную область с помощью преобразования Фурье.

Шаг 4: с помощью спектрограммы формируется уникальный звуковой отпечаток

Шаг 5: отпечаток пальца сравнивается со всеми образцами в базе данных

Шаг 6: если отпечаток пальца совпадает с каким-либо образцом в базе данных, он идентифицируется

Шаг 7: пользователь получает обратную информацию о песне

Производительность

Алгоритм хорошо работает при значительных уровнях шума и даже нелинейных искажениях. Он может правильно идентифицировать музыку при наличии голосов, шума транспорта, прерываний и даже другой музыки. Чтобы дать представление о силе этого метода, из сильно поврежденной 15-секундной выборки можно определить статистически значимое совпадение, при этом только около 1–2% сгенерированных хеш-токенов фактически выживают и вносят вклад в смещенный кластер. Свойство метода гистограммы диаграммы рассеяния заключается в том, что разрывы не имеют значения, что обеспечивает иммунитет к выпадениям и маскировке из-за помех. Один несколько удивительный результат заключается в том, что даже с большой базой данных мы можем правильно идентифицировать каждый из нескольких треков, смешанных вместе, включая несколько версий одного и того же произведения, свойство, которое мы называем «прозрачностью». На рисунке 4 показан результат выполнения 250 образцов распознавания различной длины и уровня шума в тестовой базе данных из 10 000 треков, состоящих из популярной музыки. Образец шума был записан в шумном пабе для имитации «реальных» условий. Из середины каждого тестового трека были взяты аудиофрагменты продолжительностью 15, 10 и 5 секунд, каждый из которых был взят из тестовой базы данных. Для каждого тестового отрывка относительная мощность шума нормировалась на желаемое отношение сигнал/шум, а затем линейно добавлялась к выборке. Мы видим, что скорость распознавания падает. Рисунок 5. Скорость распознавания — аддитивный шум + компрессия GSM 0 3 6 9 12 15 Отношение сигнал/шум (дБ) 15 с GSM 10 с GSM 5 с GSM до 50 % для 15, 10 и 5-секундных выборок при приблизительно -9, -6 и -3 дБ SNR соответственно Рисунок 5 показан тот же анализ, за ​​исключением того, что полученная смесь музыки и шума была дополнительно подвергнута сжатию GSM 6.10, а затем повторно преобразована в звук PCM. В этом случае 50-процентный уровень распознавания для 15-, 10- и 5-секундных отсчетов достигается примерно при -3, 0 и +4 дБ SNR. Сэмплирование и обработка звука проводились с использованием 8 кГц, моно, 16-битных сэмплов.

Для базы данных около 20 тысяч треков, реализованной на ПК, время поиска составляет порядка 5–500 миллисекунд в зависимости от настроек параметров и приложения. Сервис может найти совпадающую дорожку для сильно поврежденного аудиосэмпла за несколько сотен миллисекунд времени основного поиска. Со звуком «радио-качества» мы можем найти совпадение менее чем за 10 миллисекунд, а вероятная цель оптимизации — до 1 миллисекунды на запрос.

Алгоритм был разработан специально для целевого распознавания звуковых файлов, которые уже присутствуют в базе данных. Ожидается, что он не будет распространяться на живые записи. Тем не менее, мы случайно обнаружили несколько артистов на концертах, которые, по-видимому, либо имеют чрезвычайно точный и воспроизводимый ритм (с точностью до миллисекунды), либо более правдоподобно синхронизируют губы. Алгоритм, наоборот, очень чувствителен к тому, какая конкретная версия трека была выбрана. Учитывая множество различных исполнений одной и той же песни артистом, алгоритм может выбрать правильное, даже если они практически неразличимы человеческим ухом. Время от времени мы получаем сообщения о ложных срабатываниях. Часто мы обнаруживаем, что алгоритм на самом деле не был неправильным, поскольку он уловил пример «выборки» или плагиата. Как упоминалось выше, существует компромисс между истинными попаданиями и ложными срабатываниями, и, таким образом, максимально допустимый процент ложных срабатываний является параметром проектирования, который выбирается в соответствии с приложением в середине каждой тестовой дорожки, каждая из которых была взята из теста. база данных.