Judul ringkasan: Prinsip teknologi pengenalan musik Shazam
Apa itu Shazam?
- Shazam adalah aplikasi untuk mengidentifikasi musik yang sedang diputar di sekitar.
- Pengguna membuka aplikasi lalu merekam audio selama beberapa detik saat musik diputar untuk mencarinya di basis data.
- Di masa lalu, layanan ini juga tersedia lewat nomor telepon, dan keterbatasan kualitas panggilan membuat pengenalan musik menjadi tugas yang sulit.
Mengapa pengenalan musik sulit?
- Bagi orang yang tidak terbiasa dengan pemrosesan sinyal, pengenalan musik adalah masalah yang sulit karena kompleksitas sinyal audio.
- Pendekatan brute force untuk mencari bagian tertentu dari lagu di seluruh trek sangat lambat, dan bentuk sinyal dapat berubah besar akibat noise latar belakang serta efek frekuensi.
Gambaran umum sistem
- Shazam terbagi menjadi dua alur, yaitu pendaftaran musik dan pengenalan, dan keduanya memiliki tahap umum seperti menghitung spektrogram, mencari puncak dalam spektrogram, dan melakukan hashing pada puncak.
- Alur pendaftaran menyimpan hash ke basis data, sedangkan alur pengenalan membandingkannya dengan hash di basis data untuk mengidentifikasi lagu yang sedang diputar.
Menghitung spektrogram
- Untuk mendapatkan spektrogram audio, kita perlu memahami transformasi Fourier.
- Transformasi Fourier memberi tahu frekuensi apa saja yang ada dalam audio, dan darinya dibuat spektrogram yang menunjukkan perubahan frekuensi dari waktu ke waktu.
Spektrogram
- Untuk merepresentasikan frekuensi yang berubah terhadap waktu dengan lebih baik, lagu dibagi menjadi bagian-bagian kecil lalu diterapkan transformasi Fourier.
- Spektrogram adalah grafik 3D dengan waktu (sumbu X), frekuensi (sumbu Y), dan intensitas (sumbu Z/warna).
Pembuatan sidik jari
- Dengan mencari puncak yang mewakili frekuensi terbesar dalam spektrogram, sistem mengekstrak sidik jari unik dari audio.
- Puncak-puncak ini mampu bertahan terhadap noise atau distorsi lain, sehingga cocok digunakan untuk membuat sidik jari.
Mencari puncak
- Puncak pada spektrogram merepresentasikan frekuensi terkuat dalam sinyal, dan harus tersebar merata agar dapat digunakan dalam sidik jari audio.
- Teknik maximum filter digunakan untuk menonjolkan puncak pada spektrogram dan menemukan posisinya.
Hashing
- Hash dibuat dengan membentuk pasangan puncak dalam spektrogram, sehingga tingkat keunikannya meningkat.
- Hash menyertakan frekuensi dari dua puncak dan selisih waktunya, lalu disimpan di basis data.
Pencocokan
- Artikel ini menjelaskan proses menemukan sidik jari yang cocok dengan sampel audio tertentu di dalam koleksi sidik jari pada basis data.
- Sistem mencari hash, lalu mengelompokkannya per lagu, kemudian memeriksa kecocokan hash untuk memilih trek dengan jumlah kecocokan terbanyak.
Kesimpulan
- Shazam melalui proses seperti menghitung spektrogram, mengekstrak puncak, membuat pasangan hash, dan menyimpan sidik jari untuk mendaftarkan dan mengenali lagu.
Opini GN⁺
- Hal terpenting dari artikel ini adalah bahwa artikel ini menjelaskan proses kompleks yang digunakan Shazam untuk mengenali musik dengan cara yang mudah dipahami.
- Menarik dan memikat karena detail teknisnya dipecah langkah demi langkah sehingga bahkan insinyur perangkat lunak pemula pun bisa memahaminya.
1 komentar
Opini Hacker News
Pendekatan berbasis hash Shazam yang efisien
Daya tarik Shazam yang tetap terasa seperti sihir
Video Wall Street Journal yang menjelaskan cara kerja Shazam
Penjelasan tentang Chromaprint dan AcoustID
Tulisan menarik tentang Shazam dan pemrosesan sinyal digital
Algoritme serupa yang juga bisa diterapkan ke media lain
Pentingnya situs web Every Noise At Once
Intuitifnya proses pengenalan musik
Transformasi Fourier yang digunakan untuk pengenalan musik