先上我們要學習的小姐姐
的美照。。

一、配置環境
1、自己配置環境:python,tensorflow,bazel(編譯),java。然后下載magenta(https://github.com/tensorflow/magenta.git,進入magenta目錄)
2、docker集成環境:tensorflow/magenta(我這里用的集成環境,magenta已經下載,進入magenta目錄)
二、創建旋律數據庫
1、下載抖音視頻到本地,通過格式工廠轉換為MP3音頻文件


2、通過WIDI把MP3轉換為midi文件(magenta不能直接讀取mp3文件)

3、把MIDI文件轉化為Sequence文件
MIDI_DIRECTORY=/magenta-data SEQUENCES_TFRECORD=/magenta-data/notesequences.tfrecord bazel run //magenta/scripts:convert_dir_to_note_sequences -- \ --input_dir=$MIDI_DIRECTORY \ --output_file=$SEQUENCES_TFRECORD \ --recursive
4、從Sequence文件中提取旋律
# TFRecord file containing NoteSequence protocol buffers from convert_midi_dir_tt o_note_sequences.py. SEQUENCES_TFRECORD=/magenta-data/notesequences.tfrecord # TFRecord file that TensorFlow's SequenceExample protos will be written to. Thii s is the training dataset. #TRAIN_DATA=/magenta-data/training_melodies.tfrecord # Optional evaluation dataset. Also, a TFRecord file containing SequenceExample protos. #EVAL_DATA=/magenta-data/eval_melodies.tfrecord # Fraction of input data that will be written to the eval dataset (if eval_outpuu t flag is set). #EVAL_RATIO=0.10 #ENCODER=melody_rnn_config_flags bazel run //magenta/models/melody_rnn:melody_rnn_create_dataset -- \ --input=$SEQUENCES_TFRECORD \ --eval_ratio=0.10 \ --config=basic_rnn \ --output_dir=/magenta-data
生成的訓練文件就在/magenta-data/training_melodies.tfrecord里
三、訓練神經網絡模型
bazel run //magenta/models/melody_rnn:melody_rnn_train -- \ --config=basic_rnn \ --sequence_example_file=/magenta-data/training_melodies.tfrecord \ --run_dir=/tmp/melody_rnn/logdir/run1 \ --eval=false \ --num_training_steps=1000

四、生成旋律
bazel run //magenta/models/melody_rnn:melody_rnn_generate -- \ --config=basic_rnn \ --run_dir=/tmp/melody_rnn/logdir/run1 \ --output_dir=/tmp/melody_rnn/generated \ --num_outputs=10 \ --num_steps=128 \ --primer_melody="[60]" \ --primer_midi=/magenta-data/baga01.mid

五、用MIDI MP3 Converter將MIDI文件轉化成MP3文件

腳本和音樂:
http://vote.yangtzeu.edu.cn/gitlab/Vito-Yan/magenta-bxq1012/tree/master/music
。。。。。
有沒有很難聽。。。?!可能跟訓練數據集太少,訓練循環次數太少,音樂格式轉換失真等諸多因素有關。。。
唱許巍的女歌手很少,感覺對了,人就對了。
