DE102015015827A1 - Method and apparatus for constructing an audio fingerprint database and searching for an audio fingerprint - Google Patents
Method and apparatus for constructing an audio fingerprint database and searching for an audio fingerprint Download PDFInfo
- Publication number
- DE102015015827A1 DE102015015827A1 DE102015015827.9A DE102015015827A DE102015015827A1 DE 102015015827 A1 DE102015015827 A1 DE 102015015827A1 DE 102015015827 A DE102015015827 A DE 102015015827A DE 102015015827 A1 DE102015015827 A1 DE 102015015827A1
- Authority
- DE
- Germany
- Prior art keywords
- key
- audio
- audio fingerprints
- server
- values
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H60/00—Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
- H04H60/56—Arrangements characterised by components specially adapted for monitoring, identification or recognition covered by groups H04H60/29-H04H60/54
- H04H60/58—Arrangements characterised by components specially adapted for monitoring, identification or recognition covered by groups H04H60/29-H04H60/54 of audio
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H60/00—Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
- H04H60/35—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users
- H04H60/37—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for identifying segments of broadcast information, e.g. scenes or extracting programme ID
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H2201/00—Aspects of broadcast communication
- H04H2201/90—Aspects of broadcast communication characterised by the use of signatures
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Acoustics & Sound (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Library & Information Science (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
Abstract
Die Erfindung offenbart ein Verfahren zur Konstruktion von Audio-Fingerabdruck-Datenbanken, welches folgendes umfasst: Audio-Fingerabdrücke und Schlüsselwerte von Audio-Fingerabdrücken extrahieren; mathematische Korrespondenzbeziehungen zwischen Audio-Fingerabdrücken mit gleichen Schlüsselwerten herstellen; Schlüsselwerte und die entsprechenden Audio-Fingerabdrücke einem Server zuweisen; und Korrespondenzbeziehungen zwischen dem Schlüsselwert und dem Server herstellen, um so eine Audio-Fingerabdruck-Datenbank zu konstruieren. Die Erfindung weist den Servern Audio-Fingerabdrücke und Schlüsselwerte dieser Audio-Fingerabdrücke gleichmäßig zu. Auf diese Weise werden die Audio-Fingerabdrücke mit den entsprechenden Schlüsselwerten bei jeder Anfrage an den Server, auf dem sie zur Berechnung gespeichert sind, präzise gefunden und gewährleistet die größtmögliche Ressourcenauslastung. Eine gleichmäßige Lastverteilung wird durch das Führen von Statistiken über die Zugriffshäufigkeit auf jeden Schlüsselwert auf jedem Server während der Laufzeit des Systems optimiert, um den Durchsatz des Systems zu verbessern.The invention discloses a method of constructing audio fingerprint databases, comprising: extracting audio fingerprints and key-values of audio fingerprints; establish mathematical correspondence relations between audio fingerprints with the same key values; Assign key values and the corresponding audio fingerprints to a server; and establish correspondence relationships between the key value and the server so as to construct an audio fingerprint database. The invention evenly assigns to the servers audio fingerprints and key-values of these audio fingerprints. In this way, the audio fingerprints with the corresponding key values are precisely found on each request to the server on which they are stored for computation, ensuring the greatest possible resource utilization. Uniform load balancing is optimized by keeping track of access frequency statistics on each key value on each server during the runtime of the system to improve system throughput.
Description
TECHNISCHES GEBIETTECHNICAL AREA
Die Erfindung betrifft das Gebiet der Informationstechnologie und insbesondere ein Verfahren und einer Vorrichtung zum Aufbau einer Audio-Fingerabdruck-Datenbank und zur Suche nach einem Audio-FingerabdruckThe invention relates to the field of information technology, and more particularly to a method and apparatus for constructing an audio fingerprint database and searching for an audio fingerprint
HINTERGRUNDBACKGROUND
Die Identifizierung von einem Audio Fingerabdruck ist eine datenintensive und rechenintensive Anwendung: die extrem große Audio-Fingerabdruck-Datenbank muss die Eigenschaften einer ausreichenden Anzahl von Audio-Dateien enthalten, um die Erkennung bei einer Anwendung zu gewährleisten; und der Umfang bewegt sich in der Regel im Zehn-Millionen-Bereich; der Suchalgorithmus muss einen enormen Rechenaufwand bewältigen, damit eine gute Suchgeschwindigkeit erzielt wird und verwendet dazu in der Regel den gesamten Speicherplatz zum Speichern und Berechnung einer großen Audio-Fingerabdruck-Datenbank.The identification of an audio fingerprint is a data-intensive and computationally intensive application: the extremely large audio fingerprint database must contain the characteristics of a sufficient number of audio files to ensure recognition in an application; and the scope usually ranges in the tens of millions; The search algorithm must handle a tremendous amount of computation to get a good search speed, typically using all of the memory to store and compute a large audio fingerprint database.
Es ist bekannt, dass die Identifizierung eines Audio-Fingerabdrucks hohe Anforderung an die Speicherkapazität (TB-Bereich) stellt und derzeit nicht von einem einzelnen Server erfüllt werden kann. In den bestehenden Lösungen wird die Musik-Bibliothek normalerweise auf eine große Anzahl von Servern aufgeteilt, um dann auf den vielen Servern wiederum eine Audio-Fingerabdruck-Datenbank zu erstellen. Bei diesen Lösungen führt die Suche auf allen Servern zu unnötigen Suchen und der Verschwendung von Ressourcen. Deshalb wurde die Frage, wie man große Audio-Fingerabdruck-Datenbanksysteme mit optimaler Ressourcenauslastung konstruiert in diesem Bereich der Branche zu einem Problem.It is known that the identification of an audio fingerprint makes high demands on the storage capacity (TB area) and can not currently be fulfilled by a single server. In the existing solutions, the music library is usually split up into a large number of servers, to then create an audio fingerprint database on the many servers. With these solutions, searching across all servers leads to unnecessary searches and waste of resources. Therefore, the question of how to design large audio fingerprint database systems with optimal resource utilization has become a problem in this area of the industry.
ZUSAMMENFASSUNG DER ERFINDUNGSUMMARY OF THE INVENTION
Gemäß dem ersten Aspekt dieser Erfindung wird ein Verfahren zur Konstruktion von Audio-Fingerabdruck-Datenbanken vorgestellt, das folgendes umfasst: Audio-Fingerabdrücke und Schlüsselwerte von Audio-Fingerabdrücken extrahieren; mathematische Korrespondenzbeziehungen zwischen Audio-Fingerabdrücken mit gleichen Schlüsselwerten herstellen; Schlüsselwerte und die entsprechenden Audio-Fingerabdrücke einem Server zuweisen; und Korrespondenzbeziehungen zwischen dem Schlüsselwert und dem Server herstellen, um so eine Audio-Fingerabdruck-Datenbank zu konstruieren.According to the first aspect of this invention, there is provided a method of constructing audio fingerprint databases, comprising: extracting audio fingerprints and key-values of audio fingerprints; establish mathematical correspondence relations between audio fingerprints with the same key values; Assign key values and the corresponding audio fingerprints to a server; and establish correspondence relationships between the key value and the server so as to construct an audio fingerprint database.
Dieses Verfahren und diese Vorrichtung für die Konstruktion einer Audio-Fingerabdruck-Datenbank und die Suche nach Audio-Fingerabdrücken weist den Servern Audio-Fingerabdrücke und Schlüsselwerte dieser Audio-Fingerabdrücke gleichmäßig zu. Auf diese Weise werden die Audio-Fingerabdrücke mit den entsprechenden Schlüsselwerten bei jeder Anfrage an den Server, auf dem sie zur Berechnung gespeichert sind, präzise gefunden und gewährleistet die größtmögliche Ressourcenauslastung. Eine gleichmäßige Lastverteilung wird durch das Führen von Statistiken über die Zugriffshäufigkeit auf jeden Schlüsselwert auf jedem Server während der Laufzeit des Systems optimiert, um den Durchsatz des Systems zu verbessern.This method and apparatus for constructing an audio fingerprint database and searching for audio fingerprints equally assigns to the servers audio fingerprints and key-values of these audio fingerprints. In this way, the audio fingerprints with the corresponding key values are precisely found on each request to the server on which they are stored for computation, ensuring the greatest possible resource utilization. Uniform load balancing is optimized by keeping track of access frequency statistics on each key value on each server during the runtime of the system to improve system throughput.
KURZBESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS
DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMENDETAILED DESCRIPTION OF THE EMBODIMENTS
Schritt
Schritt
Im Schritt
Ein Verfahren zur Speicherung von Audio-Fingerabdrücken gemäß dieser Erfindung zur Schaffung von Korrespondenzbeziehung zwischen Audio-Fingerabdrücken mit dem gleichen Schlüsselwert und dem Schlüsselwert umfasst: Klassifizieren der Audio-Fingerabdrücke mit dem gleichen Schlüsselwert in einer Matrix. Durch das Klassifizieren der Audio-Fingerabdrücke mit demselben Schlüsselwert in einer Matrix kann eine Korrespondenzbeziehung zwischen den Audio-Fingerabdrücken mit dem gleichen Schlüsselwert und dem Schlüsselwert geschaffen werden und die Schlüsselwerte können über Audio-Fingerabdrücke gefunden werden. Die Matrix enthält zwei Elemente, nämlich den Schlüsselwert und die Audio-Fingerabdrücke.A method of storing audio fingerprints according to this invention for providing correspondence relationship between audio fingerprints having the same key value and the key value comprises: classifying the audio fingerprints with the same key value in a matrix. By classifying the audio fingerprints with the same key value in a matrix, a correspondence relationship between the audio fingerprints having the same key value and the key value can be created, and the key values can be found via audio fingerprints. The matrix contains two elements, namely the key value and the audio fingerprints.
Wie in
Schritt
Schritt
Sie können auch mittels einem spezifischen Algorithmus zugeordnet werden. Zum Beispiel kann man zunächst Berechnungen anstellen und diese entsprechend der von einer Matrix geforderten Last ordnen und danach mehrere Matrizen dem gleichen Server in bestimmten Zeitintervallen zuordnen. Dadurch erhält man eine relativ ausgeglichene Lastverteilung.They can also be assigned by means of a specific algorithm. For example, one can first make calculations and arrange them according to the load demanded by a matrix and then assign multiple matrices to the same server at specific time intervals. This gives a relatively balanced load distribution.
Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung werden die Matrizen den Servern durch einen Greedy-Algorithmus zugeordnet. Dadurch werden Lastunterschiede zwischen den Servern minimiert und, mit anderen Worten, eine gleichmäßige Lastverteilung zwischen den Servern erzielt. Der Greedy-Algorithmus wird auch als Greed-Algorithmus bezeichnet (Greed = Gier, Greedy = gierig). Der Algorithmus wählt immer die gegenwärtig am besten erscheinende Problemlösung, das heißt er entscheidet sich in einem gewissen Sinne für die optimale lokale Lösung und berücksichtigt allgemeine Optimierungsmöglichkeiten nicht.According to a preferred embodiment of the present invention, the matrices are assigned to the servers by a greedy algorithm. This minimizes load differences between the servers and, in other words, achieves even load sharing between the servers. The greedy algorithm is also referred to as the greed algorithm (Greed = greed, greedy = greedy). The algorithm always chooses the currently best-looking problem solution, that is, it decides in a sense for the optimal local solution and does not consider general optimization possibilities.
Im Folgenden wird der Schritt der Zuordnung von Matrizen an Server über Greedy-Algorithmen, um Lastunterschiede zwischen den Servern zu minimieren, anhand von einem konkreten Beispiel veranschaulicht. Es wird angenommen, dass es die sechs Schlüsselwerte Schlüssel1, Schlüssel2, Schlüssel3, Schlüssel4, Schlüssel5 und Schlüssel6 gibt, wobei Schlüssel1 10 mal, Schlüssel2 20 mal, Schlüssel3 30 mal, Schlüssel4 40 mal, Schlüssels 50 mal und Schlüssels 60 mal durchsucht wird; die Anzahl der Audio-Fingerabdrücke auf Schlüssel1 ist 10, die Anzahl der Audio-Fingerabdrücke auf Schlüssel2 ist 20, die Anzahl der Audio-Fingerabdrücke auf Schlüssel3 ist 30, die Anzahl der Audio-Fingerabdrücke auf Schlüssel4 ist 40, die Anzahl der Audio-Fingerabdrücke auf Schlüssels ist 50 und die Anzahl der Audio-Fingerabdrücke auf Schlüssels ist 60. Durch das Bilden des Produkts aus Suchhäufigkeit und Anzahl der Audio-Fingerabdrücke werden die Suchzeiten in der Matrix berechnet. Dabei wird davon ausgegangen, dass Schlüssel1 und der Audio-Fingerabdruck für Schlüssel1 die erste Matrix bilden, Schlüssel2 und der Audio-Fingerabdruck für Schlüssel2 die zweite Matrix bilden, Schlüssel3 und der Audio-Fingerabdruck für Schlüssel3 die dritte Matrix bilden, Schlüssel4 und der Audio-Fingerabdruck für Schlüssel4 die vierte Matrix bilden, Schlüssel5 und der Audio-Fingerabdruck für Schlüssel5 die fünfte Matrix bilden und Schlüssel6 und der Audio-Fingerabdruck für Schlüssel6 die sechste Matrix bilden. Somit beträgt die Suchzeit für die erste Matrix 100, die Suchzeit für die zweite Matrix 400, die Suchzeit für die dritte Matrix 900, die Suchzeit für die vierte Matrix 1600, die Suchzeit für die fünfte Matrix 2500 und die Suchzeit für die sechste Matrix 3600. Wenn es nur drei Server gibt, werden nach dem Greedy-Algorithmus die erste Matrix mit der kürzesten Suchzeit und die sechste Matrix mit der längsten Suchzeit dem ersten Server zugeordnet, die zweite Matrix mit der zweit-schnellsten Suchzeit und die fünfte Matrix mit der zweit-langsamsten Suchzeit werden dem zweiten Server zugeordnet und die dritte und vierte Matrix mit mittleren Suchzeiten werden dem dritten Server zugeordnet.In the following, the step of mapping matrices to servers via greedy algorithms to minimize load differences between servers is illustrated by a concrete example. It is assumed that there are the six key values key 1 , key 2 , key 3 , Key 4 , key 5 and key 6 , key 1 being searched 10 times, key 2 20 times, key 3 30 times, key 4 40 times, key 50 times and key 60 times; the number of audio fingerprints on key 1 is 10, the number of audio fingerprints on key 2 is 20, the number of audio fingerprints on key 3 is 30, the number of audio fingerprints on key 4 is 40, the number the audio fingerprint on key is 50 and the number of audio fingerprints on key is 60. Forming the product of the search frequency and the number of audio fingerprints calculates the search times in the matrix. It is assumed that key 1 and the audio fingerprint for key 1 form the first matrix, key 2 and the audio fingerprint for key 2 form the second matrix, key 3 and the audio fingerprint for key 3 form the third matrix Key 4 and the audio fingerprint for key 4 form the fourth matrix, key 5 and the audio fingerprint for key 5 form the fifth matrix and key 6 and the audio fingerprint for key 6 form the sixth matrix. Thus, the search time for the first matrix 100, the search time for the second matrix 400, the search time for the third matrix 900, the search time for the fourth matrix 1600, the search time for the fifth matrix 2500 and the search time for the sixth matrix 3600. If there are only three servers, according to the greedy algorithm, the first matrix with the shortest search time and the sixth matrix with the longest search time are assigned to the first server, the second matrix with the second fastest search time and the fifth matrix with the second The slowest seek time is assigned to the second server, and the third and fourth middle search time matrices are assigned to the third server.
Wenn es nur zwei Servern gibt, werden nach dem Greedy-Algorithmus die erste, fünfte und sechste Matrix dem ersten Server und die zweite, dritte und vierte Matrix dem zweiten Server zugeordnet. Somit werden Lastunterschiede zwischen den Servern durch den Greedy-Algorithmus minimiert. Die vorliegende Erfindung wird unter Bezugnahme auf eine spezielle Ausführungsform beschrieben. Diese dient jedoch nur der Erläuterung und ist nicht als Einschränkung der Erfindung zu verstehen. Diese Ausführungsform kann beliebig verändert, ergänzt und/oder gekürzt werden, ohne vom Umfang dieser Erfindung abzuweichen. Beispielsweise kann es bei praktischen Anwendung zu Suchzeiten von zehn Millionen oder Hunderten von Millionen kommen. Die obige Ausführungsform dient lediglich dem Zweck, die ganze Konzeption der vorliegenden Erfindung zu beschreiben und ist keine Beschränkung auf eine bestimmte Menge.If there are only two servers, after the greedy algorithm, the first, fifth, and sixth matrices are mapped to the first server and the second, third, and fourth matrices are mapped to the second server. Thus, load differences between the servers are minimized by the greedy algorithm. The present invention will be described with reference to a specific embodiment. However, this is only illustrative and is not to be construed as limiting the invention. This embodiment may be arbitrarily changed, supplemented and / or shortened without departing from the scope of this invention. For example, search times of tens of millions or hundreds of millions may come in handy use. The above embodiment is merely for the purpose of describing the whole concept of the present invention and is not limited to a certain amount.
Es versteht sich, dass die vorliegende Erfindung auf keine bestimmten Algorithmen beschränkt ist, obwohl oben ein Verfahren zur gleichmäßigen Lastverteilung beschrieben wird. Jede bestehende oder zukünftig zu untersuchende Methode eine gleichmäßige Lastverteilung zwischen Servern zu erreichen, fällt in den beanspruchten Schutzbereich dieser Erfindung.It will be understood that the present invention is not limited to any particular algorithms, although a method of uniform load sharing is described above. Any existing or future method of achieving uniform load sharing between servers falls within the claimed scope of this invention.
Die gleichmäßige Lastverteilung kann statisch und auch dynamisch konzipiert werden. Die statische Lastverteilung bewahrt die Korrespondenzbeziehung zwischen den einzelnen Servern und der Matrix, nachdem zunächst die Last der einzelnen Matrizen bestimmt und danach die Last auf die Server verteilt wird. Das dynamische Gleichgewicht bezieht sich auf ein bestimmtes Zeitintervall, die Matrizen aller neu berechneten Lasten und die erneute Zuordnung an den entsprechenden Server. Durch eine dynamische Lastverteilung bleibt der Server langfristig höchst effizient. Bei der dynamischen Lastverteilung werden die Lasten der einzelnen Matrizen neu berechnet und den entsprechenden Servern in einem bestimmten Zeitintervall erneut zugeordnet. Die dynamische Lastverteilung ermöglicht den Servern einen langfristig hohen Wirkungsgrad.The even load distribution can be designed statically and dynamically. Static load balancing preserves the correspondence relationship between the individual servers and the matrix, after first determining the load of the individual matrices and then distributing the load to the servers. The dynamic equilibrium refers to a specific time interval, the matrices of all newly calculated loads, and reassignment to the appropriate server. Dynamic load balancing keeps the server highly efficient over the long term. Dynamic load balancing recalculates the loads of each die and reassigns them to the appropriate servers at a specific time interval. The dynamic load distribution allows the servers a long-term high efficiency.
Entsprechend der technischen Lösung des Verfahrens zur Speicherung von Audio-Fingerabdrücken gemäß dieser Erfindung wird die konkrete Ausführungsform wie folgt umgesetzt:
- (1) Sammeln möglichst vieler Audiodaten unter Verwendung der Audio-Fingerabdruck-Daten, um so eine indizierte Audio-Fingerabdruck-Datenbank zu erstellen, Klassifizierung nach Schlüsselwert und Speichern auf einer Festplatte, wobei jeder Schlüsselwert in einer Datei gespeichert wird, um so entsprechend der
3 insgesamt n Matrizen zu erhalten. - (2) Es wird angenommen, dass es k Server gibt, nämlich Knoten1, Knoten2, ..., Knotenk sowie die Ausgangsdaten. Das heißt, dass die Summe der Audio-Fingerabdrücke auf jedem Server numi = 0 ist. Es wird angenommen, dass es n Schlüssel und die Daten der Schlüssel gibt, d. h. die Summe der Audio-Fingerabdrücke der Schlüssel ist valueNumi. Ablegen der Datenmenge von Schlüssel1, Schlüssel2, ..., Schlüsselk in Knoten1, Knoten2, ..., Knotenk und aktualisieren der Datenmenge auf jedem Server bis numi = valueNumi; dann jedes Mal für Schlüsselj (j = k + 1, ..., n) das kleinste numi wählen, Knoteni zuweisen und aktualisieren bis numi = numi + valueNumj; und schließlich eine Hash-Tabelle (wie in
4 gezeigt) erstellen, indem man Schlüsseli als Schlüsselwert verwendet und dem Server-Knotenj als Datenwert zuweist; dadurch kann man schnell den Server anhand des Schlüsselwertes finden, auf dem sich ein Audio-Fingerabdruck befindet. - (3) Initialisieren der Frequenz von Schlüsseli bis Schlüssel-fi = 0, i = 1, ..., n; Audio-Fingerabdrücke und den Schlüsselwert nach Eingang der Suchanfrage für die Audio-Fingerabdrücke extrahieren und als Featurei, i = 1, ..., m abspeichern, wenn angenommen wird, dass es insgesamt m Matrizen gibt; zuerst den Server-Knoten Knotenk für den Schlüsselwert von jedem (als Schlüsseli aufgezeichnetem) Featurei in der Hash-Tabelle in Schritt (2) finden, dann das Featurei zur Suche an Knotenk senden, Zusammenfassung nach Erhalt der Mittelwerte aller Featurei, abschließende Analyse durch den Suchalgorithmus, Ausgabe des Endergebnisses und aktualisieren der Frequenz Schlüssel-fi von Schlüsseli mittels Suchzeit des Schlüsselwertes.
- (4) Berechnen der Suchhäufigkeit des Schlüsselwerts von Schlüsseli in jeder Matrix; Bestimmen der Anzahl von Audio-Fingerabdrücken in jeder Matrix und Bilden des Produkts aus Suchhäufigkeit und Anzahl von Audio-Fingerabdrücken, um so die Suchzeiten in jeder Matrix zu erhalten. Nachdem das System für eine bestimmte Zeit gelaufen ist, wird totali = valueNumi·Schlüssel-fi für die Matrizen mit dem zugehörigen Schlüsseli-Wert zulässig. Damit werden die Suchzeiten für jede Matrix berechnet. Danach werden die Matrizen mit dem zugehörigen SchlüsslWert den entsprechenden Servern gemäß Greedy-Algorithmus und totali zugeordnet, um Lastunterschiede zwischen den Servern zu minimieren.
- (1) Collecting as much audio data as possible using the audio fingerprint data to create an indexed audio fingerprint database, classifying by key value and storing on a hard disk, each key value being stored in a file in accordance with the
3 to get a total of n matrices. - (2) It is assumed that there are k servers, namely, node 1 , node 2 , ..., node k, and the output data. That is, the sum of the audio fingerprints on each server is num i = 0. It is assumed that there are n keys and the data of the keys, ie the sum of the audio fingerprints of the keys is valueNum i . Store the amount of data from key 1 , key 2 , ..., key k in node 1 , node 2 , ..., node k and update the amount of data on each server to num i = valueNum i ; then each time for key j (j = k + 1, ..., n) select the smallest num i , assign node i and update to num i = num i + valueNum j ; and finally a hash table (as in
4 shown) by using key i as a key value and assigning j to the server node as a data value; this makes it easy to find the server based on the key value on which an audio fingerprint is located. - (3) initialize the frequency from key i to key f i = 0, i = 1, ..., n; Audio fingerprints and the key value after receipt of the Extract the search query for the audio fingerprints and store as a feature i , i = 1, ..., m if it is assumed that there are m matrices in total; first node (i as a key recorded) i found in the hash table in step (2), then i send the server node k for the key value of each feature, the feature to search at node k, Summary of receiving the mean values of all feature i , final analysis by the search algorithm, output of the final result and update the frequency key-f i of key i by means of search time of the key value.
- (4) calculating the search frequency of the key value of key i in each matrix; Determining the number of audio fingerprints in each matrix and forming the product of the search frequency and the number of audio fingerprints so as to obtain the search times in each matrix. After the system has run for a certain time, the total i = valueNum i * key-f i is allowed for the matrices with the associated key i value. This calculates the search times for each matrix. Thereafter, the matrices with the associated key value are assigned to the respective servers according to the greedy algorithm and total i to minimize load differences between the servers.
Schritt
Schritt
Schritt
Wie in
Entsprechend der technischen Lösung eines Verfahrens zur Suche von Audio-Fingerabdrücken gemäß dieser Erfindung wird die konkrete Ausführungsform wie folgt umgesetzt:
- (5) muss eine Audioaufzeichnung nach dem Eingang einer Suchanfrage gesucht werden, werden die gesuchten Audio-Fingerabdrücke und die gesuchten Schlüsselwerte der gesuchten Audio-Fingerabdrücke von den gesuchten Audioaufzeichnung extrahiert, die entsprechenden Audio-Fingerabdrücke und Schlüsselwerte auf einem Server anhand der gesuchten Audio-Fingerabdrücke und die gesuchten Schlüsselwerte der gesuchten Audio-Fingerabdrücke gefunden und als Featurei, i = 1, ..., m aufgezeichnet, wenn angenommen wird, dass es m Matrizen gibt, d. h. es gibt m Schlüsselwerte und Audio-Fingerabdrücke, die den Schlüsselwerten entsprechen.
- (6) den Server-Knoten Knotenk für den Schlüsselwert von jedem (als Schlüsseli aufgezeichnetem) Featurei in der kleinen Hash-Tabelle in Schritt (
2 ) finden, dann das Featurei zur Suche an Knotenk senden, Zusammenfassung nach Erhalt der Mittelwerte aller Featurei, abschließende Analyse durch den Suchalgorithmus, Ausgabe des Endergebnisses und Finden der Audioinformationen in der gesuchten Audioaufzeichnung.
- (5) If an audio recording has to be searched for after a search request has been received, the sought-after audio fingerprints and the searched key-values of the sought-after audio fingerprints are extracted from the searched audio recordings, the corresponding audio fingerprints and key values are searched for on the server. Found fingerprints and the searched key-values of the sought-after audio fingerprints and recorded as a feature i , i = 1, ..., m, assuming that there are m matrices, ie there are m key-values and audio fingerprints corresponding to the key-values correspond.
- (6) the server node node k for the key value of each feature i (recorded as key i ) in the small hash table in step (
2 ), then send the feature i to node k for search, summary after receiving the mean values of all the features i , final analysis by the search algorithm, output of the final result and finding the audio information in the searched audio record.
Die Vorrichtung zum Konstruieren einer Audio-Fingerabdruck-Datenbank gemäß der vorliegenden Erfindung umfasst ferner: ein Berechnungsmodul
Wie in
Claims (5)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510079596.3 | 2015-02-13 | ||
CN201510079596.3A CN104636474A (en) | 2015-02-13 | 2015-02-13 | Method and equipment for establishment of audio fingerprint database and method and equipment for retrieval of audio fingerprints |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102015015827A1 true DE102015015827A1 (en) | 2016-08-18 |
Family
ID=53215220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102015015827.9A Withdrawn DE102015015827A1 (en) | 2015-02-13 | 2015-12-07 | Method and apparatus for constructing an audio fingerprint database and searching for an audio fingerprint |
Country Status (3)
Country | Link |
---|---|
KR (2) | KR20160100218A (en) |
CN (1) | CN104636474A (en) |
DE (1) | DE102015015827A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138541B (en) * | 2015-07-08 | 2018-02-06 | 广州酷狗计算机科技有限公司 | The method and apparatus of audio-frequency fingerprint matching inquiry |
CN105184610A (en) * | 2015-09-02 | 2015-12-23 | 王磊 | Real-time mobile advertisement synchronous putting method and device based on audio fingerprints |
CN105933761B (en) * | 2016-06-24 | 2019-02-26 | 中译语通科技股份有限公司 | A kind of novel audio-visual program commercial throwing broadcasting method |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777075B (en) * | 2010-02-05 | 2015-02-11 | 上海全土豆网络科技有限公司 | Method for searching parallel audio fingerprint |
US9992745B2 (en) * | 2011-11-01 | 2018-06-05 | Qualcomm Incorporated | Extraction and analysis of buffered audio data using multiple codec rates each greater than a low-power processor rate |
CN103324577B (en) * | 2013-06-08 | 2016-04-06 | 北京航空航天大学 | Based on the extensive itemize file allocation system minimizing IO access conflict and file itemize |
-
2015
- 2015-02-13 CN CN201510079596.3A patent/CN104636474A/en active Pending
- 2015-12-07 DE DE102015015827.9A patent/DE102015015827A1/en not_active Withdrawn
- 2015-12-17 KR KR1020150180948A patent/KR20160100218A/en unknown
-
2016
- 2016-01-07 KR KR1020160001876A patent/KR20160100224A/en unknown
Also Published As
Publication number | Publication date |
---|---|
KR20160100224A (en) | 2016-08-23 |
CN104636474A (en) | 2015-05-20 |
KR20160100218A (en) | 2016-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE602004011890T2 (en) | Method for redistributing objects to arithmetic units | |
DE112012005533B4 (en) | Supporting query and a query | |
DE102012216029B4 (en) | A SCALABLE ADAPTABLE MAP REDUCE FRAMEWORK WITH DISTRIBUTED DATA | |
Nagpal et al. | Comparative study of density based clustering algorithms | |
DE202015009874U1 (en) | Implementation of semi-structured data as a first class database element | |
DE102008027605B4 (en) | System and method for computer-based analysis of large amounts of data | |
DE102016105526A1 (en) | Fast multi-layer indexing with dynamic update support | |
DE102016105472A1 (en) | Storage level distribution and block-level parallel allocation in file systems | |
DE102013215009A1 (en) | Method and system for optimizing data transmission | |
DE60118973T2 (en) | METHOD FOR INQUIRING A STRUCTURE OF COMPRESSED DATA | |
DE112018004222T5 (en) | Database division | |
DE112021001986T5 (en) | Method and system for processing data records | |
DE202017107393U1 (en) | Predicting a search engine map signal value | |
WO2018095547A1 (en) | Method and system for anonymising data stocks | |
DE112020000545T5 (en) | DEEP FOREST MODEL DEVELOPMENT AND TRAINING | |
DE112018002955T5 (en) | COGNITIVE FILE AND OBJECT MANAGEMENT FOR DISTRIBUTED STORAGE ENVIRONMENTS | |
DE102015015827A1 (en) | Method and apparatus for constructing an audio fingerprint database and searching for an audio fingerprint | |
DE112018001290T5 (en) | Method for estimating the erasability of data objects | |
DE112012006412T5 (en) | Distributed data search system, distributed data search method, and management computer | |
DE112020002892T5 (en) | ACTIVE LEARNING FOR DATA MATCHING | |
Feldkamp et al. | Online analysis of simulation data with stream-based data mining | |
DE112016003598T5 (en) | Simultaneous mass processing of tree-based data structures | |
DE112021003274T5 (en) | RESOURCE ALLOCATION TO OPTIMIZE HYPERPARAMETERS IN LARGE DEEP LEARNING WORKLOADS | |
DE112018005620T5 (en) | ORDER MANAGEMENT IN A DATA PROCESSING SYSTEM | |
DE112020004801T5 (en) | INTELLIGENT DATA POOL |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0017300000 Ipc: G06F0016000000 |
|
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |