-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft das technische Gebiet der Identifikation von Audio-Fingerabdrücken und betrifft insbesondere ein mehrstufiges Indexierungsverfahren für Audio-Fingerabdruck-Bibliotheksdaten.
-
Hintergrund
-
Die Audio-Fingerabdruck-Identifikation (verbreitet als ”SoundHound” bekannt) ist eine neue Technik der Musiksuche, die gekennzeichnet ist durch Analysieren des Frequenzspektrums einer Audiodatei, Extrahieren der numerischen Eigenschaften eines so genannten ”Audio-Fingerabdrucks”, Konstruieren einer ”riesigen Audio-Fingerabdruck-Bibliothek” unter Verwenden der numerischen Eigenschaften, Einsetzen auf einem Netzwerkserver, Senden von transkribierten unbekannten Audioclips durch einen Client zu einem Server, Extrahieren eines ”Audio-Fingerabdrucks” durch den Server mithilfe des gleichen Algorithmus, dann Suchen ähnlicher Eigenschaften in der riesigen Audio-Fingerabdruck-Bibliothek durch Suchalgorithmus und Mutmaßen einer Audiozieldatei beruhend auf den gefundenen mehreren Eigenschaften und Übermitteln des Ergebnisses zu dem Client, um den gesamten Identifikationsprozess abzuschließen. Die Audio-Fingerabdruck-Identifikation ist eine datenintensive und rechenintensive Anwendung: die riesige Audio-Fingerabdruck-Bibliothek muss die Eigenschaften einer ausreichenden Anzahl an Audiodateien enthalten, um die Erkennung der Anwendung sicherzustellen, deren Umfang für gewöhnlich bei einer Größe von zehn Millionen liegt, und die Anzahl der Audio-Fingerabdrücke liegt sogar bei einer Größe von mehreren Milliaren, was zu einem enormen Rechenaufwand des Suchalgorithmus führt. Der Audio-Fingerabdruck im Stand der Technik wird für gewöhnlich als Schlüssel-Wert-Paar ausgedrückt, der Suchalgorithmus wird derzeit für gewöhnlich mittels Binärbaum oder Hashtabelle erreicht und ist gekennzeichnet durch Finden mittels des Schlüssels aller Werte von Fingerabdrücken mit Schlüssel in einer riesigen Audio-Fingerabdruck-Bibliothek, dann Traversieren der Werte, um alle Werte zu finden, die gleich dem Wert der abgefragten Fingerabdrücke sind. Es wird angenommen, dass die Durchschnittswertanzahl des Schlüssels 10000 beträgt und die Durchschnittsanzahl abgefragter Fingerabdrücke zu einem Zeitpunkt 2000 beträgt, dann sind jedes Mal mindestens 200 Millionen Vergleiche für die Identifikation erforderlich, der enorme berechnete Betrag beeinflusst die Suchleistung stark. Ferner ist die Anzahl an Werten des Schlüssels ungleich verteilt, daher gibt es bei der Suchleistung noch ein riesiges Optimierungspotential und die Suchgeschwindigkeit muss dringend weiter verbessert werden.
-
Daher ist es erforderlich, ein Indexierungsverfahren hoher Effizienz für Daten in einer riesigen Audio-Fingerabdruck-Bibliothek zu entwickeln, um die Suchgeschwindigkeit einer Suchmaschine zu verbessern und ferner die Sucheffizienz zu verbessern.
-
Zusammenfassung der Erfindung
-
Zu diesem Zweck sieht die vorliegende Erfindung ein mehrstufiges Indexierungsverfahren samt Vorrichtung für Audio-Fingerabdruck-Bibliotheksdaten vor, um die technischen Probleme geringer Suchleistung und relativ häufiger Berechnungszeiten während einer Vergleichsabfrage bei einer riesigen Audio-Fingerabdruck-Bibliothek des Stands der Technik zu lösen.
-
Zu diesem Zweck sieht die vorliegende Erfindung ein mehrstufiges Indexierungsverfahren für Audio-Fingerabdruck-Bibliotheksdaten vor, welches umfasst: Aufspalten von Datenbits eines Werts für jeden Audio-Fingerabdruck in den Audio-Fingerabdruck-Bibliotheksdaten in einen Indexteil und einen Fingerabdruckdatenteil, wobei der Indexteil ein mehrstufiger Index ist; Zulassen, dass jede Stufe in dem Indexteil mit einem Pointer auf eine nächste Stufe weist; und Zulassen, dass ein Pointer der letzten Stufe des Indexteils zu dem Fingerabdruckdatenteil weist; wobei sich der Indexteil an der vorderen Hälfte der Datenbits des Audio-Fingerabdrucks befindet; und wobei sich der Fingerabdruckdatenteil an der hinteren Hälfte der Datenbits des Audio-Fingerabdrucks befindet.
-
Kurze Beschreibung der Zeichnungen
-
1 zeigt ein schematisches Diagramm eines mehrstufigen Indexierungsverfahrens für Audio-Fingerabdruck-Bibliotheksdaten in Beispiel 1 der vorliegenden Erfindung;
-
2 zeigt ein strukturelles schematisches Diagramm des ausgespaltenen Werts in Beispiel 2 der vorliegenden Erfindung;
-
3 zeigt ein schematisches Diagramm eines mehrstufigen Indexierungsverfahrens für Audio-Fingerabdruck-Bibliotheksdaten in Beispiel 3 der vorliegenden Erfindung;
-
4 zeigt ein schematisches Diagramm eines mehrstufigen Indexierungsverfahrens für Audio-Fingerabdruck-Bibliotheksdaten in Beispiel 4 der vorliegenden Erfindung;
-
5 zeigt ein strukturelles schematisches Diagramm einer mehrstufigen Indexierungsvorrichtung für Audio-Fingerabdruck-Bibliotheksdaten in Beispiel 5 der vorliegenden Erfindung;
-
6 zeigt ein strukturelles schematisches Diagramm einer mehrstufigen Indexierungsvorrichtung für Audio-Fingerabdruck-Bibliotheksdaten in Beispiel 6 der vorliegenden Erfindung;
-
7 zeigt ein schematisches Diagramm einer aufgeteilten Struktur für einen Wert in Beispiel 7 der vorliegenden Erfindung;
-
8 zeigt ein schematisches Diagramm eines Konstruktionsverfahrens einer mehrstufigen Indexierungsstruktur in Beispiel 7 der vorliegenden Erfindung;
-
9 zeigt ein schematisches Diagramm einer Serialisierungsspeicherungsmethode der Indexierungsstruktur in Beispiel 7 der vorliegenden Erfindung.
-
Eingehende Beschreibung der Ausführungsformen
-
Nachstehend werden unter Bezug auf Beschreibungszeichnungen und Beispiele bestimmte Ausführungsformen dieser Erfindung näher beschrieben. Die folgenden Ausführungsformen dienen nur zum Veranschaulichen dieser Erfindung, ohne den Schutzumfang dieser Erfindung zu beschränken.
-
Beispiel 1:
-
Ohne Verlust der Allgemeingültigkeit sieht diese Erfindung, wie in 1 gezeigt, ein mehrstufiges Indexierungsverfahren für Audio-Fingerabdruck-Bibliotheksdaten vor, welches umfasst:
S1000: Aufspalten von Datenbits eines Werts für jeden Audio-Fingerabdruck in den Audio-Fingerabdruck-Bibliotheksdaten in einen Indexteil und einen Fingerabdruckdatenteil, wobei der Indexteil ein mehrstufiger Index ist;
S2000: Zulassen, dass jede Stufe in dem Indexteil mit einem Pointer zu einer nächsten Stufe weist; und
S3000: Zulassen, dass der eine Pointer der letzten Stufe des Indexteils zu dem Fingerabdruckdatenteil weist.
-
Durch Auspalten der Datenbits des Werts für jeden Audio-Fingerabdruck in den Audio-Fingerabdruck-Bibliotheksdaten in einen Indexteil und einen Fingerabdruckdatenteil sieht die Erfindung eine technische Datenstrukturunterstützung zum Verwirklichen von mehrstufigem Indexieren vor; während der Suche erfordert sie nur das Suchen nach Werten, die bei die Indexierungsbedingung der vorherigen Stufe erfüllenden Werten die Indexierungsbedingung der nächsten Stufe erfüllen; da ein stufenweiser Vergleich genutzt wird, ist der Suchaufwand der nächsten Stufe weit geringer als der der letzten Stufe, was die durch Datensuche erforderte Zugriffsmenge stark reduziert und die durch den Datenvergleich erforderliche Arbeitszeit reduziert, um dadurch die Indexierungseffizienz der Audio-Fingerabdruck-Bibliotheksdaten effektiv zu verbessern. Da die Datenverarbeitung in dieser Erfindung ferner nur die Datenbits des Werts für jeden Audio-Fingerabdruck in den Audio-Fingerabdruck-Bibliotheksdaten aufspalten muss, werden Daten jedes Teils des ausgespaltenen Werts behalten, um nach Art und Weise eines Pointers zueinander in Bezug gesetzt zu werden, was vorteilhaft ist, um unter einer Vorbedingung des Nichtbeschädigens der ursprünglichen Dateninformation des Werts vor der Aufspaltung eine technische Datenstrukturunterstützung zum ”Vornehmen von Wertserialisierungsspeicherung” zu bieten, um eine Speicherplatzersparnis weiter zu fördern.
-
Beispiel 2:
-
Wie in 2 gezeigt ist, wird in der Erfindung bevorzugt eine vordere Hälfte des aufgespaltenen Werts als Indexteil YN betrachtet und eine hintere Hälfte des aufgespaltenen Werts wird als Fingerabdruck-Datenteil SJ betrachtet, und nur die vordere Hälfte des Werts dient als Indexcode zum Suchen des Werts, was den Rechenaufwand während des Indexvergleichs unter einer Vorbedingung des Nichtbeeinträchtigens der Indexierungsgenauigkeit reduziert.
-
Beispiel 3:
-
Wie in 3 gezeigt ist, umfasst die Erfindung bei den Schritten des mehrstufigen Indexierungsverfahrens für Audio-Fingerabdruck-Bibliotheksdaten beruhend auf Beispiel 1 bevorzugt ferner:
S4000: Konstruieren einer Indexliste, umfassend:
S4100: Zulassen, dass jede Stufe in der Indexliste mehrere Indexbits enthält;
S4200: Zulassen, dass jedes Indexbit auf einer vorherigen Stufe in der Indexliste mehreren Indexbits auf einer nächsten Stufe entspricht;
S4300: Zulassen, dass alle auf einer letzten Stufe befindlichen Indexbits den Fingerabdruckdaten entsprechen, auf die sie verweisen.
-
Um ein praktischeres Indexieren zu verwirklichen, wird eine Indexliste mit dem gleichen Datenformat wie der Indexteil konstruiert, und die Konstruktion der Indexliste sieht eine starke technische Unterstützung zum weiteren Verwirklichen einer Serialisierungsspeicherung des Werts und Durchführen einer Audio-Fingerabdruck-Datenindexierung hoher Effizienz vor. Während der Suche nach Audio-Fingerabdruck-Daten muss sie nur auf die Indexliste zugreifen, um eine Datensuche nach einem ”zu suchenden Wert” vorzunehmen.
-
Bevorzugt ist der Indexteil ein zweistufiger Index. Die vorliegende Erfindung verwirklicth eine Strukturserialisierungsspeicherung des Indexteils durch Nutzen eines zweistufigen Index und Konstruieren einer daran angepassten Indexliste, was eine kompaktere Speichernutzung ermöglicht, und kann die Erzeugung von Speicherfragmentierungen effektiv reduzieren; wobei die Indexliste verwendet wird, um die Offsetposition des Index der zweiten Stufe bezüglich des Index der ersten Stufe beizubehalten.
-
Bevorzugt ist bei dem zweistufigen Index die Anzahl von Datenbits, die in dem Index jeder Stufe eingenommen werden, gleich.
-
Bevorzugt betragen die Datenbits des Werts für den Audio-Fingerabdruck 32 Bits oder 64 Bits.
-
Durch Aufspalten eines 32-Bit- oder 64-Bit-Integers und ein Verfahren zum Konstruieren eines mehrstufigen Index kann die Erfindung schnell einen Suchbereich und die währen eines Suchens zu vergleichende erforderliche Datenmenge einschränken, um dadurch einen Rechenaufwand zu verringern und die Abfrageleistung zu verbessern.
-
Beispiel 4
-
Die vorliegende Erfindung benennt beruhend auf Beispiel 3 den zweistufigen Index bevorzugt der Reihe nach als Index der ersten Stufe und Index der zweiten Stufe; wie in 4 gezeigt ist, umfasst das mehrstufige Indexierungsverfahren für Audio-Fingerabdruck-Bibliotheksdaten ferner:
S5000: Vornehmen einer Strukturserialisierungsspeicherung an dem Indexteil, umfassend:
S5100: sequentielles Speichern von mehreren Datenbits des Index der zweiten Stufe, die auf den Index der ersten Stufe verweisen, und von Fingerabdruckdaten, auf die der Index der zweiten Stufe verweist, nach dem Index der ersten Stufe, um jeweils Datenblöcke mit der gleichen Anzahl wie die Datenbits des Index der ersten Stufe zu bilden;
S5200: sequentielles Speichern der vorstehenden Datenblöcke.
-
Bevorzugt liegt die Indexliste in Form eines Arrays vor.
-
Beispiel 5
-
Wie in 6 gezeigt ist, sieht die vorliegende Erfindung beruhend auf den vorherigen Beispielen eine mehrstufige Indexvorrichtung für Audio-Fingerabdruck-Bibliotheksdaten vor, die für die vorstehende Indexierungsfunktion eine bessere Hardwarestrukturunterstützung bietet, sie umfasst:
eine Einheit 100 zum Aufspalten der Datenbits des Werts für jeden Audio-Fingerabdruck in den Audio-Fingerabdruck-Bibliotheksdaten in einen Indexteil und einen Fingerabdruckdatenteil, wobei der Indexteil ein mehrstufiger Index ist;
eine Einheit 200 zum Zulassen, dass jede Stufe in dem Indexteil mit einem Pointer auf eine nächste Stufe verweist; und
eine Einheit 300 zum Zulassen, dass der eine Pointer der letzten Stufe des Indexteils auf den Fingerabdruckdatenteil verweist.
-
Beispiel 6
-
Wie in 6 gezeigt ist, umfasst beruhend auf Beispiel 5 eine mehrstufige Indexvorrichtung für Audio-Fingerabdruck-Bibliotheksdaten, die in dem vorliegenden Beispiel vorgesehen sind, ferner:
eine Einheit 400 zum Konstruieren einer Indexliste, wobei diese umfasst:
eine Einheit 410 zum Zulassen, dass jede Stufe in der Indexliste mehrere Indexbits enthält;
eine Einheit 420 zum Zulassen, dass jedes Indexbit auf einer vorherigen Stufe in der Indexliste mehreren Indexbits auf einer nächsten Stufe entspricht;
eine Einheit 430 zum Zulassen, dass alle auf einer letzten Stufe befindlichen Indexbits den Fingerabdruckdaten entsprechen, auf die sie verweisen.
-
Beispiel 7
-
Unter Heranziehen eines 32-Bit-Werts als Beispiel unterteilt das vorliegende Beispiel die Ausführungsform in vier Schritte:
- 1. Ermitteln der Indexstufe, die konstruziert werden muss, und Wählen eines Datenabschnitts, in dem die Indexkonstruktion erforderlich ist, wobei ein Byte 256 Indexpositionen entspricht. Wie in 7 gezeigt ist, werden 0–7 Bits eines 32-Bit-Werts genutzt, um den Index der ersten Stufe (Wert0-7) des Indexteils zu konstruieren, 8–15 Bits davon werden genutzt, um den Index der zweiten Stufe (Wert8-15) des Indexteils zu konstruieren, und 16–31 Bits (Wert16-31) davon dienen als Fingerabdruck-Datenteil.
- 2. Aufspalten von Daten beginnend mit dem Indexteil und Konstruieren einer Indexstruktur. Es wird zum Beispiel ein Verweisen des Index erster Stufe zu dem Index der zweiten Stufe zugelassen, und es wird zugelassen, dass der Index der zweiten Stufe auf den Datenteil verweist.
- 3. Konstruieren einer Serialisierungsindexstruktur, wie in 8 gezeigt, Konstruieren eines Integral-Arrays zum Beibehalten der Offsetposition des Index der zweiten Stufe bezüglich des Index der ersten Stufe, der mit dem Index der ersten Stufe (bestehend aus Wert0-7) in einer Eins-zu-Eins-Korrespondenz steht und eine Länge von 256 aufweist, anschließend hinten Platzieren eines Integral-Arrays der Offsetposition des Datenteils eines ersten Index einer zweiten Stufe (bestehend aus Wert8-15) bezüglich des Index der zweiten Stufe, dann nacheinander Platzieren des Werts16-31 des Datenteils des Index der zweiten Stufe und Berechnen und Aktualisieren der Arrays der Offsetposition usw.
-
Wie in 9 gezeigt ist, sind der Index der ersten Stufe, der Index der zweiten Stufe und die Fingerabdruckdaten Speicher gemäß dem folgenden Format:
die ersten Daten des Index der ersten Stufe, die ersten Daten des Index der zweiten Stufe, die auf erste Daten des Index der ersten Stufe und diesen entsprechende Fingerabdruckdaten verweisen, die zweiten Daten des Index der zweiten Stufe und diesen entsprechende Fingerabdruckdaten; die letzte Datenangabe des Index der zweiten Stufe und dieser entsprechende Fingerabdruckdaten;
die zweiten Daten des Index der ersten Stufe, die ersten Daten des Index der zweiten Stufe, die den ersten Daten des Index der ersten Stufe entsprechen, und Fingerabdruckdaten, die den ersten Daten des Index der zweiten Stufe entsprechen, die zweiten Daten des Index der zweiten Stufe und diesen entsprechende Fingerabdruckdaten; die letzte Datenangabe des Index der zweiten Stufe und dieser entsprechende Fingerabdruckdaten;
die letzten Datenangabe des Index der ersten Stufe, die ersten Daten des Index der zweiten Stufe, die der letzten Datenangabe des Index der ersten Stufe entsprechen, und Fingerabdruckdaten, die den ersten Daten des Index der zweiten Stufe entsprechen, die zweiten Daten des Index der zweiten Stufe und diesen entsprechende Fingerabdruckdaten... die letzte Datenangabe des Index der zweiten Stufe und dieser entsprechende Fingerabdruckdaten;
- 4. Während des Suchens zunächst Feststellen der Position des Index der zweiten Stufe in dem Index der ersten Stufe gemäß 0–7 Bits des gesuchten Werts, dann Feststellen der Offsetposition Offset-k des k-ten Datenteils gemäß 8–15 Bits des Werts und Berechnen der Länge Größe-k des k-ten Datenteils gemäß dem Offset-k + 1 – offset-k, dann Traversieren des Datenteils und Liefern aller Zielwerte mit dem gleichen Wert.
-
Der Index kann durch Abfragecode erhalten werden, der Abfragecode hat das gleiche Format wie das Datum des Indexteils; der Abfragecode wird stufenweise mit dem Indexteil verglichen, der Indexbereich des Vergleichs jeder Stufe ist auf den Wert beschränkt, der die Bedingung des Vergleichs der vorherigen Stufe erfüllt; wenn der Abfragecode mit dem Indexteil eines Werts, der sich in den Audio-Fingerabdruck-Bibliotheksdaten befindet, restlos konform ist, verweist das Abfrageergebnis auf den Wert.
-
Zu beachten ist, dass die Speicherdatenbits in der vorliegenden Erfindung nicht auf übliche 32-Bit-Speicherung und 64-Bit-Speicherung beschränkt sind, die für den Stand der Technik geeignet sind, die Anwendung des Verfahrens und der Vorrichtung sollten zum Beispiel in dem 128-Bit-Datenspeicherfeld auf dieser Grundlage in den beanspruchten Schutzumfang der vorliegenden Erfindung fallen.