Shazam ist eine der beliebtesten Musikerkennungsanwendungen. Es ermöglicht Benutzern, den Titel und den Interpreten eines Songs zu kennen, indem sie einfach einen kurzen Teil der Melodie aufnehmen. Aber wie funktioniert dieser einzigartige Algorithmus? Lass uns das herausfinden.
Die Arbeit von Shazam basiert auf einer Technologie, die Spektralanalyse genannt wird. Dieser Algorithmus teilt das Audiosignal in kleine Fragmente auf und vergleicht deren Spektren mit einer Datenbank bekannter Songs. Dabei verwendet Shazam nicht das gesamte Lied als ID, sondern nur eine kleine Passage, normalerweise etwa 20 Sekunden.
Der Schlüssel zur Arbeit von Shazam ist der Übergang von der temporären Darstellung des Klangs zur spektralen Darstellung. Der Algorithmus erstellt ein Audioaufzeichnungsspektrogramm, das es ermöglicht, seine Frequenz- und Zeiteigenschaften zu analysieren. Shazam führt dann eine Fourier-Transformation für jedes Fragment durch und extrahiert einen einzigartigen Satz von Frequenzen, der als "Impressum" bezeichnet wird.
Interessanterweise ist Shazam absichtlich resistent gegen Veränderungen in Tonhöhe und Geschwindigkeit. Das bedeutet, dass Shazam, selbst wenn Sie einen Song ein wenig falsch aufnehmen oder sein Tempo ändern, immer noch Übereinstimmungen finden kann. Es erreicht dies durch eine mathematische Technik, die als zeitbezogene invariante Detektion bezeichnet wird.
Nachdem die Drucke erstellt wurden, vergleicht Shazam sie mit einer Datenbank, die Millionen von Songs enthält. Dies geschieht sehr schnell, dank der einzigartigen Indexstruktur, die es ermöglicht, schnell und effizient nach Übereinstimmungen zu suchen. Wenn eine Übereinstimmung gefunden wird, werden dem Benutzer Informationen zum Titel angezeigt, einschließlich Titel, Interpret und Album.
Was ist Shazam und wie funktioniert es
Die Arbeit von Shazam basiert auf einem Algorithmus, der die einzigartigen Eigenschaften einer Audiospur analysiert und sie mit einer Datenbank von Musikaufnahmen vergleicht. Dieser Prozess besteht aus mehreren Schritten:
1. Aufnahme von Audiodaten. Die App zeichnet ein paar Sekunden Audio auf, während der Benutzer das Gerät in der Nähe der Audioquelle hält.
2. Konvertieren in Audiodruck. Die Tonspur wird in einen einzigartigen Audioabdruck umgewandelt, der Informationen über den spektralen Klanginhalt, das Tempo, die Klangfarbe und andere Eigenschaften enthält.
3. Vergleichen Sie den Audiodruck mit einer Datenbank. Der Audioprint wird mit einer vorab vorbereiteten Datenbank gespeicherter Audioprints verglichen. Die Datenbank enthält Informationen über Millionen verschiedener Musiktitel.
4. Ausgabe der Ergebnisse. Wenn der Audiodruck erfolgreich mit einem der Titel in der Datenbank abgeglichen wird, zeigt die App Informationen zum Songtitel, Interpret und einen Link zu zusätzlichen Informationen oder die Möglichkeit an, den Song anzuhören oder zu kaufen.
Shazam ist weit verbreitet, nicht nur in der Musikindustrie, sondern auch in Marketing- und Werbebereichen, wo sein Algorithmus hilft, Töne aus Fernseh- und Radiowerbung sowie in Filmen und im Fernsehen zu identifizieren.
Musikerkennungsalgorithmus
Der in Shazam angewendete Musikerkennungsalgorithmus basiert auf einer Vielzahl von Schritten, die zur Identifizierung eines bestimmten Songs durchgeführt werden. Hier sind die wichtigsten Schritte des Algorithmus:
- Audioaufzeichnung und -segmentierung: Shazam beginnt mit der Arbeit, wenn ein Benutzer ein kleines Stück Musik aufzeichnet (normalerweise etwa 10 bis 15 Sekunden). Dieses Fragment wird dann in kleine Segmente aufgeteilt, die etwa 0,1 Sekunden dauern.
- Konvertieren von Ton in ein Spektrogramm: Jedes Segment des Schalls wird mithilfe einer Fourier-Transformation vom Zeitbereich in einen Frequenzbereich konvertiert. Dies ermöglicht es, ein Spektrogramm zu erhalten, das die verschiedenen Frequenzen anzeigt, die zu jedem Zeitpunkt im Klang vorhanden sind.
- Erstellen eines eindeutigen Klangabdrucks: Für jedes Segment des Spektrogramms wird ein Hash-Fingerabdruck berechnet, der eine eindeutige Kennung dieses Segments darstellt. Die Hash-Drucke werden dann für einen späteren Vergleich in der Shazam-Datenbank gespeichert.
- Fingerabdruck-Vergleich: Wenn ein Benutzer ein neues Musikstück aufzeichnet, wendet Shazam die gleichen Schritte auf dieses Stück an und vergleicht seine Hash-Fingerabdrücke mit denen, die bereits in der Datenbank vorhanden sind. Wenn es eine Übereinstimmung gibt, gibt Shazam Informationen über den gefundenen Song zurück.
Neben den grundlegenden Schritten verwendet Shazam auch zusätzliche Techniken wie Datenkomprimierung und das Speichern von Hash-Drucke in baumartigen Strukturen, um den Prozess der Musikerkennung zu beschleunigen.
Analyse von Schallwellen
Shazam verwendet einen speziellen Algorithmus, um die Schallwellen eines Songs zu analysieren und seine ID zu bestimmen.
Wenn ein Benutzer ein Stück eines Songs in der Shazam-Anwendung aufzeichnet, beginnt der Algorithmus, die akustischen Eigenschaften dieses Stücks zu analysieren. Dieser Prozess besteht aus mehreren Schritten:
- Shazam teilt die Audioaufnahme in kleine Fragmente auf, die als "akustische Drucke" bezeichnet werden. Jeder Fingerabdruck enthält Informationen über das Spektrum der Schallfrequenzen und deren Intensität in einem bestimmten Fragment.
- Als nächstes wandelt der Algorithmus diese Daten in einen eindeutigen Code um, der als "Binärhash" bezeichnet wird. Dieser Hash ist eine vereinfachte Version des akustischen Drucks.
- Die resultierenden binären Hashes werden dann mit einer Datenbank mit akustischen Fingerabdrücken verglichen, die Millionen von Songeinträgen enthält. Die Suche erfolgt auf ähnliche Weise wie die Suche in einer normalen Datenbank mit einem Algorithmus, der als "Nächster Nachbar suchen" bekannt ist.
- Auf diese Weise findet Shazam den entsprechenden akustischen Fingerabdruck in der Datenbank und gibt Informationen über den gefundenen Song an den Benutzer zurück.
Dieser Algorithmus ermöglicht es Shazam, Musik schnell und präzise zu erkennen, selbst wenn Geräusche oder andere Klangverzerrungen auftreten.
Der Lernprozess des Algorithmus
Verwenden Sie eine Reihe von Trainingsdaten, die eine Vielzahl von Musikgenres, Interpreten und Audiodateien unterschiedlicher Qualität enthalten, um Proben zu erstellen. Diese Daten helfen dem Algorithmus, verschiedene Eigenschaften von Klängen wie Melodie, Rhythmus und Tempo zu erkennen.
Während des Trainings analysiert der Algorithmus Trainingsdaten und sucht nach eindeutigen Signaturen, mit denen Sie Musiktitel identifizieren können. Es lernt auch, zwischen verschiedenen Versionen desselben Songs, wie Remixen oder Live-Auftritten, zwischen Gemeinsamkeiten zu unterscheiden. Dies hilft dem Algorithmus, resistenter gegen Änderungen in Audiodateien zu sein, z. B. bei unterschiedlichen Lautstärken, Rauschen oder Effekten.
Nach Abschluss des Lernprozesses wird der Algorithmus in der Lage, Klangmuster aus neuen Audiodateien zu erkennen. Er vergleicht die Signaturen aus diesen Dateien mit den in seiner Datenbank gespeicherten Proben und gibt das am besten geeignete Ergebnis aus. Es sollte beachtet werden, dass der Algorithmus eine begrenzte Anzahl von Trainingsdaten hat, sodass er möglicherweise nicht immer seltene oder wenig bekannte Spuren erkennt.