Перейти до основного контенту

Як працює Шазам: алгоритм розпізнавання музики в деталях

7 хв читання
576 переглядів

Шазам-одне з найпопулярніших додатків для розпізнавання музики. Це дозволяє користувачам знати назву та виконавця пісні,просто записавши короткий фрагмент мелодії. Але як же працює цей унікальний алгоритм? Давайте розберемося.

В основі роботи Шазам лежить технологія, яка називається спектральним аналізом. Цей алгоритм розбиває аудіо сигнал на маленькі фрагменти і порівнює їх спектри з базою даних відомих пісень. При цьому, Шазам не використовує всю пісню як ідентифікатор, а тільки невеликий уривок, зазвичай близько 20 секунд.

Ключовим моментом роботи Шазам є перехід від тимчасового представлення звуку до спектрального. Алгоритм створює спектрограму аудіозапису, що дозволяє аналізувати її частотні і часові характеристики. Потім Шазам виробляє перетворення Фур'є для кожного фрагмента і витягує унікальний набір частот, який називається "відбитком".

Цікаво, що Шазам навмисно стійкий до зміни висоти і швидкості аудіо. Це означає, що навіть якщо ви записуєте пісню трохи неправильно або змінюєте її темп, Шазам все одно зможе знайти збіги. Він досягає цього за рахунок математичної техніки, званої інваріантним щодо часу детектуванням.

Після створення відбитків Шазам порівнює їх із базою даних, що містить мільйони пісень. Це відбувається дуже швидко завдяки унікальній структурі індексів, яка дозволяє швидко і ефективно шукати збіги. Якщо відповідність знайдено, Користувачеві виводиться інформація про трек, включаючи назву, виконавця і альбом.

Що таке Шазам і як він працює

Робота Шазам заснована на алгоритмі, який аналізує унікальні характеристики звукової доріжки і порівнює їх з базою даних музичних записів. Цей процес складається з декількох етапів:

1. Запис аудіоданих. Додаток записує кілька секунд аудіо, в той час як користувач тримає пристрій поруч з джерелом звуку.

2. Перетворення в аудиоотпечаток. Звукова доріжка перетворюється в унікальний аудіовідпечаток, який включає в себе інформацію про спектральному змісті звуку, темпі, тембрі та інших характеристиках.

3. Порівняння аудіовідпечатка з базою даних. Аудиоотпечаток порівнюється з попередньо підготовленою базою даних зберігаються аудиоотпечатков. У базі даних міститься інформація про мільйони різних музичних треків.

4. Виведення результатів. При успішному зіставленні аудіовідпечатка з одним з треків в базі даних, додаток виводить інформацію про назву пісні, виконавця і посилання на додаткову інформацію або можливість прослухати або купити пісню.

Шазам має широке застосування, не тільки в музичній індустрії, але і в сферах маркетингу і реклами, де його алгоритм допомагає ідентифікувати звуки з теле - і радіореклами, а також в кіно і телебаченні.

Алгоритм розпізнавання музики

Алгоритм розпізнавання музики, що застосовується в Шазам, заснований на безлічі кроків, які виробляються для ідентифікації конкретної пісні. Ось основні етапи алгоритму:

  1. Запис і сегментація звуку: Шазам починає роботу, коли користувач записує невеликий фрагмент музики (зазвичай близько 10-15 секунд). Цей фрагмент потім розбивається на невеликі сегменти тривалістю близько 0,1 секунди.
  2. Перетворення звуку в спектрограму: кожен сегмент звуку перетворюється з часової області в частотну за допомогою перетворення Фур'є. Це дозволяє отримати спектрограму, яка показує різні частоти, присутні в звуці в кожен момент часу.
  3. Створення унікального відбитка звуку: для кожного сегмента спектрограми обчислюється хеш-відбиток, який є унікальним ідентифікатором цього сегмента. Хеш-відбитки потім зберігаються в базу даних Шазам для подальшого порівняння.
  4. Порівняння відбитків: коли користувач записує новий фрагмент музики, Шазам застосовує ті самі кроки до цього фрагмента і порівнює його хеш-відбитки з тими, що вже є в базі даних. Якщо є збіг, то Шазам повертає інформацію про знайдену пісню.

Окрім основних етапів, Шазам також використовує додаткові методи, такі як стиснення даних та зберігання хеш-відбитків у деревоподібних структурах, щоб прискорити процес розпізнавання музики.

Аналіз звукових хвиль

Шазам використовує особливий алгоритм, щоб аналізувати звукові хвилі пісні і визначати її ідентифікатор.

Коли користувач записує фрагмент пісні в додатку Шазам, алгоритм починає аналізувати акустичні характеристики цього фрагмента. Цей процес складається з декількох кроків:

  1. Шазам розбиває аудіозапис на невеликі фрагменти, які називаються "акустичними відбитками". Кожен відбиток містить інформацію про спектр звукових частот і їх інтенсивності в даному фрагменті.
  2. Далі, алгоритм перетворює ці дані в унікальний код, який називається "бінарним хешем". Цей хеш являє собою спрощену версію акустичного відбитка.
  3. Отримані бінарні хеші потім порівнюються з базою даних акустичних відбитків, яка містить мільйони записів пісень. Пошук здійснюється подібним чином до пошуку в звичайній базі даних за допомогою алгоритму, відомого як "пошук найближчого сусіда".
  4. Таким чином, Шазам знаходить відповідний акустичний відбиток у базі даних і повертає Користувачеві інформацію про знайдену пісню.

Такий алгоритм дозволяє Шазаму бути швидким і точним в розпізнаванні музики навіть при наявності шуму або інших спотворень звуку.

Процес навчання алгоритму

Для створення зразків використовується набір тренувальних даних, що включає різноманітні музичні жанри, виконавців і аудіофайли різної якості. Ці дані допомагають алгоритму навчитися розпізнавати різні характеристики звуків, такі як мелодія, ритм і темп.

Під час навчання алгоритм аналізує тренувальні дані та шукає унікальні підписи, які можна використовувати для ідентифікації музичних треків. Він також вчиться розрізняти спільні риси між різними версіями однієї пісні, такі як ремікси або живі виступи. Це допомагає алгоритму бути більш стійким до змін в аудіофайлах, таких як різна гучність, накладення шумів або ефекти.

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