Як працює Shazam: магія розпізнавання музики за 3 секунди

Ви сидите в кафе, чуєте класну пісню, хапаєте телефон, відкриваєте Shazam — і за лічені секунди на екрані з'являється назва треку, виконавець, альбом і навіть текст пісні. Здається магією, правда?

Але як це можливо? Як додаток знаходить потрібну пісню серед 70+ мільйонів треків у базі даних за 2-3 секунди? Чому він не плутає схожі пісні? І чому працює навіть у гучному кафе з фоновими розмовами?

У цій статті я розкрию всю "магію" Shazam простою мовою — без складних формул, але з повним розумінням того, що відбувається під капотом. Обіцяю, буде цікаво навіть якщо ви не технічний спеціаліст!

Зміст статті:

Як НЕ працює Shazam: розвінчуємо міфи

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

❌ Міф 1: Shazam розпізнає слова пісні

Багато думають, що Shazam працює як Speech-to-Text — слухає слова, перетворює їх у текст і шукає в базі. Це не так! Shazam взагалі не розуміє, що співають у пісні. Він не знає жодного слова — навіть якщо це пісня вашою рідною мовою.

👉 Доказ: Shazam однаково добре розпізнає пісні англійською, українською, японською, навіть інструментальну музику без слів.

❌ Міф 2: Shazam порівнює всю пісню повністю

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

Реальність: Shazam записує лише 5-10 секунд аудіо і створює з нього крихітний "цифровий відбиток" розміром всього 100-200 байт.

❌ Міф 3: Shazam використовує штучний інтелект для "угадування"

Хоча AI зараз у тренді, базова технологія Shazam не використовує нейронні мережі чи машинне навчання. Це чиста математика та алгоритми обробки сигналів, розроблені ще в 1999 році — задовго до епохи AI.

✅ Як насправді працює Shazam

Shazam використовує технологію аудіо-фінгерпринтингу (audio fingerprinting) — створення унікального цифрового "відбитка" звуку, схожого на відбиток пальця людини.

Аналогія: Уявіть, що кожна пісня — це людина з унікальним відбитком пальця. Shazam не дивиться на всю людину (всю пісню), а просто сканує відбиток пальця (унікальний паттерн звуку) і шукає збіг у базі даних відбитків.

Аудіо-фінгерпринтинг: як створюється "відбиток" пісні

Найцікавіша частина технології Shazam — це те, як вона створює унікальний "відбиток" пісні. Давайте розберемо цей процес крок за кроком.

Крок 1: Перетворення звуку в спектрограму

Звук — це хвилі різної частоти та гучності. Людське вухо чує частоти від 20 Гц до 20,000 Гц (20 кГц). Shazam перетворює звукові хвилі у спектрограму — візуальне представлення звуку.

Що таке спектрограма? Уявіть картинку, де:

  • Горизонтальна вісь — час (секунди пісні)
  • Вертикальна вісь — частота звуку (низькі/високі ноти)
  • Яскравість точок — гучність на цій частоті

👉 Аналогія: Якщо нотна партитура показує, які ноти грати, то спектрограма — це "фотографія" того, як ці ноти насправді звучать.

Крок 2: Виділення "пікових точок" (Constellation Map)

Тепер найцікавіше: Shazam не зберігає всю спектрограму — це було б занадто багато даних. Замість цього він виділяє найяскравіші, найпомітніші точки — пікові частоти.

Уявіть, що спектрограма — це карта зоряного неба, де зірки різної яскравості. Shazam запам'ятовує тільки найяскравіші зірки та їх взаємне розташування — це називається constellation map (карта сузір'їв).

Що зберігається:

  • Частота пікової точки (наприклад, 440 Гц)
  • Час появи цієї точки в пісні (наприклад, на 1.23 секунді)
  • Відносне положення сусідніх пікових точок

Крок 3: Створення хешу

З цих пікових точок Shazam створює хеш — унікальний цифровий код. Це як перетворити довгу адресу "вулиця Хрещатик, будинок 22, квартира 5" на короткий поштовий індекс "01001".

Вражаючий факт: Пісня тривалістю 3 хвилини перетворюється у файл розміром всього 100-150 KB (це менше, ніж одна мініатюра зображення!).

Приклад:

ФорматРозмір файлу
MP3 (3 хвилини)~3-5 MB
WAV без стиснення~30 MB
Shazam фінгерпринт~0.1 MB (100 KB)

Висновок: Shazam стискає пісню в 300 разів, зберігаючи лише унікальний "генетичний код" звуку!

База даних Shazam: 70+ мільйонів пісень

