今天连看三篇论文,不是很细致地看,也没有具体去实现,只是大概明白了一些新思路。这三篇论文,一篇概述了Decoder-Encoder模型,一篇延伸这个模型,首次提出了Attention机制,最后一篇详细阐述了LSTM和GRU的工作机理。读完之后,我对机器翻译这个领域,还有LSTM的应用,有了更深的认识。

言归正传,说一下生成旋律的原理。

在之前的乐理部分,我们知道了和弦级数和走向的问题,有很多和弦组合在一起能发挥良好的作用。这些好的和弦连接在一起的音序就被成为进行。流行音乐的和弦进行倾向于从根和弦开始,最终再回到根和弦上。这样就能制造一段封闭的四小节或八小节的Loop。大多数曲调都使用这样的张力与解决原则。也知道凭经验,能知道常用的和弦是有感情色彩的(http://www.wenkuxiazai.com/doc/614fe01b52d380eb62946d2a.html).一些和弦的进行,除了遵守必须要遵守的一些规则(比如主和弦的位置),其他的走向都是可以与感情挂钩的。举个例子,

1、C—Am—F—G(参考曲目:蔡琴—恰似你的温柔)
2、C—G—Am—F(参考曲目:Beyond—海阔天空 主歌)

这两个例子都是非常明亮的.

1、Am—F—C—G(参考曲目:黄义达—我懂、set me free)
2、Am—C—G—Am(参考曲目:Beyond—灰色轨迹 主歌)

这两个例子都是比较柔和温婉的。两边不同的主要原因是大小调问题。

来源:(1)http://www.wenkuxiazai.com/doc/614fe01b52d380eb62946d2a.html

(2)https://www.douban.com/note/345221364/

也就是说,我们先定下一个感情基调,再选择一个和弦走向,甚至多个和弦走向,都是有道理的。

但是这种方法是有缺点的,就是大调和小调只能二选一(在短音乐片段中),像大调转小调完成感情变化是很难的事情。《少年锦时》之中有C变成C7和弦的例子,这样的转调应该是很难自动生成的。

下一个话题,怎么根据和弦填写旋律进去?

一言以蔽之:走和弦音作为主音。你可以在你和弦进行中的最高音上增加一些音符,建立你的旋律或者Bassline。这样创造出来的旋律跟随着和弦进行的脚步,因此很容易上口,被人记住。同样根据张力法则,当每个和弦演奏时,耳朵总是会期待下一个和弦和作为主音的最高音。记住,只有当“张力”和弦被解决后,大脑才会觉得满意,才会认为这样的进行是好的。

=========================================================

接下来将怎么通过深度学习捕获这些和弦走向。

首先我们提取大量歌曲中的和弦走向,将其以8个或者16个为一组,作为一条数据,这样可以形成一个封闭的段落,并且也可以演示出变化感。然后我们人工指定这段音乐的情感表达是什么样子的。

之后,我们使用GRU(LSTM的一个变形),根据之前定下的和弦,预测之后出现的和弦,从而生成一条完整的和弦走向。因为经过了充分学习,这个和弦走向很可能就是符合和弦走向要求的。

如果要考虑精度,我们可以人为地将一些经典和弦作为Attention加进去,但是凭我现在的水准,做出这个模型应该不是一件简单的事情。

=========================================================

说一下整个项目的全部流程:

1,输入一张照片。

2,通过Cognitive Service进行图片色调、实体识别。

3,转化成一个向量,通过卷积神经网络进行情感分类。

4,将情感向量输入LSTM,进行和弦生成。

5,根据和弦,再通过一个其他的网络生成主旋律(这一块还没想好具体怎么做)。

数据集的准备,是要准备两个数据集(后期可能还要第三个),分别标注了图片-情感,情感-和弦走向,这样才能很好地训练网络。

下一篇博文,将会展示数据集的准备和LSTM网络搭建。

【Python图像特征的音乐序列生成】如何生成旋律(大纲),以及整个项目的全部流程的更多相关文章

  1. 【Python图像特征的音乐序列生成】使用Python生成简单的MIDI文件

    这个全新的Python音乐创作系列,将会不定期更新.写作这个系列的初衷,是为了做一个项目<基于图像特征的音乐序列生成模型>,实时地提取照片特征,进行神经网络处理,生成一段音乐. 千里之行, ...

  2. 【Python图像特征的音乐序列生成】图像特征在旋律生成中有什么用

    jishude 首先援引一个资料网页:http://www.cosmosshadow.com/ml/%E5%BA%94%E7%94%A8/2016/03/01/%E9%9F%B3%E4%B9%90%E ...

  3. 【Python图像特征的音乐序列生成】关于数据集的分享和样例数据

    数据集还在制作中,样例数据如下: 我将一条数据作为一行,X是ID,O代表了情感向量,S是速度,是一个很关键的参数,K是调式,M是节拍,L是基本拍.后面是ABC格式的序列,通过embedding化这些音 ...

  4. 【Python图像特征的音乐序列生成】生成伴奏旋律(附部分代码)

    做了半天做的都是一些细枝末节的东西,嗨呀. 伴奏旋律是Ukulele和弦,MIDI发音乐器是Guitar.在弹唱的时候,Ukulele和弦就是伴奏. 我们以创建<成都>伴奏为例: 节奏型: ...

  5. 【Python图像特征的音乐序列生成】关于mingus一个bug的修复,兼改进情感模型

    mingus在输出midi文件的时候,使用这样的函数: from mingus.containers import NoteContainer from mingus.midi import midi ...

  6. 【Python图像特征的音乐序列生成】关于音乐生成的思路转变

    在前几天的讨论会上,有师兄指出原来的方法实在是很难训练,所以我改进了音乐生成的思路. 首先,我用LSTM生成的一定是一段音乐的序列化表达,那么我就可以用成型的一些数据集去训练LSTM.为了避免生成的音 ...

  7. 【Python图像特征的音乐序列生成】第一阶段的任务分配

    从即日起到7月20号,项目成员进行了第一次任务分配. 赵同学A.岳同学.周同学,负责了图像数据的情感数据集制作,他们根据自己的经验,对图像进行了情绪提取. 赵同学B全权负责向量映射这一块的网络搭建. ...

  8. 【Python图像特征的音乐序列生成】关于小样本的一些思考

    我之前就注意到,深度学习和音乐结合,尤其是从乐理出发进行结合(而不是纯粹的进行音乐生成),是一个尚未被深度挖掘的全新领域.可想而知,这个方向符合我要求的数据肯定是要自己搜集了. 自己搜集的数据,在量上 ...

  9. 【Python图像特征的音乐序列生成】思路的转变

    关于生成网络这边,可能会做一个深度的受限玻尔兹曼机,这样可以保证生成的音乐不会太相似. 情绪识别网络和生成网络的耦合,中间变量可能直接就是一个one-hot向量,用来标注指定的情绪,不做成坐标那种难以 ...

随机推荐

  1. 编译portmap和nfs-utils

    编译portmap和nfs-utils 为了在播放机上实现NFS服务器的功能,我们已经在uClibc中打开了完整RPC支持,并且在新编译的内核中打开了NFS服务器支持.此外还有两个软件包也是提供NFS ...

  2. 使用maven导入任意jar包

    http://mvnrepository.com/ 我这里,因为是spark1.5.2版本. 保存,maven会自动下载jar包到本地仓库.

  3. DP专题

    最全DP总结 https://blog.csdn.net/cc_again/article/details/25866971 ACM题集 https://blog.csdn.net/liuqiyao_ ...

  4. 过滤asp.net页面每次发出请求之前访问

    public class PageFiltert : System.Web.UI.Page { public PageFiltert() { // //TODO: 在此处添加构造函数逻辑 // } p ...

  5. 数据库路由中间件MyCat - 源代码篇(9)

    此文已由作者张镐薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 3. 连接模块 3.5 后端连接 3.5.1 后端连接获取与负载均衡 上一节我们讲了后端连接的基本建立和响应 ...

  6. SpringCloud学习系列之七 ----- Zuul路由网关的过滤器和异常处理

    前言 在上篇中介绍了SpringCloud Zuul路由网关的基本使用版本,本篇则介绍基于SpringCloud(基于SpringBoot2.x,.SpringCloud Finchley版)中的路由 ...

  7. PHP中GD库是做什么用的? PHP GD库介绍11111111

    什么是gd库?    gd库是php处理图形的扩展库,gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片. 在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据 ...

  8. excel 恢复忘记保存的文档

    如果在做Excel的过程遇见突发情况忘记保存文件,那么不要担心,你再次打开这个文件时会有提示,你只需要点击恢复文件即可. 假设因为某些原因,你不小心点了关闭,或者你不知道那个关闭按钮是什么意思,所以就 ...

  9. Noip2016day1 玩具迷题toy

    题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业. 有一天, 这些玩具小人把小南的眼镜藏了起来. 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外.如下图: 这时singer告诉 ...

  10. 剑指Offer的学习笔记(C#篇)-- 从尾到头打印链表

    题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 一 . 个人想法 这个题目搞了一段时间,因为解法好多,比如:是用递归法呢还是循环呢,要不要使用栈呢等等.. 所以,每一种想法 ...