Wie Shazam funktioniert

Shazam ermöglicht es dir, eine mit deinem Handy gemachte Aufnahme von fast jedem Lied zu schicken, und Shazam sagt dir den Namen des Liedes, den Namen des Künstlers und andere Daten über dieses Lied. Zu diesen anderen Daten gehören oft Links zu Orten, an denen du den Song kaufen kannst, sowie die nächsten Tourdaten des Künstlers. In den letzten Jahren hat Shazam seine Bibliothek um Werbung und Fernsehen erweitert. So kann man zum Beispiel einen Werbespot shazamen und erhält dann zusätzliche Informationen über das Produkt, einschließlich eines Links, über den man das Produkt kaufen kann.

Shazam wurde 1999 gegründet und ist damit älter als ein Smartphone. In den Anfängen von Shazam riefen die Nutzer mit einem Gerät an, das so aussah

Eine Shazam-Suche kann selbst in lauten Umgebungen wie Bars oder Nachtclubs einen Treffer finden, solange der Song bereits in der Shazam-Datenbank enthalten ist. Eine Aufnahme von mindestens fünf Sekunden liefert die besten Ergebnisse. Sie können die Aufnahme an einer beliebigen Stelle im Lied starten und Shazam sendet Ihnen innerhalb weniger Sekunden einen Treffer. Damit dieser Dienst gut funktioniert, verfügt Shazam über eine wachsende Datenbank mit über 8 Millionen Songs/Audiodateien. Wenn man davon ausgeht, dass die durchschnittliche Audiodatei drei Minuten lang ist, würde es über 45 Jahre dauern, jede einzelne Datei abzuspielen!

Mit einer Datenbank dieser Größe haben sie eine große Reichweite, aber wie findet Shazam so schnell einen Treffer in einer so großen Datenbank? Zunächst einmal werden nicht die eigentlichen Audiodateien durchsucht, wenn man einen Song mit Shazam aufnimmt. Stattdessen hat Shazam einen Audio-Fingerabdruck für jede Audiodatei in der Datenbank. Die Aufnahme, die ein Shazam-Benutzer einreicht, wird ebenfalls in einen Audio-Fingerabdruck umgewandelt, der es ermöglicht, genaue und schnelle Vergleiche anzustellen. Diese Audio-Fingerabdrücke bestehen aus Sammlungen von numerischen Daten. Wenn du dich fragst, wie der Ohrwurm, den du mit Shazam aufnimmst, in Zahlen umgewandelt wird, dann ist der nächste Abschnitt genau das Richtige für dich.

Wie Ton funktioniert

Die grundlegendste Definition von Ton ist, dass Teilchen vibrieren. Es gibt drei Elemente, die jeden Klang einzigartig machen: Amplitude, Frequenz und Zeit. Die Amplitude ist die Größe der Schwingung, die wir als die Lautstärke des Tons wahrnehmen. Die Frequenz ist die Geschwindigkeit, mit der die Schwingung auftritt. Die Frequenz eines Tons ist das, was wir als Tonhöhe wahrnehmen. Die Frequenz wird in Hertz (Hz) gemessen und gibt an, wie oft sich eine Schallwelle pro Sekunde wiederholt. Das menschliche Ohr kann Töne im Bereich von 20 Hz bis 20 000 Hz wahrnehmen. Zur Veranschaulichung: Die tiefste Note auf einem herkömmlichen Klavier mit 88 Tasten, A0, hat eine Frequenz von 27,5 Hz. Die Frequenz einer Tonhöhe steigt in jeder Oktave logarithmisch an. Mit anderen Worten: Die Frequenz jeder Oktave ist doppelt so hoch wie die der darunter liegenden Oktave. Zum Beispiel beträgt die Frequenz von A1 55Hz, die Frequenz von A2 110Hz und die Frequenz von A3 220Hz.

In der obigen Tabelle kann man sehen, dass viele Instrumente die gleichen Noten spielen können, aber eine Note auf der Geige und die gleiche Note auf einem Klavier klingen unterschiedlich. Dieser Unterschied in der Tonqualität wird als Klangfarbe bezeichnet. Die Klangfarbe eines Tons wird durch Frequenzen innerhalb des Tons erzeugt, die höher sind (sich schneller wiederholen) als die wahrgenommene Tonhöhe des Tons. Diese Frequenzen werden als Obertöne bezeichnet. Schauen Sie sich diese Aufnahme an, die mit einem Ton (C4 261,23 Hz) auf einem Klavier beginnt, gefolgt von jedem der Obertöne innerhalb des Klangs, die einer nach dem anderen gespielt werden, und mit demselben Ton endet, mit dem sie begonnen haben.

Diese Obertonfrequenzen sind es, die einem Instrument seine charakteristische Klangfarbe verleihen.

Die Zeit ist wichtig, weil sie uns nicht nur die Länge der Zeit angibt, in der ein Ton auftritt, sondern auch, zu welchem Zeitpunkt ein Ton im Verhältnis zu anderen Tönen auftritt. Ein bestimmtes Lied kann aus vielen Instrumenten bestehen, die in Frequenz und Amplitude variieren, während sie sich durch die Zeit im Verhältnis zueinander bewegen. Aufgrund der Komplexität von Amplitude, Frequenz und Zeit und der Möglichkeit, sie genau zu messen, erzeugen zwei verschiedene Versionen desselben Liedes dennoch einen einzigartigen Audio-Fingerabdruck.

