magenta环境配置与应用

  • 环境配置
    • 1.安装pycharm
    • 2.安装pip
    • 3.安装conda
    • 4.创建conda虚拟环境
  • magenta安装
  • magenta的使用
    • 1.数据集准备
    • 2. 数据转换
    • 3. 将NoteSequences文件中的旋律提取出来
    • 4.训练和验证过程
      • i. 训练过程
      • ii. 验证过程
    • 5. 音乐生成

项目源码及数据集:
https://github.com/DreamShibei/ChineseMusicGenerator
其他模块:
基于文字情感的民族音乐智能生成项目Bert+Magenta----文本情感部分
基于文字情感的民族音乐智能生成项目Bert+Magenta【音乐生成部分】(二)

环境配置

使用ubuntu18.04系统

1.安装pycharm

参考Ubuntu 18.04 安装 PyCharm

2.安装pip

sudo apt install python-pip

出现报错E: Unable to locate package python-pip
解决方法:更新软件源
在更改配置文件时保存报错
"/etc/apt/sources.list" E212: Can't open file for writing
解决方法:w !sudo tee % > /dev/null

3.安装conda

参考Ubuntu 16.04系统下conda的安装与使用

wget -c https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod 777 Miniconda3-latest-Linux-x86_64.sh
sh Miniconda3-latest-Linux-x86_64.sh

4.创建conda虚拟环境

创建环境

conda create -n magenta python=3.6

激活环境

source activate magenta

magenta安装

在github官网上下载magenta全部代码,使用pycharm打开
创建conda虚拟环境

根据提示安装配置库

在安装时出现报错

不知道为啥在pycharm里安不上
那就去命令行里安吧

pip install magenta

又有奇怪的报错

需要安装配置库

sudo apt-get install build-essential libasound2-dev libjack-dev
sudo apt-get update

再重新输入pip install magenta
就好了

magenta的使用

1.数据集准备

数据集使用midi格式

2. 数据转换

将包含MIDI音乐集的文件夹转化成NoteSequences。该音乐序列文件保存为TFRecord格式。

convert_dir_to_note_sequences.py \--input_dir= home/ubuntu/Downloads/1-1 \--output_file=/home/ubuntu/melody/notesequences.tfrecord \--recursive


3. 将NoteSequences文件中的旋律提取出来

调用melody_rnn_pipeline.py中的get_pipeline(config, transposition_range=(0,), eval_ratio=0.0)函数返回pipeline实例,通过pipeline进行数据集之间的转换,将一个tfrecord文件划分为训练集和评估集。

melody_rnn_create_dataset \
--config=attention_rnn \
--input=/home/ubuntu/melody/notesequences.tfrecord \
--output_dir=/home/ubuntu/melody/sequence_examples \
--eval_ratio=0.10


提取旋律后所生成的文件

4.训练和验证过程

i. 训练过程

melody_rnn_train.py \
--config=attention_rnn \
--run_dir=/ home/ubuntu/melody /logdir/run1 \
--sequence_example_file=/ home/ubuntu/melody /sequence_examples/training_melodies.tfrecord \
--hparams="batch_size=64,rnn_layer_sizes=[64,64]" \
--num_training_steps=20000

开始训练

训练到一半被系统kill了 可能是由于虚拟机内存不够,最好在初始创建时选择大一点的虚拟机

ii. 验证过程

也使用melody_rnn_train.py。不同的是,在运行验证程序时,我们需要把eval写为True,bool格式;同时,sequence_example_file为验证集,即eval_melodies.tfrecord的路径

melody_rnn_train.py \
--config=attention_rnn \
--run_dir=/ home/ubuntu/melody/logdir/run1 \
--sequence_example_file=/ home/ubuntu/melody /sequence_examples/eval_melodies.tfrecord \
--hparams="batch_size=64,rnn_layer_sizes=[64,64]" \
--num_training_steps=20000 \
--eval

在验证过程中有奇怪的报错还没解决

5. 音乐生成

melody_rnn_generate.py \
--config=attention_rnn \
--run_dir=/home/ubuntu/melody /logdir/run1 \
--output_dir=/home/ubuntu/melody /generated \
--num_outputs=10 \
--num_steps=128 \
--hparams="batch_size=64,rnn_layer_sizes=[64,64]" \
--primer_melody="[60]"


虽然只训练了一半,但生成部分还是可以顺利运行,生成midi音乐如下图所示,可以调整num_steps来控制生成的音乐片段长度(训练未完成可能导致生成的音乐不大好听)

