wav-to-midi-Konvertierung
Ich bin neu auf diesem Gebiet, aber ich ausführen muss, um eine WAV-to-MIDI-Konvertierung in java.
Gibt es eine Möglichkeit zu wissen, was genau sind die Schritte zum WAV-to-MIDI-conversion?
Ich habe eine sehr grobe Vorstellung, wie müssen Sie;
probieren Sie die wav-Datei, filtern, verwenden Sie die FFT für Spektralanalyse, feature-Extraktion und schreiben Sie dann den extrahierten Merkmalen auf MIDI.
Aber ich finde keine soliden Quellen oder Papiere so wie alle das tun?
Kann jemand geben Sie mir Hinweise, wie und wo Sie anfangen sollen?
Gibt es irgendwelche Open-Source-APIs zur Verfügung, die für diese WAV-to-MIDI-conversion-Prozess?
Voraus vielen Dank
- Diese Prüfung als gut stackoverflow.com/questions/1628071/...
- mögliche Duplikate von wav zur midi-Konvertierung
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ein etwas beteiligten Prozess, als Sie sich vorstellen können.
Diesem problem der Forschung wird oft als Musik Transkription: der Akt der Konvertierung eines low-level-Darstellung von Musik (z.B. Wellenform) in ein higher-level-Darstellung wie MIDI oder auch Noten.
Die Raffinesse von Ihrer Lösung hängt von der Komplexität der Eingabedaten. Tonnen von Forschungsarbeiten Adresse Musik-Transkription nur auf monophone Klavier oder Schlagzeug... denn Sie sind einfach zu transkribieren. (Relativ.) Violine härter ist. Stimme ist sogar noch schwerer. Violine plus Stimme plus Klavier ist viel schwieriger. Eine Symphonie ist fast unmöglich. Sie erhalten das Bild.
Die grundlegenden Elemente der Musik-Transkription mit der folgenden, sich überlappenden Bereichen:
Suche für die Papiere auf "Musik-Transkription" auf Google Scholar oder aus dem ISMIR-Verfahren: http://www.ismir.net. Wenn Sie mehr Interesse an eine der oben genannten Unterthemen, ich kann dir weiter. Viel Glück.
EDIT: Dass gesagt wird, es gibt vorhandene Lösungen, können wir alle auf dem web finden. Fühlen Sie sich frei, Sie zu versuchen. Aber wie Sie das tun, bewerten diese mit einem kritischen Auge und Ohr. Welche Arten von audio-Signalen verursachen würde Transkription zu scheitern?
EDIT 2: Ah, Sie sind nur dabei für Klavier. Okay, das ist machbar. Musik-Transkription bis zu dem Punkt vorangekommen, wo es die Transkription monophoner Klavier, ziemlich gut. Ein Rachmaninov-Konzert immer noch Probleme aufwerfen.
Unsere Empfehlungen hängen von Ihrem Ziel. Sie Stand "müssen zu erfüllen... in Java." So klingt es wie Sie nur wollen, etwas zu arbeiten, unabhängig davon, wie bekommt Sie es. In diesem Fall Stimme ich zu 100% mit anderen: verwenden Sie etwas, das existiert.
Das ist tatsächlich eine interessante Frage; alle von MIR-Bibliotheken, die ich kenne, sind in der Regel C/C++/Python/Matlab. Aber nicht Java. Die EchoNest hat eine Java-API, aber ich glaube nicht, dass es nicht beachten-level-Transkription. http://developer.echonest.com. (Edit: Es hat Hinweis-level-Transkription. Die zurückgegebenen Daten umfassen Tonhöhe, Klangfarbe, beat, tatum und mehr. Aber ich finde die Polyphonie ist immer noch ein problem.)
Oh, Marsyas ist Java-basiert. Cool. Ich dachte, es war nur C++. http://marsyas.info/ Ich dieses empfehlen. Es ist entwickelt von George Tzanetakis, ein professor in MIR. Es bedeutet signal-level-Analyse und soll eine gute option sein.
Nun, wenn dies für eine unterhaltsame Lernerfahrung, ich denke, Sie können mit der sound-manipulation utilities in Java zu Experimentieren mit WAV-signal und sehen, was rauskommt.
EDIT: Diese Seite beschreibt MIR die software besser als ich es kann: Die Werkzeuge, Die Wir Verwenden
Für Matlab, die Sie interessieren können, der in der MIR Toolbox
Hier ist eine schöne Seite des gemeinsamen Datensätzen: MIR Datasets
Dies ist ein sehr großes Unternehmen für sein neu auf dem Gebiet, es sei denn, du meinst Sie sind vertraut mit den signal-Analyse und die Erkennung von Auffälligkeiten im Allgemeinen und wollen schauen, insbesondere in die automatische Transkription.
Gibt es keine API für WAV zur MIDI-Konvertierung. Vamp ist ein framework für die Merkmalsextraktion mit plugins, aber zu tun, automatische Transkription, die Sie brauchen würde, um alle Funktionalität der vorhandenen plugins, plus Implementierung von Funktionen, die es in keiner von Ihnen noch.
Blättern Sie durch die Beschreibungen der plugins, die auf der vamp-download-Seite, alle Beschreibungen Sie nicht verstehen, sind Themen, sollten Sie beginnen, zu recherchieren ob Sie dies tun wollen.
Wenn Sie nicht brauchen, um die Aufgabe zu automatisieren (dh für eine website, wo Menschen können das hochladen von MP3 ' s und Holen Sie MIDI-Dateien zurück), dann sollten Sie mit einem tool wie Melodyne, die ist schon ganz gut läuft. Als Steve merkte, das ist eine sehr schwierige Aufgabe zu erfüllen, und selbst die besten algorithmen und Lösungen präsentieren im moment nicht 100% zuverlässig.
Also, wenn Sie nicht gerade dabei sind studio-Arbeit und müssen noch ein paar Umrechnungen, wird es wahrscheinlich sparen Sie ein wenig Zeit (und einer Menge Kopfschmerzen) ein Werkzeug zu verwenden, die bereits speziell für diese Aufgabe.
Delphin, tut mir Leid zu brüsk, aber Sie haben völlig unterschätzt das problem. Was Sie erreichen wollen - ein voller Flügel Klang Transkription unter Einbeziehung aller Parameter, die verwendet wurden, während der Wiedergabe müsste eine enorme Menge an Forschung mit Menschen, die gearbeitet haben, in das Feld für viele Jahre. Sogar eine Gruppe von Doktoranden in der Signalverarbeitung haben würde, zu investieren eine Menge Arbeit, um auch nur annähernd zu dem, was Sie bedeuten. Musik-Transkription ist nötig, in jahrzehntelanger Arbeit zu arbeiten sogar halbwegs zuverlässig. Ich würde vorschlagen, Sie nehmen ein anderes problem, die Sie verwalten können, besser als dieser.
Dies ist ein Bereich, der noch stark in der Entwicklung, doch es gibt einige (experimentelle) algorithmen zur Verfügung.
Installieren Sie sonic annotator, und verwenden Sie ein paar vamp-plugins.
Beispiel: