Basé sur GitHub de magenta README, configurez l'environnement de développement magenta sans utiliser Docker. Je voudrais générer une chanson avec Basic RNN.
Téléchargez et utilisez le modèle entraîné.
Veuillez vous référer à ici si vous souhaitez utiliser Docker facilement. Essayez de créer une chanson avec le projet de création artistique et musicale de TensorFlow "magenta".
Pour préparer l'environnement de développement pour Magenta ・ Dépôt GitHub de Magenta ・ Bazel ・ TensorFlow Vous en avez besoin de trois.
De plus, Magenta semble ne prendre en charge que Python 2.7 pour le moment, je l'ai donc configuré après avoir créé un environnement Python 2.7 avec virtualenv sur Mac.
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
Lors de l'installation de TensorFlow, veuillez vérifier si votre PC ne dispose que d'un processeur ou d'un GPU. Il semble que TensorFlow prend en charge un GPU appelé CUDA, donc si vous avez un Mac, vous pouvez l'utiliser. Référence: Le GPU OSX est pris en charge par Tensorflow
J'ai procédé avec le CPU uniquement.
$ 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
Lançons le test après le réglage. Accédez à / magenta / sous git clone et appuyez sur la commande suivante.
bazel test //magenta/...
Si le message suivant apparaît, cela signifie qu'il a réussi et le réglage est terminé.
.........
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
(Omission)
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 propose trois types de modèles d'apprentissage: RNN de base, LookBack RNN et Attention RNN. Cette fois, j'essaierai la méthode de Basic RNN.
Ce modèle est une mélodie qui ne produit qu'un seul son au même moment. Je ne le ferai pas dans ce post, mais si vous mettez en MIDI et apprenez par vous-même, il semble qu'un seul son soit pris en compte même s'il y a un son qui sonne au même moment avec ce MIDI.
Vous pouvez le télécharger depuis ici.
Après le téléchargement, veuillez le placer n'importe où.
Définissez le chemin du modèle entraîné téléchargé ci-dessus avec "Chemin absolu".
BUNDLE_PATH=<absolute path of basic_rnn.mag>
Il peut être généré avec la commande suivante.
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]"
Les options semblent avoir les significations suivantes.
--output_dir=/tmp/basic_rnn/generated \
Vous pouvez décider où générer le morceau.
--num_outputs=10 \
Vous pouvez décider du nombre de chansons à créer.
--num_steps=128 \
Définissez le nombre de sons et le nombre de mesures pour créer un morceau. Un morceau de 8 mesures est composé de 128. Je pense que 16 sons peuvent être mis dans chaque mesure. (La définition de mots tels que "mesurer" est ambiguë ...)
--primer_melody="[60]"
C'est le son avec lequel la chanson commence.
Par exemple
--primer_melody="[60, -2, 60, -2, 67, -2, 67, -2]”
Cela indique "Dodo Soso", et les chansons qui commencent par l'intro de l'étoile scintillante seront générées.
(À propos, puisque ce qui précède est de 8 sons, cela signifie que la moitié de la première mesure est définie.)
Les chiffres sont
-2:no event
-1:note-off event
C'est comme ça, et je ne le comprends pas en mots, mais
Dans le cas de [60, -2, 60, -2, 67, -2, 67, -2]
, "Dodo Soso" et le son avant de continuer, alors que
Dans le cas de [60, -1, 60, -1, 67, -1, 67, -1]
, cela ressemble à "fais-le" et le son est interrompu.
Est-ce la différence entre «ne rien faire» et «couper le son»?
60: de 67: Donc Je pense que le nombre de touches du piano indique le son.
Une fois exécuté, un morceau sera généré.
Les chansons suivantes ont été créées. Cela a commencé avec l'intro de "Do Do So So" et a fait une chanson de 16 mesures. Exemple
Voici le premier avec "Dodo Soso". Exemple
L'atmosphère change un peu et vous pouvez sentir que les réglages d'intro ont un effet sur la mélodie suivante.
Merci beaucoup.
Recommended Posts