用Google Brain的机器学习项目:Magenta,教神经网络学抖音小姐姐作曲。

先上我们要学习的小姐姐

的美照。。

一、配置环境

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

。。。。。

有没有很难听。。。?!可能跟训练数据集太少,训练循环次数太少,音乐格式转换失真等诸多因素有关。。。

 唱许巍的女歌手很少,感觉对了,人就对了。

猜你喜欢

转载自www.cnblogs.com/Vito-Yan/p/9032789.html