Ich habe einige Wochen lang experimentiert, um einen Weg zu finden, ähnliche Songs in einer Bibliothek mit verschiedenen Musikrichtungen zu finden.
Mein erster Versuch war, Features wie Tempo oder wie viel Bass in Songs vorhanden sind, um Gruppen zu bilden, aber ich bin mit diesem Ansatz (Volume Changes Based Beat Detection) nicht weit gekommen, da ungefähr 20% der Songs Beat nicht gezählt werden müssen immer, manchmal 1/2 oder 1/3 von ihnen und ich konnte das nicht umsetzen.
Nach einigen Wochen fehlgeschlagenen Versuchs kam mir eine neue Idee, die später in diesem Beitrag beschrieben wird. Einfach ausgedrückt funktioniert es, indem Sie Spectrum Samples of Files nehmen und so etwas wie ein "Average Spectrum" von Files erstellen, um sie zu vergleichen. Die Idee dahinter war, dass Hardstyle zum Beispiel viel mehr Bass als durchschnittliche Rockmusik hat.
- Datei 1: Alle FFT-Spektren der Datei aufnehmen (2048 Sample Size atm, Amplituden-Log. Skaliert)
- Summiere alle Spektrum-Arrays und nimm Durchschnittswerte von jedem Bin
- Machen Sie dasselbe mit einigen anderen Dateien und speichern Sie alle Ergebnisse
- Liste der FFT-Wertunterschiede zwischen Datei 1 und anderen Dateien erstellen
- Ermitteln Sie den Durchschnitt der Unterschiede zwischen Datei 1 und Datei X.
- Nach diesen Durchschnittswerten aufsteigend sortieren
- Songs mit dem niedrigsten "Differenzwert" gelten als ähnlich.
Können mir einige von Ihnen, die über gute Kenntnisse verfügen, sagen, ob dies der richtige / gute Weg wäre, meine Idee umzusetzen?