Тепер, коли ми знаємо, як створюється відбиток пісні, виникає питання: як Shazam зберігає та шукає серед десятків мільйонів треків?

Скільки місця займає база даних?

Давайте порахуємо:

  • Одна пісня = ~100 KB фінгерпринту
  • 70 мільйонів пісень × 100 KB = 7,000,000 MB = 7 терабайт

7 TB — це багато, але це цілком керований обсяг для сучасних серверів. Для порівняння: Netflix зберігає петабайти відео (1 петабайт = 1000 терабайт).

Як швидко шукати серед мільйонів?

Ось де починається справжня магія. Якщо просто перебирати всі 70 мільйонів пісень одну за одною, це зайняло б години. Але Shazam знаходить збіг за 0.5-1 секунду. Як?

Секрет: Хеш-таблиці та індексація

Shazam не шукає по всій базі. Замість цього використовується хеш-таблиця — структура даних, яка дозволяє знаходити потрібний елемент майже миттєво.

👉 Аналогія з бібліотекою:

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

Спосіб Shazam: У бібліотеці є каталог. Ви знаєте перші 3 букви назви книги ("Кob"), відкриваєте каталог на букву "K", знаходите розділ "Ko", потім "Kob" — і бачите список з 10 книг. Перевіряєте тільки їх. Час: 30 секунд.

Як це працює технічно:

  1. З вашого 5-секундного запису створюються десятки хешів (від різних моментів запису)
  2. Кожен хеш використовується як "ключ" для пошуку в таблиці
  3. Shazam знаходить всі пісні, які мають хоча б один збіг з вашими хешами
  4. З 70 мільйонів залишається ~100-1000 кандидатів
  5. Система перевіряє, чи збігаються послідовності хешів (а не просто окремі хеші)
  6. Пісня з найбільшою кількістю послідовних збігів — це ваш результат!

Результат: Замість перевірки 70,000,000 пісень Shazam перевіряє лише 100-1000. Це як знайти голку в стозі сіна, але стіг розсортований за кольором!

📊 Вражаючі цифри Shazam:

  • 1 мільярд розпізнавань музики на місяць
  • 20 мільйонів нових пісень додається щороку
  • 95%+ точність розпізнавання
  • 225 мільйонів активних користувачів щомісяця
  • Працює в 15 країнах світу

Процес розпізнавання: покроково

Тепер, коли ми розуміємо технологію, давайте подивимося, що відбувається, коли ви натискаєте синю кнопку Shazam.

Крок 1: Ви натискаєте кнопку 🎵

Додаток активує мікрофон вашого телефону та починає записувати звук навколо вас.

Крок 2: Запис 5-10 секунд аудіо 🎤

Shazam не потребує всієї пісні — достатньо короткого фрагменту. Зазвичай додаток записує 5-10 секунд, але іноді навіть 3 секунди достатньо для ідентифікації.

Що записується: Не просто звук, а цифровий сигнал з частотою дискретизації 11,025 Гц (нижча, ніж CD-якість 44,100 Гц, але достатня для розпізнавання).

Крок 3: Створення фінгерпринту 🔍

Прямо на вашому телефоні відбувається:

  • Побудова спектрограми з записаного звуку
  • Виділення пікових частот
  • Створення constellation map
  • Генерація хешів

Час виконання: ~0.5-1 секунда на сучасному смартфоні.

Крок 4: Відправка на сервер та порівняння ☁️

Ваш телефон відправляє створені хеші (лише 1-2 KB даних!) на сервери Shazam. Там відбувається:

  1. Пошук хешів у гігантській хеш-таблиці
  2. Виявлення пісень-кандидатів
  3. Перевірка послідовності збігів
  4. Підрахунок "балів" для кожного кандидата

Час виконання: 0.3-0.5 секунди на серверах Shazam.

Крок 5: Результат на екрані ✅

Сервер повертає результат: назву пісні, виконавця, альбом, обкладинку, текст, посилання на стрімінгові сервіси.

Загальний час: від натискання кнопки до результату — 2-4 секунди.

Схема процесу:

Звук з мікрофону → Спектрограма → Пікові точки → Хеші → Сервер → Пошук у базі → Результат

Цікавий факт: 80% часу йде на запис аудіо та мережеву затримку. Сам пошук у базі займає менше 0.5 секунди!

Чому Shazam не помиляється навіть при шумі?

Одна з найвражаючих можливостей Shazam — розпізнавання музики в складних умовах: гучному кафе, на концерті, при поганій якості звуку. Як це можливо?

1. Фільтрація фонового шуму