基于文字情感的民族音乐智能生成项目Bert+Magenta【音乐生成部分】(一)相关推荐

  1. 基于文字情感的民族音乐智能生成项目Bert+Magenta【音乐生成部分】(二)

    项目源码及数据集: https://github.com/DreamShibei/ChineseMusicGenerator 其他模块: 基于文字情感的民族音乐智能生成项目Bert+Magenta-- ...

  2. 基于C51单片机开发的智能垃圾桶项目

    项目效果:当垃圾桶第一次感受到震动.垃圾靠近垃圾桶.或者按下接在单片机的外部按钮时,舵机就会跟连在一起的垃圾桶盖一起旋转九十度,并伴随滴的一声表示垃圾桶盖一打开,垃圾桶盖打开两秒后自动关盖,如果垃圾桶 ...

  3. 全能代码生成器,自动生成前后端代码、生成项目框架、生成JavaBean、生成数据库文档、自动化部署项目(TableGo v8.0.0)

    TableGo_20220801 v8.0.0 正式版发布,此次版本累计更新如下:  1.生成项目功能新增支持若依框架,可同时生成若依框架代码和所有业务表的前后端基础CRUD代码,一键搞定所有  2. ...

  4. maven自定义脚手架(快速生成项目)

    Maven之自定义archetype生成项目骨架 利用脚手架生成 新项目 命令行方式 mvn archetype:generate \ -DarchetypeGroupId=com.xxx \ -Da ...

  5. (十五)Alian 的 Spring Cloud 自动生成项目

    目录 一.创建 1.1.第一步 二.mvn命令 三.生成项目 3.1.配置 3.1.属性配置 3.2.控制层 3.3.服务层 四.验证 4.1.请求生成项目 4.2.生成项目结果 4.3.项目结构 一 ...

  6. 基于STM32F103c8t6的智能垃圾桶项目

    基于STM32F103c8t6的智能垃圾桶项目 写在前头 软件配置 硬件部分 1. 主控芯片 2. HC-SR04超声波模块 模块简介 模块参数 工作原理 GPIO配置 3. SG90舵机 模块简介 ...

  7. 10天基于STM32F401RET6智能锁项目实战第1天(环境搭建和新建工程)

    10天基于STM32F401RET6智能锁项目实战第1天(环境搭建和新建工程) 一.环境搭建 二.新建工程 一.环境搭建 1.安装keil5 2.安装支持包 这里按照需求安装支持包,有F4和F1的支持 ...

  8. 基于深度对抗学习的智能模糊数据生成方法

    目录 第一节 介绍: 第二节:相关工作 第三节:背景 A.深度学习 B.生成对抗网 C.WGAN 第四节 模糊系统设计 A.概述 1)数据帧预处理 2)对抗训练 3)模糊测试和再培训 B.数据帧预处理 ...

  9. 基于STM32 Cortex-M3内核F103制作的智能小车项目

    目录 一.简单介绍: 二.硬件支持: 三.软件部分介绍: 四.整体调试: 五.学习总结: 一.简单介绍: 花上一周的时间制作一个智能小车玩玩吧,一直想要制作一辆自己的智能小车,看多了网上的各种小车,有 ...

最新文章

  1. 服务器登录中心,为数据中心配置登陆服务器来进行远程访问
  2. P4178 Tree (点分治)
  3. 一维循环数组最大子数组求解
  4. ACM: 畅通工程-并查集-解题报告
  5. 第七阶段 jsp(369---el---jstl)
  6. 学习官方示例 - System.Frac: 返回小数部分
  7. shell中用grep查找并且不输出_shell中grep命令详解
  8. 线下实战—6月25号(深圳)
  9. ngnix 映射路径配置_MyBatis Config(三)映射文件mappers标签
  10. java基础数据类型包装类
  11. Java进程中的堆和栈_对于JVM,你就只知道堆和栈吗?
  12. python两个列表匹配_Python:检查两个列表之间的字符串是否部分匹配
  13. 【路径规划】基于matlab Beizer和改进的粒子群算法风环境下翼伞航迹规划【含Matlab源码 199期】
  14. spring源码 学习方法
  15. M3U8下载,直播源下载,FLASH下载(一)-ffmpeg安装手册(windows)
  16. 中科院-杨力祥视频教程 02课程
  17. Matlab晶闸管单相全桥电路仿真
  18. 串口服务器虚拟串口失败,串口服务器常见问题
  19. 演示辅助软件 ZoomIt 的使用
  20. Python读写矢量数据(1)针对读取矢量数据——Python地理数据处理学习分享

热门文章

  1. 文本对比工具推荐 winMerge
  2. django2.0 在安装mysqlclient 报错ERROR: Command errored out with exit status 1: python setup.py egg_info
  3. vtkImageViewer2实现彩色图与灰度图叠加显示
  4. curl 显示响应状态码
  5. WIN10只能打英文打不了中文的解决办法
  6. asp.net GridView冻结头部
  7. python中文对齐_Python 终端下中文字符对齐处理和编码续
  8. 网站蜘蛛抓取量频率太少?如何提升抓取量?
  9. pc控制android手机屏幕亮度,调整android手机屏幕亮度
  10. PS2018使用过程中出现“要求96和8之间的整数”弹出报错解决办法。