2 Punkte von GN⁺ 2023-12-06 | 1 Kommentare | Auf WhatsApp teilen

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

 
GN⁺ 2023-12-06
Hacker-News-Kommentare
  • Shazams effizienter hashbasierter Ansatz

    Als Shazam 2008 auf den Markt kam, war es ein kluger Ansatz, eine Methode zu entwickeln, um Songs rechnerisch effizient in Hashes umzuwandeln. Würde man heute einen ähnlichen Dienst starten, würde man wahrscheinlich standardmäßig einen F&E-Ansatz zum Trainieren eines Modells wählen, aber das könnte ineffizient und teuer sein. Da die Anzahl der Songs endlich ist, kann ein hashbasierter Ansatz eine deutlich bessere Performance liefern.

  • Shazams anhaltend magische Faszination

    Shazam ist eines der seltenen Produkte, das sich auch nach über 20 Jahren noch magisch anfühlt, und etwas, wonach Techniker streben sollten.

  • Ein Wall-Street-Journal-Video, das erklärt, wie Shazam funktioniert

    Es gibt ein großartiges Video vom Wall Street Journal, das erklärt, wie Shazam seine einzigartigen Audio-Fingerprints erstellt.

  • Erklärung zu Chromaprint und AcoustID

    Chromaprint arbeitet auf Basis von Mustern in Tonhöhenänderungen statt mit Maximalwerten im Spektrum und wird in einer großen offenen Datenbank namens AcoustID verwendet, die MusicBrainz-Aufnahmen mit Audio-Fingerprints verknüpft. Obwohl es nicht so kommerziell unterstützt wurde wie Shazam, ist es erstaunlich, wie viel Musik in der Datenbank enthalten ist.

  • Ein interessanter Artikel über Shazam und digitale Signalverarbeitung

    Ein hervorragender Einstieg in die Funktionsweise von Shazam und in digitale Signalverarbeitung; Pflichtlektüre für alle, die verstehen möchten, wie Audio-Fingerprint-Erkennung funktioniert.

  • Ähnliche Algorithmen, die auch auf andere Medien anwendbar sind

    Es gibt ähnliche Approximationsalgorithmen, die nicht nur für Audio-Fingerprinting, sondern auch für andere Medien anwendbar sind, und wer Hashing in der realen Welt verstehen möchte, sollte diesen Artikel langsam und sorgfältig durcharbeiten.

  • Die Bedeutung der Website Every Noise At Once

    Every Noise At Once ist eine bemerkenswerte Website, die algorithmisches Matching auf Musikgenre-Klassifikation und die sich verzweigenden Subgenres anwendet, die durch neue Song-Signaturen entstehen. Wegen Hosting-Problemen besteht die Gefahr, dass der Dienst eingestellt wird, was ein großer Verlust für das World Wide Web wäre.

  • Die Intuitivität des Musikerkennungsprozesses

    Dieses System identifiziert Melodiefragmente und gleicht sie der Reihe nach ab, ganz ähnlich wie unser eigener Wahrnehmungsprozess, bei dem wir ein paar Noten hören und den Song erkennen.

  • Die bei der Musikerkennung verwendete Fourier-Transformation

    Es gibt einen Verweis auf die in der Musikerkennung häufig verwendete Fourier-Transformation, die auch in einer Open-Source-Version namens Echoprint eingesetzt wurde, deren Dienst jedoch nach der Übernahme durch Spotify eingestellt wurde.