Як працює Shazam: магія розпізнавання музики за 3 секунди
Ви сидите в кафе, чуєте класну пісню, хапаєте телефон, відкриваєте Shazam — і за лічені секунди на екрані з'являється назва треку, виконавець, альбом і навіть текст пісні. Здається магією, правда?
Але як це можливо? Як додаток знаходить потрібну пісню серед 70+ мільйонів треків у базі даних за 2-3 секунди? Чому він не плутає схожі пісні? І чому працює навіть у гучному кафе з фоновими розмовами?
У цій статті я розкрию всю "магію" Shazam простою мовою — без складних формул, але з повним розумінням того, що відбувається під капотом. Обіцяю, буде цікаво навіть якщо ви не технічний спеціаліст!
Зміст статті:
- Як НЕ працює Shazam: розвінчуємо міфи
- Аудіо-фінгерпринтинг: створення "відбитка" пісні
- База даних Shazam: 70+ мільйонів пісень
- Процес розпізнавання покроково
- Чому Shazam не помиляється навіть при шумі
- Що Shazam НЕ може розпізнати
- Історія Shazam: від SMS до Apple
- Конкуренти та альтернативи
- Чи можна створити свій Shazam
- Мій досвід використання
- Часті питання (FAQ)
⸻
Як НЕ працює 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 секунд.
Як це працює технічно:
- З вашого 5-секундного запису створюються десятки хешів (від різних моментів запису)
- Кожен хеш використовується як "ключ" для пошуку в таблиці
- Shazam знаходить всі пісні, які мають хоча б один збіг з вашими хешами
- З 70 мільйонів залишається ~100-1000 кандидатів
- Система перевіряє, чи збігаються послідовності хешів (а не просто окремі хеші)
- Пісня з найбільшою кількістю послідовних збігів — це ваш результат!
⚡ Результат: Замість перевірки 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. Там відбувається:
- Пошук хешів у гігантській хеш-таблиці
- Виявлення пісень-кандидатів
- Перевірка послідовності збігів
- Підрахунок "балів" для кожного кандидата
⏱ Час виконання: 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-річним досвідом у веброзробці — Вадим Харов'юк.
⸻
⸻