Donnerstag, 8. Oktober 2009

(zu) langer MIREX-Endspurt

Im September habe ich wie eine Wilde an meinem Melodie-Extraktions-Algo programmiert. Das war so überhaupt nicht geplant. Ich war nämlich sicher, dass ich den Algo ohne große Änderungen bei MIREX (Music Information Retrieval Evaluation eXchange) einreichen kann. Als ich dann aber die Testdateien letztendlich mal durchlaufen ließ (ich musste erst ein paar Matlab-Skripte nach C++ portieren), habe ich ganz große Augen gemacht. Das Ergebnis war nicht viel besser als mit der letzten MIREX-Version. Dabei sollte die neue Timbre-Extraktion doch so viel Gutes bewirken. Aber es war sogar so, dass ein ganz schlimmer Bug, der negative Timbre-Magnituden und skurile Frequenzen produzierte, mein Ergebnis noch um 1 Prozent verbesserte.

Alles Parameter-Geschraube half nichts, der Algorithmus wurde nicht besser. Irgendwann kam ich auf den Grund. Das Timbre-Extraktion verbessert wirklich das Tracking und die Magnituden-Bestimmung der Töne. Allerdings wirkt sich die Verbesserung so richtig nur bei den schwächeren Tönen aus. Letztendlich sind das aber in den vielen Fällen die Töne in der Begleitmusik, welche vorher recht schnell im Nirvana verschwanden - nun aber öfter in der Melodie auftauchten. Das ist natürlich nicht gut.

In letzter Minute musste ich noch eine Unterscheidung zwischen Melodiestimme und Begleitung schreiben. Es ist klar, dass da in zwei Wochen nichts Weltbewegendes rausgekommen ist. Aber zumindest auf bei den Testdateien hatte ich am Ende eine deutliche Verbesserung des Ergebnisses. Auch wenn der Algo nun eine ziemliche Wundertüte ist, weil ich schwer einschätzen kann, ob sich die Unterscheidung bei anderen Musikstücken auch positiv auswirkt.

Wie auch immer, der Algo ist dieses Jahr bei MIREX dabei.

Keine Kommentare: