Richten Sie basierend auf GitHub von Magenta README die Magenta-Entwicklungsumgebung ohne Docker ein. Ich möchte einen Song mit Basic RNN generieren.
Laden Sie das trainierte Modell herunter und verwenden Sie es.
Bitte lesen Sie hier, wenn Sie Docker einfach verwenden möchten. Versuchen Sie, mit TensorFlows Kunst- und Musikgenerierungsprojekt "magenta" einen Song zu machen.
Vorbereitung der Entwicklungsumgebung für Magenta ・ Magentas GitHub-Repository ・ Bazel ・ TensorFlow Du brauchst drei.
Außerdem scheint Magenta im Moment nur Python 2.7 zu unterstützen, daher habe ich es eingerichtet, nachdem ich eine Python 2.7-Umgebung mit virtualenv auf dem Mac erstellt habe.
git clone https://github.com/tensorflow/magenta.git
https://www.bazel.io/versions/master/docs/install.html
$ brew install bazel
TensorFlow https://www.tensorflow.org/versions/master/get_started/os_setup.html
Überprüfen Sie bei der Installation von TensorFlow, ob Ihr PC nur über CPU oder GPU verfügt. Es scheint, dass TensorFlow eine GPU namens CUDA unterstützt. Wenn Sie also einen Mac haben, können Sie diese verwenden. Referenz: OSX-GPU wird von Tensorflow unterstützt
Ich habe nur mit der CPU fortgefahren.
$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0-py2-none-any.whl
$ pip install --upgrade $TF_BINARY_URL
Lassen Sie uns den Test nach dem Einstellen ausführen. Gehen Sie zu / magenta / under git clone und drücken Sie den folgenden Befehl.
bazel test //magenta/...
Wenn die folgende Meldung angezeigt wird, ist sie erfolgreich und die Einstellung ist abgeschlossen.
.........
INFO: Found 65 targets and 27 test targets...
INFO: Elapsed time: 43.359s, Critical Path: 35.97s
//magenta/common:concurrency_test PASSED in 5.4s
//magenta/interfaces/midi:midi_hub_test PASSED in 14.8s
(Unterlassung)
Executed 27 out of 27 tests: 27 tests pass.
There were tests whose specified size is too big. Use the --test_verbose_timeout_warnings command line option to see which ones these are.
Magenta verfügt über drei Arten von Lernmodellen: Basic RNN, LookBack RNN und Attention RNN. Dieses Mal werde ich die Methode von Basic RNN ausprobieren.
Dieses Modell ist eine Melodie, die nur einen Klang zum gleichen Zeitpunkt erzeugt. Ich werde es in diesem Beitrag nicht tun, aber wenn Sie MIDI eingeben und selbst lernen, scheint es, dass nur ein Sound berücksichtigt wird, selbst wenn es einen Sound gibt, der mit diesem MIDI zum gleichen Zeitpunkt klingt.
Sie können es von [hier] herunterladen (http://download.magenta.tensorflow.org/models/basic_rnn.mag).
Bitte platzieren Sie es nach dem Herunterladen an einer beliebigen Stelle.
Stellen Sie den Pfad des oben heruntergeladenen trainierten Modells mit "Absoluter Pfad" ein.
BUNDLE_PATH=<absolute path of basic_rnn.mag>
Es kann mit dem folgenden Befehl generiert werden.
bazel run //magenta/models/basic_rnn:basic_rnn_generate -- \
--bundle_file=${BUNDLE_PATH} \
--output_dir=/tmp/basic_rnn/generated \
--num_outputs=10 \
--num_steps=128 \
--primer_melody="[60]"
Die Optionen scheinen die folgenden Bedeutungen zu haben.
--output_dir=/tmp/basic_rnn/generated \
Sie können entscheiden, wo das Lied generiert werden soll.
--num_outputs=10 \
Sie können entscheiden, wie viele Songs Sie machen möchten.
--num_steps=128 \
Legen Sie fest, wie viele Sounds und wie viele Takte ein Song enthalten soll. Ein Lied von 8 Takten wird mit 128 gemacht. Ich denke, dass 16 Sounds in jeden Takt eingefügt werden können. (Die Definition von Wörtern wie "Maßnahme" ist nicht eindeutig ...)
--primer_melody="[60]"
Es ist der Klang, mit dem das Lied beginnt.
Als Beispiel
--primer_melody="[60, -2, 60, -2, 67, -2, 67, -2]”
Dies zeigt "Dodo Soso" an und es werden Songs generiert, die mit dem Intro des glitzernden Sterns beginnen.
(Da es sich bei dem obigen Wert übrigens um 8 Sounds handelt, bedeutet dies, dass die Hälfte des ersten Takts gesetzt ist.)
Die Zahlen sind -2:no event -1:note-off event Es ist so eingestellt, und ich verstehe es nicht in Worten, aber Im Fall von "[60, -2, 60, -2, 67, -2, 67, -2]" wird "Dodo Soso" und der Ton davor fortgesetzt, während Im Fall von "[60, -1, 60, -1, 67, -1, 67, -1]" klingt es wie "dies tun" und der Ton wird unterbrochen. Ist es der Unterschied zwischen "nichts tun" und "Ton ausschalten"?
60: de 67: Also Ich denke, dass die Anzahl der Tasten am Klavier den Klang anzeigt.
Bei der Ausführung wird ein Song generiert.
Die folgenden Songs wurden gemacht. Es begann mit dem Intro von "Do Do So So" und machte einen 16-Takt-Song. Beispiel
Hier ist der erste mit "Dodo Soso". Beispiel
Die Atmosphäre ändert sich ziemlich stark und Sie können spüren, dass sich die Intro-Einstellungen auf die nachfolgende Melodie auswirken.
Vielen Dank.
Recommended Posts