Kurztitel: Das Prinzip der Musikerkennungstechnologie von Shazam
Was ist Shazam?
- Shazam ist eine App, die Musik identifiziert, die in der Umgebung abgespielt wird.
- Man öffnet die App und nimmt einige Sekunden lang Audio auf, während die Musik läuft, um es in einer Datenbank zu suchen.
- Früher wurde der Dienst über eine Telefonnummer angeboten, und wegen der Grenzen der Gesprächsqualität war Musikerkennung eine schwierige Aufgabe.
Warum Musikerkennung schwierig ist
- Für Menschen, die mit Signalverarbeitung nicht vertraut sind, ist Musikerkennung wegen der Komplexität von Audiosignalen ein schwieriges Problem.
- Ein Brute-Force-Ansatz, bei dem ein bestimmter Teil eines Songs im gesamten Track gesucht wird, ist sehr langsam, und durch Hintergrundgeräusche sowie Frequenzeffekte kann sich die Form des Signals stark verändern.
Systemüberblick
- Shazam ist in zwei Abläufe unterteilt: das Registrieren und das Erkennen von Musik; beide Abläufe haben gemeinsame Schritte wie die Berechnung des Spektrogramms, das Finden von Peaks im Spektrogramm und das Hashing der Peaks.
- Im Registrierungsablauf werden Hashes in der Datenbank gespeichert, und im Erkennungsablauf werden sie mit den Hashes in der Datenbank verglichen, um den gerade abgespielten Song zu identifizieren.
Berechnung des Spektrogramms
- Um das Spektrogramm von Audio zu erhalten, muss man die Fourier-Transformation verstehen.
- Die Fourier-Transformation zeigt, welche Frequenzen in einem Audiosignal vorhanden sind, und daraus wird ein Spektrogramm erzeugt, das die Änderung der Frequenzen über die Zeit darstellt.
Spektrogramm
- Um sich mit der Zeit ändernde Frequenzen besser darzustellen, wird ein Song in kleine Abschnitte zerlegt und auf jeden Abschnitt die Fourier-Transformation angewendet.
- Ein Spektrogramm ist ein 3D-Diagramm mit Zeit (X-Achse), Frequenz (Y-Achse) und Intensität (Z-Achse/Farbe).
Fingerprint-Erzeugung
- Im Spektrogramm werden Peaks gesucht, die die stärksten Frequenzen darstellen, um daraus einen eindeutigen Audio-Fingerprint zu extrahieren.
- Diese Peaks sind gegenüber Rauschen oder anderen Verzerrungen robust und daher gut für die Fingerprint-Erzeugung geeignet.
Peaks finden
- Peaks im Spektrogramm repräsentieren die stärksten Frequenzen im Signal und sollten gleichmäßig verteilt sein, damit sie in Audio-Fingerprints verwendet werden können.
- Mit der Technik des Maximum Filters werden die Peaks im Spektrogramm hervorgehoben und ihre Positionen bestimmt.
Hashing
- Es werden Paare von Peaks im Spektrogramm gebildet, um Hashes zu erzeugen und so die Eindeutigkeit zu erhöhen.
- Die Hashes enthalten die Frequenzen zweier Peaks sowie deren Zeitdifferenz und werden in der Datenbank gespeichert.
Matching
- Es wird beschrieben, wie in einer Fingerprint-Sammlung in der Datenbank Fingerprints gefunden werden, die zu einer gegebenen Audio-Stichprobe passen.
- Dazu werden Hashes gesucht, nach Songs gruppiert und anschließend auf Übereinstimmung geprüft, um den Track mit den meisten Treffern auszuwählen.
Fazit
- Shazam durchläuft zur Registrierung und Erkennung von Songs Prozesse wie die Berechnung des Spektrogramms, die Extraktion von Peaks, die Erzeugung von Hash-Paaren und das Speichern von Fingerprints.
Meinung von GN⁺
- Das Wichtigste an diesem Artikel ist, dass er den komplexen Prozess, mit dem Shazam Musik erkennt, leicht verständlich erklärt.
- Interessant und ansprechend ist, dass die technischen Details Schritt für Schritt aufgeschlüsselt werden, sodass auch Softwareentwickler auf Einsteigerniveau sie verstehen können.
1 Kommentare
Hacker-News-Kommentare
Shazams effizienter hashbasierter Ansatz
Shazams anhaltend magische Faszination
Ein Wall-Street-Journal-Video, das erklärt, wie Shazam funktioniert
Erklärung zu Chromaprint und AcoustID
Ein interessanter Artikel über Shazam und digitale Signalverarbeitung
Ähnliche Algorithmen, die auch auf andere Medien anwendbar sind
Die Bedeutung der Website Every Noise At Once
Die Intuitivität des Musikerkennungsprozesses
Die bei der Musikerkennung verwendete Fourier-Transformation