AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein C# Musikanalyse - Was sagen mir die Werte?
Thema durchsuchen
Ansicht
Themen-Optionen

Musikanalyse - Was sagen mir die Werte?

Ein Thema von Mithrandir · begonnen am 25. Okt 2010 · letzter Beitrag vom 19. Nov 2010
Antwort Antwort
Seite 2 von 3     12 3      
TurboMartin

Registriert seit: 13. Feb 2006
Ort: Bad Honnef
765 Beiträge
 
Turbo Delphi für Win32
 
#11

AW: Musikanalyse - Was sagen mir die Werte?

  Alt 27. Okt 2010, 21:02
Vielleicht ist für dich noch der mufin player eine hilfe für dich. Auf welcher Technik das genau funktioniert weiß ich nicht genau, steht aber glaube ich ein wenig in den FAQ, entwickelt wurde die Technik, wenn ich mich nicht stark täusche von einem Fraunhofer.
Tomorrow will be cancelled due to lack of interest.

  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#12

AW: Musikanalyse - Was sagen mir die Werte?

  Alt 27. Okt 2010, 21:13
Danke, dass Ding kenne ich schon. Es nutzt die AudioID-Technik des Frauenhofer Instituts. Und wirklich herausfinden, wie es funktioniert, war mich bislang nicht möglich. Dennoch danke für den Hinweis.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#13

AW: Musikanalyse - Was sagen mir die Werte?

  Alt 9. Nov 2010, 19:39
Hmm - irgendwie sind meine Mathekenntnisse arg beschränkt.

Basierend auf dieser Doktorarbeit (pdf) ist Mirage entstanden. Mirage ist ein Banshee-Plugin, was Lieder auf ihre Ähnlichkeit zueinander untersucht und daraus Playlisten erstellen kann.

Zitat:
Zitat:
Mirage is an implementation of the latest research in automatic playlist generation and music similarity. Mirage analyzes your music collection and computes acoustic similarity models for each song. After your music collection has been analyzed, Mirage is able to automatically generate playlists of similar music.

Mirage uses the latest artificial intelligence/music information retrieval techniques to compute a similarity model for each song. This process includes the computation of

* an FFT,
* the Mel Cepstrum Frequency Coefficients for psycho-acoustic modeling
* and a multidimensional Gaussian Model to finally represent a song with a timbre/similarity model.

After your whole music collection is analyzed each song has a similarity/timbre model attached to it. You can then start generating playlists by selecting a song (the seed song) you want the playlist to start with and Mirage searches all its models for similar songs. To do so the Gaussian models computed in the previous step are compared using the an optimized Kullback Leibler divergence.
Eigentlich genau das, was ich brauche. Nur stelle ich mich etwas dämlich bei der Umsetzung an. Der Quelltext ist für Mono geschrieben, in C#. Eigentlich perfekt, nur wird an vielen Stellen unsafe-Code genutzt, den ich nicht 1:1 übernehmen kann, ohne eine Fehlermeldung zu bekommen, dass sich der Array-Index außerhalb des gültigen Bereichs befindet. Es ist also noch einiges zu tun. Wer Ideen hat, darf sich gerne äußern. Ich stecke momentan in einer Sackgasse... Im Anhang findet sich mein aktueller Stand der Dinge...

Das Projekt muss kompilliert werden, bevor es genutzt werden kann, da ihr im Quelltext die Pfade zu zwei Musikdateien angeben müsst - njoar, und dann braucht ihr zwischen 2 und 3 Minuten Geduld, um einen Wert zu bekommen, der irgendwie nixsagend ist...
Angehängte Dateien
Dateityp: zip AdvancedAudioAnalysis.zip (1,24 MB, 15x aufgerufen)
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#14

AW: Musikanalyse - Was sagen mir die Werte?

  Alt 18. Nov 2010, 19:57
Yes!

*hust*



Meine Implementation des MIRAGE-Plugins ist fertig. Das Testprogramm ist kompiliert und verlangt die Auswahl zweier Lieder. Das Programm unterstützt noch kein Threading, daher friert die Anwendung ein. Der ganze Vorgang dauert auf meinem Core2Duo mit 1.66 Ghz nur 5 - 10 Sekunden.

Wichtig: Das Lied muss länger als 2 Minuten sein. Alles andere wird noch nicht geprüft.

Als Ergebnis bekommt ihr einen Wert. Je kleiner der Wert ist, desto näher sind sich die beiden Lieder. Zwischen 0 und 10 bedeutet, dass sich die Lieder recht ähnlich sind. Werte größer >50 stehen für komplett unterschiedliche Lieder.

Angehängt hab ich euch das kompillierte .NET-Projekt sowie den Visual Studio 2010 Source. Es wird .NET Version 4 vorausgesetzt.

//Edit: Nochmal zwei Beispiele für euch:


Hurts - Wonderful Life vs. B.O.B - Airplanes

erstes_beispiel.png


Jeff Buckley - Hallelujah vs. Megadeth - The Punishment Due