Shazam не просто записує "все підряд". Алгоритм:

  • Відфільтровує постійні фонові звуки (гул кондиціонера, шум вулиці)
  • Фокусується на змінних звуках (музика, спів)
  • Посилює частоти, типові для музичних інструментів

👉 Аналогія: Як ви можете почути друга в гучному барі — ваш мозок фільтрує фоновий шум і фокусується на голосі. Shazam робить те саме з музикою.

2. Стійкість до спотворень

Фінгерпринтинг-технологія Shazam стійка до:

  • Ехо та реверберації — типово для великих приміщень чи концертних залів
  • Компресії звуку — якщо пісня грає через погані динаміки або стиснута MP3
  • Зміни гучності — Shazam однаково добре розпізнає тиху та гучну музику
  • Накладених розмов — навіть якщо хтось говорить одночасно з музикою

Чому це працює: Shazam зберігає не абсолютні значення частот, а відносні співвідношення між піковими точками. Навіть якщо весь звук спотворений, ці співвідношення залишаються незмінними.

3. Математичні алгоритми (Fourier Transform простими словами)

В основі Shazam лежить математика під назвою Перетворення Фур'є (Fourier Transform). Звучить складно, але ідея проста:

Аналогія: Уявіть, що звук — це коктейль з різних інгредієнтів (частот). Перетворення Фур'є — це "рецепт" коктейлю: скільки в ньому бас-гітари, скільки вокалу, скільки барабанів. Навіть якщо коктейль трохи розбавили водою (додали шум), рецепт залишається впізнаваним.

Технічно: Fourier Transform розкладає складний звуковий сигнал на прості синусоїдальні хвилі різних частот — це і є спектрограма.

Чому Shazam такий точний?

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

📊 Статистика: Навіть при 50% шуму в записі Shazam зберігає точність розпізнавання понад 90%!

Що Shazam НЕ може розпізнати?

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

1. Кавер-версії та перезаписи ❌

Проблема: Якщо хтось виконав відому пісню по-своєму (інші інструменти, інший темп, інша аранжировка), Shazam сприйме це як зовсім іншу пісню.

Чому: Фінгерпринт базується на конкретному звучанні запису, а не на мелодії або тексті. Кавер має інший фінгерпринт.

👉 Приклад: Оригінальна "Hallelujah" Леонарда Коена та кавер Джеффа Баклі — для Shazam це дві різні пісні, навіть якщо мелодія та текст однакові.

2. Живі виступи та концертні записи 🎸

Проблема: Жива версія пісні часто сильно відрізняється від студійної: інше темпо, імпровізація, крики публіки, інше звучання.

Рішення: Деякі популярні живі версії (наприклад, MTV Unplugged) додаються в базу Shazam окремо.

3. Дуже короткі фрагменти (<3 секунди) ⏱

Проблема: Якщо ви встигли записати тільки 1-2 секунди, цього може бути недостатньо для створення унікального фінгерпринту.

Мінімум: Shazam потребує хоча б 3-4 секунди безперервного звуку для надійного розпізнавання.

4. Дуже рідкісна або локальна музика 🌍

Проблема: База Shazam величезна (70+ млн пісень), але не безмежна. Якщо ви слухаєте:

  • Пісню невідомого локального гурту, яка не в стрімінгових сервісах
  • Демо-запис, який ніколи не видавався офіційно
  • Традиційну народну музику з малодоступних регіонів
  • Саундтрек до маловідомого фільму

...то Shazam, ймовірно, не знайде збігу.

5. Сильно спотворений або перероблений звук 🎛

Проблема: Якщо DJ зробив ремікс з сильною зміною темпу (pitch shift), додав багато ефектів, або пісня грає задом наперед — фінгерпринт зміниться настільки, що Shazam не впізнає оригінал.

6. Наспівування мелодії 🎤

Важливе обмеження: Ви не можете наспівати мелодію в Shazam і очікувати, що він її впізнає. Shazam аналізує конкретний запис, а не мелодію.

Альтернатива: Для цього використовуйте SoundHound або Google Assistant — вони мають окрему технологію розпізнавання наспіваних мелодій.

Висновок: Shazam ідеально працює з офіційними студійними записами в нормальних умовах. Але він не магія — він не читає ваші думки про мелодію і не впізнає кардинально змінені версії пісень.

Історія Shazam: від SMS до Apple (1999-2018)

Shazam здається сучасною технологією, але насправді йому вже понад 20 років! Історія його створення — це детектив про наполегливість, інновації та ідеальний тайм

Цю статтю підготував засновник і лідер компанії з 8-річним досвідом у веброзробці — Вадим Харов'юк.