Mein Freund Prasad Raghavendra und ich versucht, mit Machine Learning auf Audio zu experimentieren.Seperation von Audios Instrumenten aus einer einzigen Kanal Nicht-MIDI-Musikdatei
Wir machten es zu lernen und interessante Möglichkeiten bei jedem kommenden Treffen zu erkunden. Ich beschloss zu sehen, wie tiefes Lernen oder irgendein maschinelles Lernen mit bestimmten von Menschen bewerteten Audiosignalen gefüttert werden kann (Bewertung).
Zu unserer Bestürzung haben wir festgestellt, dass das Problem für die Dimensionalität des Eingangs zur Aufnahme aufgeteilt werden mußte. Also entschieden wir uns dafür, Vocals zu verwerfen und durch Begleitungen zu bewerten, mit der Annahme, dass Vocals und Instrumente immer korreliert sind.
Wir haben versucht, nach mp3/wav zum MIDI-Konverter zu suchen. Leider waren sie nur für einzelne Instrumente auf SourceForge und Github und andere Optionen sind Optionen bezahlt. (Ableton Live, Fruity Loops etc.) Wir haben uns entschieden, dies als Teilproblem zu betrachten.
Wir dachten an FFT, Bandpassfilter und bewegliches Fenster, um für diese zu passen.
Aber wir verstehen nicht, wie wir über Aufspaltung Instrumente gehen können, wenn Akkorde gespielt werden, und es gibt 5-6 Instrumente in der Datei.
Nach welchen Algorithmen kann ich suchen?
Mein Freund kann Keyboard spielen. Also, ich werde MIDI-Daten bekommen können. Aber, gibt es irgendwelche Datensätze dafür?
Wie viele Instrumente können diese Algorithmen erkennen?
Wie teilen wir das Audio? Wir haben nicht mehrere Audios oder die Mischmatrix
Wir haben auch darüber nachgedacht, die Muster der Begleitungen herauszufinden und diese Begleitungen in Echtzeit zu benutzen, während wir mitsingen. Ich denke, wir in der Lage sein werden, darüber nachzudenken, wenn wir Antworten auf 1,2,3 erhalten und 4. (Wir denken über beiden Akkordfolgen und Markow Dynamik)
Vielen Dank für alle Hilfe!
P.S .: Wir haben auch versucht, FFT und wir sind in der Lage, einige Oberwellen zu sehen. Liegt es an Sinc() in fft, wenn Rechteckwelle im Zeitbereich eingegeben wird? Kann man damit das Timbre bestimmen? FFT of the signals considered
EDIT:
Wir waren in der Lage, das Problem grob zu formulieren. Aber wir finden es immer noch schwierig, das Problem zu formulieren. Wenn wir den Frequenzbereich für eine bestimmte Frequenz verwenden, sind die Instrumente nicht unterscheidbar. Eine Posaune, die mit 440 Hz spielt oder eine Gitarre, die mit 440 Hz spielt, würde dieselbe Frequenz haben, mit Ausnahme der Klangfarbe. Wir wissen immer noch nicht, wie wir das Timbre bestimmen können. Wir haben uns für den Zeitbereich entschieden, indem wir uns Notizen machen. Wenn eine Note eine bestimmte Oktave überschreitet, verwenden wir diese als separate Dimension +1 für die nächste Oktave, 0 für die aktuelle Oktave und -1 für die vorherige Oktave.
Wenn Noten von Buchstaben wie ‚A‘ dargestellt sind, ‚B‘, ‚C‘ etc, dann reduziert sich das Problem Matrizen Mischen.
O = MI während des Trainings. M ist die Mischmatrix, die mit dem bekannten O-Ausgang und I-Eingang der MIDI-Datei ermittelt werden muss.
Während der Vorhersage muss M jedoch durch eine Wahrscheinlichkeitsmatrix P ersetzt werden, die unter Verwendung von vorherigen M Matrizen erzeugt würde.
Das Problem reduziert ich vorhergesagt = P -1 O. Der Fehler würde dann auf LMSE von I reduziert werden. Wir können DNN verwenden, um P unter Verwendung von Rückausbreitung anzupassen.
Aber in diesem Ansatz nehmen wir an, dass die Noten "A", "B", "C" usw. bekannt sind. Wie erkennen wir sie augenblicklich oder in kurzer Zeit wie 0,1 Sekunden? Weil die Template-Anpassung aufgrund von Oberwellen möglicherweise nicht funktioniert. Irgendwelche Vorschläge würden sehr geschätzt.
Polyphone Dekomposition scheint immer noch Forschungsthema zu sein. Auf dieser Konferenz wurden Hunderte von Forschungsartikeln zu diesem Thema vorgestellt: http://www.music-ir.org/mirex/wiki/MIREX_HOME – hotpaw2
@ hotpaw2 Danke! Wie beginne ich? Kann ich mit mehreren Instrumenten variierendes Tempo annehmen? Das ist physikalisch unmöglich zu unterscheiden (gegebene Oberschwingungen). Aber wenn ich es trivialisiere, sagen wir, keines der Instrumente überschneidet sich mit Noten oder mit anderen Instrumenten, wird es keine Bedeutung haben. Wie baue ich Input und Output dafür? Ich habe gelesen über "Klassen von Instrumenten" manuell klassifiziert. Aber ich möchte den gesamten Prozess automatisieren - Es wird möglicherweise LMS in der Bewertungsfunktion verwenden. Irgendwelche Einblicke werden geschätzt! –
Welche Annahmen für die ersten "Baby Steps" erforderlich sind, könnte selbst Ihr erstes Forschungsproblem sein. – hotpaw2