![]() |
Grundsätzliche Funktionsweise von Musikerkennungssoftware
Hallo zusammen,
ich interessiere mich für die grundsätzliche Funktionsweise von Musikerkennungssoftware. Seit längerem gibt es ja schon Dienste, die einem den Titel/Interpreten eines gerade laufenden Musikstücks per SMS auf's Handy schicken. So weit ich weiß wird hierbei für jedes Musikstück mittels FFT ein "Fingerabdruck" erstellt. Bei der Aufnahme mit dem Handy wird nun auch eine FFT durchgeführt und das aktuelle Frequenzspektrum mit den Spektren in den Fingerabdrücken verglichen. So weit so gut, aber wie ist es möglich diese Fingerabdrücke so schnell zu durchsuchen? Ich denke mal, dass das Signal vom Handy mindestens alle 10ms transformiert werden muss um eine sichere Erkennung zu ermöglichen. Also müssten auch alle 10ms sämtliche Fingerabdrücke durchsucht werden, wenn man eine Sammlung von mehreren 10.000 Abdrücken ( a ca. 20 kB ) hat könnte das schon sehr zeitkritisch werden, oder? :gruebel: |
Re: Grundsätzliche Funktionsweise von Musikerkennungssoftwar
Keine DSP-Freaks unter den DPlern :?:
|
Re: Grundsätzliche Funktionsweise von Musikerkennungssoftwar
Fingerabdruecke sind wahrscheinlich MD5-Pruefsummen oder aehnliches.
Man bekommt also einen String, der gesucht werden muss. Was da moeglich ist zeigt Google. In deinem Modell bekommt man alle 10 ms einen laengeren String. Das heisst aber keineswegs das die Suche von vorne beginnen muss. Es bedeutet nur das das erste Ergebnis der Suche nach dem ersten Paket der Suche nach dem zweiten Paket innerhalb 10 ms verfuettert werden muss. Vermutlich ist es aber viel einfacher und es wird eine Mindestzeit festgelegt, die ausreichend lang ist das Stueck mit grosser Wahrscheinlichkeit eindeutig zu erkennen. |
Re: Grundsätzliche Funktionsweise von Musikerkennungssoftwar
Zitat:
Im Idealfall sollte es jedoch möglich sein, dass der Titel erkannt wird wenn nur einen Bruchteil der Spektren des Stücks übereinstimmen (bzw. ähnlich sind), damit man nach spätestens ca. 10s ein Ergebnis erhält. |
Re: Grundsätzliche Funktionsweise von Musikerkennungssoftwar
Warum eigentlich bedienst du nicht der Google-Suche? "Musikstuecke erkennen" bringt z. B. dies
![]() Mit dem Stichwort "AudioID" kommt man dann weiter. |
Re: Grundsätzliche Funktionsweise von Musikerkennungssoftwar
Auf der Seite war ich schon, wie ein solcher Fingerabdruck genau aufgebaut ist wird hier jedoch auch nicht verraten :(
Zitat:
|
Re: Grundsätzliche Funktionsweise von Musikerkennungssoftwar
Kann es nicht vielleicht auch sein, dass das eine Art kostenpflichtige Information ist?
MfG Tonic1024 |
Re: Grundsätzliche Funktionsweise von Musikerkennungssoftwar
Das ist ja genau der Grund warum ich hier danach frage :wink:
|
Re: Grundsätzliche Funktionsweise von Musikerkennungssoftwar
MD5 oder ähnliche Hash-Algorithmen werden wohl sehr untauglich für so eine Aufgabe sein, da sie eben nur exakt "bitgenaue" Sounds finden können. Diese Algos. sind absolut ungeeignet eben auch weil sie für ganz andere Aufgaben konstruiert wurden.
Ich würde erstmal darüber nachdenken wie man zwei Sounds vergleichen kann. Zur Zeit fällt mir dafür nur eine FFT ein. Das Problem mit FFT's ist die Normalisierung der Sounds, d.h. damit die FFT's funktionieren müssen die Sounds in ihrer zeitlichen Samplelänge alle gleich normiert wurden sein. Schön, aber diese virtuelle Normierung bringt nun die Frage hoch, welche? Soundabschnitte man per FFT auswerten sollte. Diese Methode wäre wohl die allereinfachste Form und wird wohl nicht so gut funktionieren können. Vergleichbar mit den Soundvergleichern der vorletzten Generation die ebenfalls absolute Fehlaussagen gemacht hatten, sprich ein Lied von Heino konnte schon mal als Technobeat erkannt werden. Die neueren Vergleicher arbeiten auch mit FFT's aber mit vielen zeitlich geshifteten FFT's. Über deren Ausgabe wird wiederum eine FFT gemacht und so hat man dann im grunde genommen das Frequenzspektrum vom zeitlichen Inhalt eines Liedes erzeugt, speich man hat zb. den Beat=Melodie des Liedes in ein Spektrum umgewandelt. Nun fehlt noch der intelligente Vergleich der Ähnlichkeit, NICHT Gleichheit, der einzelnen Lied-Spektren. Denn Gleichheit wirst du nur erreichen können wenn die beiden Spektren vom exakt gleichen Input stammen. Aber exakt dies wird niemals der Fall sein. Also brauchst du eine Ähnlichkeitssuche und die Spektren aller Sounds in deiner Datenbank sollten nach diesem Kriterium sortiert sein. Die Suche in dieser Datenbank ist dann eine einfache binäre Suche die partitiell die einzelnen Spektren vergleicht und so während der Suche sich dem immer ähnlicherem Spektrum annähern wird. Gruß Hagen |
Re: Grundsätzliche Funktionsweise von Musikerkennungssoftwar
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz