基于文字情感的民族音乐智能生成项目Bert+Magenta【音乐生成部分】(一)
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【音乐生成部分】(一)相关推荐
- 基于文字情感的民族音乐智能生成项目Bert+Magenta【音乐生成部分】(二)
项目源码及数据集: https://github.com/DreamShibei/ChineseMusicGenerator 其他模块: 基于文字情感的民族音乐智能生成项目Bert+Magenta-- ...
- 基于C51单片机开发的智能垃圾桶项目
项目效果:当垃圾桶第一次感受到震动.垃圾靠近垃圾桶.或者按下接在单片机的外部按钮时,舵机就会跟连在一起的垃圾桶盖一起旋转九十度,并伴随滴的一声表示垃圾桶盖一打开,垃圾桶盖打开两秒后自动关盖,如果垃圾桶 ...
- 全能代码生成器,自动生成前后端代码、生成项目框架、生成JavaBean、生成数据库文档、自动化部署项目(TableGo v8.0.0)
TableGo_20220801 v8.0.0 正式版发布,此次版本累计更新如下: 1.生成项目功能新增支持若依框架,可同时生成若依框架代码和所有业务表的前后端基础CRUD代码,一键搞定所有 2. ...
- maven自定义脚手架(快速生成项目)
Maven之自定义archetype生成项目骨架 利用脚手架生成 新项目 命令行方式 mvn archetype:generate \ -DarchetypeGroupId=com.xxx \ -Da ...
- (十五)Alian 的 Spring Cloud 自动生成项目
目录 一.创建 1.1.第一步 二.mvn命令 三.生成项目 3.1.配置 3.1.属性配置 3.2.控制层 3.3.服务层 四.验证 4.1.请求生成项目 4.2.生成项目结果 4.3.项目结构 一 ...
- 基于STM32F103c8t6的智能垃圾桶项目
基于STM32F103c8t6的智能垃圾桶项目 写在前头 软件配置 硬件部分 1. 主控芯片 2. HC-SR04超声波模块 模块简介 模块参数 工作原理 GPIO配置 3. SG90舵机 模块简介 ...
- 10天基于STM32F401RET6智能锁项目实战第1天(环境搭建和新建工程)
10天基于STM32F401RET6智能锁项目实战第1天(环境搭建和新建工程) 一.环境搭建 二.新建工程 一.环境搭建 1.安装keil5 2.安装支持包 这里按照需求安装支持包,有F4和F1的支持 ...
- 基于深度对抗学习的智能模糊数据生成方法
目录 第一节 介绍: 第二节:相关工作 第三节:背景 A.深度学习 B.生成对抗网 C.WGAN 第四节 模糊系统设计 A.概述 1)数据帧预处理 2)对抗训练 3)模糊测试和再培训 B.数据帧预处理 ...
- 基于STM32 Cortex-M3内核F103制作的智能小车项目
目录 一.简单介绍: 二.硬件支持: 三.软件部分介绍: 四.整体调试: 五.学习总结: 一.简单介绍: 花上一周的时间制作一个智能小车玩玩吧,一直想要制作一辆自己的智能小车,看多了网上的各种小车,有 ...
最新文章
- 服务器登录中心,为数据中心配置登陆服务器来进行远程访问
- P4178 Tree (点分治)
- 一维循环数组最大子数组求解
- ACM: 畅通工程-并查集-解题报告
- 第七阶段 jsp(369---el---jstl)
- 学习官方示例 - System.Frac: 返回小数部分
- shell中用grep查找并且不输出_shell中grep命令详解
- 线下实战—6月25号(深圳)
- ngnix 映射路径配置_MyBatis Config(三)映射文件mappers标签
- java基础数据类型包装类
- Java进程中的堆和栈_对于JVM,你就只知道堆和栈吗?
- python两个列表匹配_Python:检查两个列表之间的字符串是否部分匹配
- 【路径规划】基于matlab Beizer和改进的粒子群算法风环境下翼伞航迹规划【含Matlab源码 199期】
- spring源码 学习方法
- M3U8下载,直播源下载,FLASH下载(一)-ffmpeg安装手册(windows)
- 中科院-杨力祥视频教程	02课程
- Matlab晶闸管单相全桥电路仿真
- 串口服务器虚拟串口失败,串口服务器常见问题
- 演示辅助软件 ZoomIt 的使用
- Python读写矢量数据(1)针对读取矢量数据——Python地理数据处理学习分享
热门文章
- 文本对比工具推荐 winMerge
- django2.0 在安装mysqlclient 报错ERROR: Command errored out with exit status 1: python setup.py egg_info
- vtkImageViewer2实现彩色图与灰度图叠加显示
- curl 显示响应状态码
- WIN10只能打英文打不了中文的解决办法
- asp.net GridView冻结头部
- python中文对齐_Python 终端下中文字符对齐处理和编码续
- 网站蜘蛛抓取量频率太少?如何提升抓取量?
- pc控制android手机屏幕亮度,调整android手机屏幕亮度
- PS2018使用过程中出现“要求96和8之间的整数”弹出报错解决办法。