Ein Audio-Fingerabdruck ist eine digitale Zusammenfassung, die zum Identifizieren eines Audio-Samples oder zum schnellen Auffinden ähnlicher Objekte in einer Audiodatenbank verwendet werden kann. Wenn man beispielsweise jemandem ein Lied vorsummt, erstellt man einen Fingerabdruck, weil man für das Summen die Elemente aus der Musik herausholt/extrahiert, die man für wichtig hält (und wenn man ein guter Sänger ist, wird die andere Person das Lied wiedererkennen).
Bevor wir tiefer einsteigen, soll die folgende Abbildung die vereinfachte Architektur von Shazam zeigen. Dies ist jedoch nur eine Annahme, denn Shazam legt nicht alle notwendigen Informationen für das Verfahren offen. Siehe hierzu das Paper „An Industrial-Strength Audio Search Algorithm“ des Shazam-Mitbegründers Avery Li-Chun Wang aus dem Jahr 2003.
Auf der Serverseite:
- Shazam hat vorberechnete Fingerabdrücke basierend auf einer sehr großen Datenbank an Songs.
- Alle diese Fingerabdrücke werden in eine Αudio-Fingerabdruck-Datenbank eingefügt, die immer dann aktualisiert wird, wenn ein neuer Song in die Song-Datenbank aufgenommen wird.
Auf der Clientseite:
- Wenn ein Benutzer die Shazam App verwendet, zeichnet die App zuerst die aktuelle Musik mit dem Telefonmikrofon auf.
- Das Telefon wendet den gleichen Fingerabdruckalgorithmus wie Shazam auf die Aufnahme an.
- Das Telefon sendet den Fingerabdruck an Shazam.
- Shazam überprüft, ob dieser Fingerabdruck mit einem Fingerabdruck der Shazam-Datenbank übereinstimmt.
- Wenn kein Match gefunden wurde, dann wird der Benutzer darüber informiert, dass der Song nicht gefunden wurde.
- Wenn ein Match gefunden wurde, sucht Shazam nach den Metadaten, die den Fingerabdrücken zugeordnet sind (Name des Musiktitels, ITunes-URL, Amazon-URL ...) und sendet sie an den Benutzer.
Die Schlüsselpunkte von Shazam sind:
-
Rausch- und fehlertolerant zu sein:
- bezüglich schlechter Qualität, da die in einer Bar oder im Freien aufgenommene Musik meist eine schlechte Qualität hat,
- bezüglich der Artefakte, die sich durch die Fensterfunktionen ergeben,
- bezüglich des billigen Mikrofons des Telefons, das Rauschen/Verzerrungen erzeugt,
- bezüglich vieler anderer physischer Dinge.
- Fingerabdrücke müssen zeitinvariant (unveränderlich in der Zeit) sein. Das heißt, der Fingerabdruck eines vollständigen Songs muss mit einer 10-Sekunden-Aufzeichnung des Songs übereinstimmen können.
- Der Abgleich des Fingerabdrucks muss schnell sein: Niemand möchte Minuten oder Stunden warten, um eine Antwort von Shazam zu bekommen.
- Nur wenige „False Positives“ hervorzubringen: Niemand möchte einen falschen Song als Ergebnis erhalten.