Professional Documents
Culture Documents
基于递归神经网络人工智能技术的音乐创作
马鹏程1 卢树强1 王晓岸1 李晓东2 宋涵宇3
(1. 北京脑陆科技公司 北京市 100083 2. 前瑞丽杂志、寺库 北京市 100176)
(3. 中央民族大学音乐学院 北京市 100081)
1 简介 实现分类目标。有鉴于此,这种端到端的数据模型技术能够极大地
音乐创作(music creation)是指音乐专业人员或作曲家创造具 为不同的基于数据应用的场景和任务提供极大的便利和效率。而深
有音乐美的乐曲的复杂的精神与技能生产过程 [1]。主要方式是按照 度学习对于音乐创作与生成的场景任务,通过有效的进行音乐数据
不同音节对应时间序列关系进行组合,如旋律和和声,并配以相宜 集的构造和模型的设计选择,从而生成新的音乐。这也将使得音乐
的节奏进行组织产生的具有特殊音色和纹理动态声波。音乐创作通 创作对于更多的人能够完成,也能够为人类带来更多不同类型和不
常是由受过专业音乐培训和教育的作曲家创造具有音乐美的乐曲, 同风格的优美音乐。如文献 [10] 构建了一种基于神经网络结果的生
是一项极其复杂的技术和任务。 成模型,能够生成像人类创作出的和谐和优美的音乐。文献 [11] 中
随着人工智能深度学习算法在图像识别 [2][3][4],视频检测 [5], 基于 RNN 深度神经网络结构设计的模型结合音乐先验知识生成了
自然语言处理 [6][7] 及语音处理 [8] 等方面的优秀表现和对应行业的广 pop music。文献 [12] 通过神经网络进行了序列建模,基于简单的音
泛应用,深度学习模型技术的发展完善及应用的场景正在越来越多 乐数据样本集进行了辅助音乐创作。文献 [13] 通过双向长短时记忆
地被挖掘。深度学习算法 [9] 是一种新兴的多层神经网络降维算法, (BLSTM)网络结构模型和对应的数据集,进行了和弦音乐的生
通过组建含有多个隐层的神经网络深层模型,对输入的高维数据逐 成。文献 [14] 中通过弱监督深度递归神经网络,以音频能量功率谱
层提取特征,以发现数据的低维嵌套结构,形成更加抽象有效的高 作为输入,进行了舞曲生成。文献 [15] 中基于深度学习中的自编码
层表示。如图 1 所示,一个具有三层卷积连接层和两层全连接层的 机(VAEs)和对抗生成网络模型(GANs),进行了音乐分格迁移
神经网络结构,每层对输入的数据自动实现了抽象特征提取,最后 生成。
图 1:神经网络结构示例
176
电子技术与软件工程 数据库技术
Electronic Technology & Software Engineering Database Technology
图 2:Music-Coder 音乐生成流程
2 本文工作说明
通过第一章我们看到对应于不同的音乐素材和类型及任务,可
以选择不同的生成模型和方案。这篇文章中,我们主要实现通过神
经网络模型生成特定作曲家类型音乐风格的音乐。由于音乐的载体
是声音,而声音类型的数据可以看作是一种定长的时序数据。基于
此,所以我们选择了可以处理时间序列数据类型的一种神经网络结
构 LSTM[16][17] 来实现了通过一种附加约束的监管员机制的音乐生成
器(Music-coder),并进行音乐生成,并且取得了优秀的音乐生成
效果。Music-coder 音乐生成器的主要工作流程如图 2 所示。本文
主要工作为:
(1)通过应用一种 LSTM 深度学习模型,实现了对特定作曲
分格的音乐生成。
(2)并对生成的音乐集进行了与原创音乐集相似度计算,在
生成音乐特征分布于相似度 2 个指标上都达到了较好的效果。
(3)通过真实音乐人与作曲家对生成音乐数据进行双盲监测,
平均通过率达到了 80% 以上。
3 音乐生成方案设计
3.1 数据集选择与处理
图 3:RNN 模型结构示意
我们收集了著名音乐人周杰伦(由于周杰伦的作曲风格具有个
人特色,且类型相对较丰富)的 midi 格式作曲素材,总共 250 首, 需要对应的约束条件,如定义 3 所述。
平均每首时长约 2-4mins,从其中选择了满足 3-4Mins 时长的 60 首 定义 1:如果 M 为音乐数据,则 Mt∈N,N 为有限数集,Mt
作为训练数据集 1(DataSet1)。除此之外,对 60 首 midi 作曲进 为 t 时刻该音乐的音节;
行了分轨提取与处理,总共提取 XXX 轨,将轨音乐作为训练数据 定义 2:如果 M 为序列数据集,则 Mt=f(M(t-1),M(t-2)…….
集 2(DataSet2)。 M(t-n);
定义 3:如果 M 为音乐数据,则 f(M)≤C,C 为约束条件集;
3.2 数据预处理与算法设计
基于上述定义 1,定义 2,定义 3 的音乐数据结构的特性,潜
3.2.1 音乐数据结构分析与模型选择 在的满足处理该类特征数据的模型方案有基于 RNN 结构的深度学
音乐数据结构是一种标准化的时序数据,不同的时刻数据对应 习模型 [18],基于专家设计的音乐规则组合模型的生生成模型 [19],
的是一个有限集,即如定义 1 所述。同时,音乐又是一种时序关联 基于神经网络进行音乐生成的模型 [20],基于隐马尔科夫 HMM 的
数据,所具有的特性如定义 2 所述。最后,由于音乐的生产最后是 音乐序列生成模型 [21],基于神经网络和搜索树结合的音乐生成模
需要满足一定美学和艺术功能和需求的,所以音乐数据本身最后得 型 [22],基于蒙特卡洛模拟采样进行的音乐生成模型 [23],基于对抗
生成网络 GAN 进行的音乐生成 [24] 等。
177
数据库技术 电子技术与软件工程
Database Technology Electronic Technology & Software Engineering
表 1:LSTM 结构设置
输出结构
神经网络层类型 参数
网络结构特征 网络结构特征 网络结构特征
Embedding 层 2 256 2048 86016
LSTM 第一层 2 256 256 2360320
Dropout 层 2 256 256 0
LSTM 层 2 256 256 525312
Dropout 层 2 256 256 0
LSTM 层 2 256 256 525312
Dropout 层 2 256 256 0
TimeDist 层 2 256 42 10794
表 2:生成音乐集 G 测试结果
表 3:专业音乐人员测试结果
格就能知道最后一节的音节。在这种情况下,相关信息与需要该信
息的位置距离较近,而 LSTM 能够学习利用以前的信息来对当前任
务进行相应的操作。
不管是 RNN 还是 LSTM 及其衍生主要是随着时间推移进行顺
序处理,长期信息及 t-n 时刻信息需在进入 t 时刻单元前顺序遍历
所有单元,这会存在梯度消失的问题。同时,LSTM 能够记住长期
的信息,但是它们只能记住 100 个量级的序列,或者更长的序列,
这对长序列音乐生成会有一定的限制。同时,对 LSTM 模型的训练
它们对硬件的要求非常高,即对计算单元要求比较多,这使得计算
图 4:LSTM 模型结构
时间会较慢。
结合文章生成音乐任务需求,除了满足时序特征处理的功能, 所以本文以选择以 LSTM 作为主要模型架构并结合,并通过监
还需要基于处理建模后进行音乐生成,本文选择能够捕捉更多时序 管器机制(Monitor Mechanism)来进行音乐条件约束,从而使得
信息的 RNN 结构的 LSTM 模型进行音乐生成。 LSTM 处理序列要求降短,从而能够在音乐生成效率上进行提高,
基于 RNN 机制的深度学习模型将是可行的音乐处理与生成 以此来在满足音乐生成性能的规避 LSTM 模型本身的局限。
选 择, 鉴 于 此, 在 各 类 时 序 任 务 上 比 较 常 用 的 Long Short Term 为了机器算法计算方便,我们将 Dataset1 和 Dataset2 数据集从
Memory networks(以下简称 LSTM)模型架构将成为非常有希望 MIDI 格式转换为 ABC 文件格式,提供给人工智能模型进行训练计
的模型之一。LSTM,是一种特殊的 RNN 网络,该网络设计出来 算。
是为了解决长依赖问题。该网络由 Hochreiter 和 Schmidhuber(1997) 3.2.2 模型结构设计与配置
引入,并有许多人对其进行了改进和普及。他们的工作被用来解决
(1)LSTM 结构。LSTM 的关键是元胞状态(Cell State),
了各种各样的问题,直到目前还被广泛应用。所有循环神经网络都
这种传送带结构直接穿过整个流程链,同时只有一些较小的线性交
具有神经网络的重复模块链的形式。在标准的 RNN 中,该重复模
互。上面承载的信息可以很容易地传递到下一个计算单元而不改变。
块将具有非常简单的结构,例如单个 tanh 层。标准的 RNN 网络模
同时 LSTM 有能力对元胞状态添加或者删除信息,这种能力通过门
型如图 3 所示。
结构来控制 [24],它们由一个 Sigmoid 神经网络层 [25] 和一个元素级
对应的 LSTM 结构是基于 RNN 结构的改良模型,LSTM 网络
相乘操作组成,能够选择性让信息通过。一个完整 LSTM 有 3 个门
能通过一种被称为门的结构对细胞状态进行删除或者添加信息,门
结构,来保护和控制元胞状态,如图 4 所示。
能够有选择性的决定让哪些信息通过,本身可以实现遗忘和记忆机
LSTM 用两个门来控制单元状态 c 的内容,一个是遗忘门(forget
制。所以利用其在进行音乐时序数据处理时,是可以将以前的信息
gate),它决定了上一时刻的单元状态有多少保留到当前时刻。另
与当前的任务进行连接,例如使用以前的音乐帧来帮助网络理解当
一个是输入门(input gate),它决定了当前时刻网络的输入有多少
前音乐帧。有时我们需要利用近期的信息来执行来处理当前的任务。
保存到单元状态。LSTM 用输出门(output gate)来控制单元状态
例如,考虑用一个音乐模型通过利用以前的音乐序列信息来预测下
有多少输出到 LSTM 的当前输出值。W 为计算过程权重矩阵,tanh
一个音节和音符,有时我们不需要其他的信息,通过前面的音乐风
178
电子技术与软件工程 数据库技术
Electronic Technology & Software Engineering Database Technology
图 5:监管员机制
179
数据库技术 电子技术与软件工程
Database Technology Electronic Technology & Software Engineering
180