zoukankan      html  css  js  c++  java
  • 【Python图像特征的音乐序列生成】如何生成旋律(大纲),以及整个项目的全部流程

    今天连看三篇论文,不是很细致地看,也没有具体去实现,只是大概明白了一些新思路。这三篇论文,一篇概述了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网络搭建。

  • 相关阅读:
    P1144 最短路计数 题解 最短路应用题
    C++高精度加减乘除模板
    HDU3746 Teacher YYF 题解 KMP算法
    POJ3080 Blue Jeans 题解 KMP算法
    POJ2185 Milking Grid 题解 KMP算法
    POJ2752 Seek the Name, Seek the Fame 题解 KMP算法
    POJ2406 Power Strings 题解 KMP算法
    HDU2087 剪花布条 题解 KMP算法
    eclipse创建maven项目(详细)
    maven的作用及优势
  • 原文地址:https://www.cnblogs.com/ldzhangyx/p/7127675.html
Copyright © 2011-2022 走看看