zweites_beispiel.png
Angehängte Dateien
Dateityp: zip SmallTune Mood Test Source.zip (1,41 MB, 25x aufgerufen)
Dateityp: zip SmallTune Mood Test Bin.zip (472,5 KB, 19x aufgerufen)
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell

Geändert von Mithrandir (18. Nov 2010 um 20:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#15

AW: Musikanalyse - Was sagen mir die Werte?

  Alt 18. Nov 2010, 20:30
Stichprobenartig sieht das gut aus, zumindest wird Ähnlichkeit gut erkannt.

Manche scheinen aber zu ähnlich bewertet zu werden, obwohl sie vom Stil relativ unterschiedlich sind:

Wert: 9,349607
Fixing my Brain
Listen To Me

Wert: 7,148081
Overreacting
Listen To Me

Geändert von BUG (18. Nov 2010 um 20:37 Uhr)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#16

AW: Musikanalyse - Was sagen mir die Werte?

  Alt 18. Nov 2010, 20:30
Hab's gerade mal an ein paar Liedern getestet. Also grob scheint die Einschätzung des Programms meist zu stimmen. Allerdings hatten bei mir zwei verschiedene Lieder einen Albums einen geringeren Abstand (2,irgendwas) als zwei mal das selbe Lied von einmal Original und einmal Remastered (5,irgendwas).
Aber solange man die Werte mit Schwellenwerten von 5-10 vergleicht, denke ich, ist der Algorithmus durchaus brauchbar. Wenn ich mich nicht irre, geht es dir ja eh nur um eine grobe Vorsortierung, da die ursprüngliche Idee ja war, dass das Programm aus dem Nutzerverhalten lernt.
Wobei es natürlich auch bei recht schnellen 5-6 Sekunden, die der Algorithmus braucht, nicht praktikabel ist, eine komplette Musiksammlung auf diese Weise zu scannen. Da müsste man sich wohl noch irgendeine Optimierungsstrategie überlegen (z.B. nur stichprobenartig zu scannen und den Rest zu interpolieren, also z.B. wenn bekannt ist: A ist ähnlich zu B, und B ist ähnlich zu C; dann ist A vermutlich auch ein bisschen ähnlich zu C. Aber wahrscheinlich hast du dir dazu auch schon Gedanken gemacht...
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#17

AW: Musikanalyse - Was sagen mir die Werte?

  Alt 18. Nov 2010, 21:34
Aber wahrscheinlich hast du dir dazu auch schon Gedanken gemacht...
Wenn man das runterrechnet, braucht man pro Lied 3 Sekunden. Macht bei 100 Liedern 5 Minuten, bei 1000 Liedern 50 Minuten, bei 10.000 Liedern 500 Minuten, vielleicht eher 600, was 10 Stunden entspricht.
Das ist etwas, das kann man imho im Hintergrund berechnen lassen, das sollte nicht das Problem sein. Es wird eine Trefferwahrscheinlichkeit von 75 - 80% angegeben. Die Differenzen können recht schnell berechnet werden. Also alles im machbaren Bereich.

BUG, das Lied ist natürlich sehr - speziell. Ich werde mir das mal ansehen, vielleicht kann man da noch was optimieren.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#18

AW: Musikanalyse - Was sagen mir die Werte?

  Alt 18. Nov 2010, 22:21
Aber wahrscheinlich hast du dir dazu auch schon Gedanken gemacht...
Wenn man das runterrechnet, braucht man pro Lied 3 Sekunden. Macht bei 100 Liedern 5 Minuten, bei 1000 Liedern 50 Minuten, bei 10.000 Liedern 500 Minuten, vielleicht eher 600, was 10 Stunden entspricht.
Ich war davon ausgegangen, dass immer zwei Dateien miteinander verglichen werden. In diesem Fall wäre die Laufzeit ja quadratisch zur Anzahl der Dateien.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#19

AW: Musikanalyse - Was sagen mir die Werte?

  Alt 18. Nov 2010, 22:26
Du musst schon bei der Zeitberechnung bedenken, dass du immer paarweise Vergleiche hast . Das ist dann O(n*(n+1)/2), und bei 100 Liedern schon 3sek*100*(101/2) = 15150 sek = 252,5 min ~= 4,21 std.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#20

AW: Musikanalyse - Was sagen mir die Werte?

  Alt 19. Nov 2010, 10:37
Du musst schon bei der Zeitberechnung bedenken, dass du immer paarweise Vergleiche hast . Das ist dann O(n*(n+1)/2), und bei 100 Liedern schon 3sek*100*(101/2) = 15150 sek = 252,5 min ~= 4,21 std.
Nicht unbedingt, wenn man weiß, dass Lied1 und Lied2 in derselben Gruppe liegen, dann kann man Lied2 auslassen bei der Überprüfung. Dann ist nurnoch ein Lied aus jeder Klasse zu prüfen. Das können zwar immernoch 100 verschiedene sein, ist aber z.b. deutlich besser als 1000.
Damit liegt der Zeitgewinn bei einigen wenigen Liedern natürlich bei 0. Je mehr du aber hast, desto mehr Zeit gewinnst du gegenüber einem Vergleich mit allen Liedern.
Benjamin
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz