[PYTHON] Die Geschichte eines neuronalen Netzwerks der Musikgeneration

Ich habe ein neuronales Netzwerk für die Musikgenerierung mit meinem eigenen MIDI-Parser und LSTM erstellt. Vor kurzem gab es ein Projekt wie Magenta und es scheint das n-te Gebräu zu sein, aber als ich die Stichprobenmethode aus der Ausgangswahrscheinlichkeitsverteilung modifizierte, wurde ein wenig interessantes Ergebnis erzielt. Ich habe es bekommen, damit ich es teilen kann.

Demo (* Beachten Sie die Lautstärke für die sofortige Wiedergabe) Repository

LSTM Es ist eine Art neuronales Netzwerk, das den Kontext sequentieller Daten lernen kann. Für Details überlasse ich es den vielen guten Artikeln. Das Folgende ist detailliert.

MIDI(SMF) Es ist ein Format, in dem Leistungsdaten als eine Folge von Blöcken mit Tonhöhe, Lautstärke, Zeitinformationen usw. ausgedrückt werden. Verwenden Sie (einen Teil) dieser Sequenz als Eingabe für das LSTM.

Prozessablauf

  1. Analysieren Sie die zu lernende MIDI-Datei und konvertieren Sie Chunks in Strings
  2. Trainieren Sie Ihr Modell mit der transformierten Chunk-Sequenz
  3. Generieren Sie Textdaten, die MIDI-Daten basierend auf dem erstellten Modell und einer Folge geeigneter Chunks ausdrücken. ** Fügen Sie Zufälligkeit hinzu, indem Sie die Parameter für die Stichprobe aus der Wahrscheinlichkeitsverteilung bei jeder Ausgabe des Modells ändern. ** ** **
  4. Wandeln Sie den Ausgang in MIDI um

Ergebnis

Als ich versuchte, Elemente mit einer geringen Wahrscheinlichkeit des Auftretens bei einer bestimmten Frequenz auszugeben, wurde ein Lied mit einem leicht arrangierten Original-Lied erzeugt.

Bemerkungen

Der selbst erstellte MIDI-Parser ist derzeit recht einfach, und es gibt Blöcke und Informationen, die nicht verarbeitet wurden. Wenn Sie also etwas mehr machen, verbessert sich die Qualität der Ausgabe.

Recommended Posts

Die Geschichte eines neuronalen Netzwerks der Musikgeneration
Visualisieren Sie die innere Schicht des neuronalen Netzwerks
Die Geschichte eines Mel-Icon-Generators
Implementierung eines zweischichtigen neuronalen Netzwerks 2
Berühren Sie das Objekt des neuronalen Netzes
Die Geschichte des Exportierens eines Programms
Die Geschichte, wie man mit discord.py einen Fragenkasten-Bot erstellt
Die Geschichte einer unveränderlichen Form
Die Geschichte, einen Standardtreiber für db mit Python zu erstellen.
Die Geschichte der Verarbeitung A von Blackjack (Python)
Die Geschichte, ein Modul zu erstellen, das E-Mails mit Python überspringt
Verstehen Sie die Anzahl der Eingabe- / Ausgabeparameter des Faltungs-Neuronalen Netzes
Die Geschichte, wie man mit Python einen 100-Yen-Frühstücks-Bot für die Universität macht
Die Geschichte einer Soundkamera mit Touch Designer und ReSpeaker
Die Geschichte, ein Paket zu erstellen, das den Betrieb von Juman (Juman ++) & KNP beschleunigt
Die Geschichte der Herstellung des Mel Icon Generator Version 2
Die Geschichte von sys.path.append ()
Die Geschichte einer Box, die Peppers AL Memory und MQTT miteinander verbindet
Die Geschichte der Erstellung einer Webanwendung, die umfangreiche Lesungen mit Django aufzeichnet
Die Geschichte, einen Line Bot zu erstellen, der uns den Zeitplan für die Wettbewerbsprogrammierung erzählt
Eine Geschichte, die den Aufwand für Betrieb / Wartung reduziert
Die Geschichte, mit Python eine Hanon-ähnliche Partitur zu machen
Grundlagen von PyTorch (2) - Wie erstelle ich ein neuronales Netzwerk?
Eine Geschichte über die Änderung des Master-Namens von BlueZ
Implementierung eines Faltungs-Neuronalen Netzwerks mit nur Numpy
Zip 4 Gbyte Problem ist eine Geschichte der Vergangenheit
Eine Geschichte, die die Lieferung von Nico Nama analysierte.
Implementieren Sie ein dreischichtiges neuronales Netzwerk
Die Geschichte des Baus von Zabbix 4.4
Die Geschichte der Einrichtung eines VIP-Kanals im internen Chatwork
Mit den Daten von COVID-19 wurde ein Netzwerkdiagramm erstellt.
Die Geschichte des Django-Modellfeldes verschwindet aus der Klasse
Aufbau eines neuronalen Netzwerks, das XOR durch Z3 reproduziert
Die Geschichte des Erstellens einer Datenbank mithilfe der Google Analytics-API
Ich habe versucht, das Musikgenre anhand des Songtitels im Recurrent Neural Network vorherzusagen
So zeichnen Sie einfach die Struktur eines neuronalen Netzwerks in Google Colaboratory mit "convnet-drawer"
Eine Geschichte, die mit der Installation der maschinellen Lernbibliothek JAX zusammenhängt
Die Geschichte von Python und die Geschichte von NaN
Fassen wir die Grundfunktionen von TensorFlow zusammen, indem wir ein neuronales Netzwerk erstellen, das XOR-Gatter lernt.
Was ist das Convolutional Neural Network?
Ich habe versucht, ein zweischichtiges neuronales Netzwerk zu implementieren
Die Geschichte der Erstellung einer Website, auf der die Veröffentlichungsdaten von Büchern aufgeführt sind
Die Geschichte des "Lochs" in der Akte
Ein Befehl zum einfachen Überprüfen der Netzwerkgeschwindigkeit auf der Konsole
[Pythonista] Die Geschichte einer Aktion zum Kopieren ausgewählten Textes
Die Geschichte, ein Tool zu erstellen, das auf Mac und Windows auf der Spieleentwicklungsseite ausgeführt wird
Die Geschichte des erneuten Bereitstellens des Anwendungsservers
[NNabla] So entfernen Sie die mittlere Ebene eines vorgefertigten Netzwerks
Generierung von Zeitreihen durch wiederkehrende neuronale Netze (Magenta-Übersetzung, bei der künstliche Intelligenz Kunst und Musik macht)
Die Geschichte, einen Slackbot zu erstellen, der beim Senden des Verarbeitungscodes ein GIF oder PNG ausgibt
Die Geschichte, ein Tool zum Laden von Bildern mit Python zu erstellen ⇒ Speichern unter
Eine Geschichte, die die Gegenwart von Qiita mit Qiita API + Elasticsearch + Kibana visualisiert
Die Geschichte eines Parksensors in 10 Minuten mit dem GrovePi + Starter Kit
Erstellen Sie mithilfe des TensorFlow-Faltungsnetzwerks einen Klassifikator mit einer Handschrifterkennungsrate von 99,2%
Ich habe versucht, die Genauigkeit meines eigenen neuronalen Netzwerks zu verbessern
Die Geschichte der Entwicklung einer WEB-Anwendung, die automatisch Fangkopien generiert [MeCab]