Wie ein Fingerabdruck erstellt wird

Um einen Audio-Fingerabdruck zu erstellen, wird eine Audiodatei in ein Spektrogramm umgewandelt, bei dem die y-Achse die Frequenz, die x-Achse die Zeit und die Dichte der Schattierung die Amplitude darstellt (Abb. 1A).

Für jeden Abschnitt einer Audiodatei werden die stärksten Peaks ausgewählt und das Spektrogramm auf ein Streudiagramm reduziert. An diesem Punkt ist die Amplitude nicht mehr notwendig (Abb. 1B).

Jetzt haben wir alle grundlegenden Daten, um zwei Dateien, die den Fingerprinting-Prozess durchlaufen haben, zu vergleichen. Ein Abgleich ist jedoch nur möglich, wenn ein Shazam-Benutzer die Aufnahme genau in der Millisekunde begonnen hat, in der ein Lied beginnt. Da dies fast nie der Fall ist, gibt es zusätzliche Schritte für das Audio-Fingerprinting. Durch einen Prozess, der als kombinatorisches Hashing bezeichnet wird, werden Punkte auf dem Streudiagramm als Ankerpunkte ausgewählt, die mit anderen Punkten auf dem Diagramm verknüpft werden, die nach dem Ankerpunkt in einem Zeit- und Frequenzfenster auftreten, das als Zielzone bezeichnet wird (Abb. 1C).

Jedes Ankerpunktpaar wird in einer Tabelle gespeichert, die die Häufigkeit des Ankers, die Häufigkeit des Punktes und die Zeit zwischen dem Anker und dem Punkt, genannt Hash, enthält. Diese Daten werden dann mit einer Tabelle verknüpft, die die Zeit zwischen dem Ankerpunkt und dem Beginn der Audiodatei enthält. Die Dateien in der Datenbank haben auch eindeutige IDs, die verwendet werden, um weitere Informationen über die Datei abzurufen, z. B. den Titel des Liedes und den Namen des Interpreten.

Wie man eine Übereinstimmung findet

Nachdem wir nun Fingerabdrücke für beide Audiodateien erstellt haben, werden alle Ankerpunktpaare aus der Aufnahme des Shazam-Benutzers an die Shazam-Datenbank gesendet, um nach übereinstimmenden Ankerpunktpaaren zu suchen. Diese Suche liefert die Audio-Fingerabdrücke aller Songs, die eine Hash-Übereinstimmung enthalten. Sobald wir alle möglichen Übereinstimmungen für die Aufnahme des Shazam-Benutzers haben, müssen wir den Zeitversatz zwischen dem Beginn der Aufnahme des Shazam-Benutzers und dem Beginn einer dieser möglichen Übereinstimmungen aus der Datenbank finden. Dieser zeitliche Versatz kann berechnet werden, indem die Zeit des Auftretens des Ankerpunktpaares in der Aufnahme des Shazam-Benutzers von der Zeit des Auftretens des übereinstimmenden Hashes in der Audiodatei aus der Shazam-Datenbank subtrahiert wird. Wenn eine signifikante Anzahl von übereinstimmenden Hashes den gleichen Zeitversatz haben, wird der Song als übereinstimmend eingestuft!

Wenn sie auf ein Streudiagramm abgebildet werden, bei dem die y-Achse die Zeit darstellt, zu der der Hash in der Aufnahme des Shazam-Benutzers auftritt, und die x-Achse die Zeit darstellt, zu der der Hash in der Audiodatei aus der Shazam-Datenbank auftritt, bilden die übereinstimmenden Hashes eine diagonale Linie (Abb. 3A). In einem Histogramm der gleichen Daten, bei dem die y-Achse die Versatzzeiten und die x-Achse die Anzahl der Übereinstimmungen darstellt, gibt es eine große Spitze bei der richtigen Versatzzeit (Abb. 3B).

Diese Audiosuchmethode ist genau genug, um Übereinstimmungen zu finden, obwohl die Aufnahme des Shazam-Benutzers Geräusche wie Gespräche, Straßenlärm und sogar andere Lieder enthält. Da die Anzahl der Ankerpunkt-Hashes, die durch einen Audio-Fingerabdruck erzeugt werden, viel höher ist als die Anzahl der Ankerpunkt-Übereinstimmungen, die für ein positives Suchergebnis erforderlich sind, reichen die Ankerpunkt-Hashes, die durch externe Geräusche verdeckt werden, nicht aus, um Shazam daran zu hindern, durchgängig eine Übereinstimmung mit einer Audiodatei aus der Datenbank zu finden. Da der Suchalgorithmus darauf ausgelegt ist, Übereinstimmungen mit aufgezeichneten Audiodateien in der Shazam-Datenbank zu finden, ist es sehr wahrscheinlich, dass der Künstler Backing-Tracks verwendet und/oder eine Lippensynchronisation durchführt, wenn Sie auf einem Konzert sind und beim Shazam einen positiven Treffer erhalten. Ein weiterer Nebeneffekt ist, dass Shazam die Originalaufnahme, aus der ein Sample stammt, zurückgibt, wenn ein Künstler das Sample nicht mit anderen Klängen kombiniert und es nicht in irgendeiner Weise verändert hat.

Leave a Reply