前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >人人都是作曲家:基于深度神经网络的音乐风格迁移

人人都是作曲家:基于深度神经网络的音乐风格迁移

作者头像
企鹅号小编
发布2018-02-06 12:57:18
8620
发布2018-02-06 12:57:18
举报
文章被收录于专栏:企鹅号快讯企鹅号快讯

参与 | shawn

编辑 | Donna

什么是风格迁移?

过去十年间,深度神经网络(DNN)被用于解决多种人工智能的任务,例如:图像分类、语音识别和游戏等,并迅速成为最先进的解决方法。

研究人员致力于开发可以帮助我们理解DNN模型学习原理的可视化工具(例如:Deep Dream、Filters),揭开DNN在图像分类领域成功的秘密。他们开发出了一个有趣的应用:从一个图像中提取风格并将其应用于另一个“内容不同”的图像。这就是所谓的“图像风格迁移”。

左图:内容图像,中间:风格图像,右图:内容+风格(图像来源: Google Research Blog)

这个应用不仅吸引了大量的研究人员,而且还催生了几个非常成功的手机应用(如:Prisma)。在过去几年间,这些图像风格迁移方法获得了巨大的进步,并有了一些非常出色的结果。

Adobe风格迁移,图像来源:Engadget

Prisma网站的示例

虽然这些算法在图像上取得了成功,但是在音频或音乐等其他领域却效果不佳,得出的结果远远不如在图像上那样令人满意。这说明音乐风格迁移更为困难。

在本研究中,我们将更加具体地探索音乐风格迁移,试图找出解决这个问题的方法。

为什么音乐风格转移更为困难?

在研究这个问题之前,我们需要搞清:什么是音乐风格转移?

回答这个问题很重要。对于图像而言,内容和风格的概念都是直观的。图像内容是指图像中出现的事物,例如狗、房屋、脸等,图像风格则是指图像的颜色、光线明暗、笔触和质感。

但是,音乐在语义上更加抽象,并且拥有多层面的性质。情境不同,音乐内容所指的含义有时也不同。人们常常认为音乐内容是指曲调,音乐风格是指编曲或和声。但是,音乐内容也可以指歌词内容,不同的曲调可以诠释为不同的风格。

在经典音乐中,音乐内容可以被定义为书面形式的乐谱(包括和声),音乐风格则是演奏者在加入自己的音乐表现力(现场修改乐谱)后对乐谱的诠释。因此,音乐风格迁移很难定义。另外还有几个关键因素让定义变得更加困难:

机器目前还无法很好地理解音乐:图像风格迁移之所以能成功实现,实际上是因为DNN可以出色地完成图像识别任务(例如:目标识别)。由于DNN能学习可以用来区分图像中不同目标的特征,因此它可以利用反向传播算法改变目标图像,使其与内容图像的特征相匹配。

虽然我们在开发基于DNN的音乐理解(例如:曲调转录、类型识别等)模型上取得了很大的进展,但是我们仍然远远无法实现在图像上实现的结果。这对音乐风格迁移而言是一个很大的限制。

由于我们现在的模型还无法学习可以对音乐进行分类的“优秀”特征,因此直接套用图像风格迁移算法无法得出类似的结果。

音乐是时序性的:音乐是一种时间序列数据,也就是说音乐随时间变化。对模型而言,这使得音乐学习起来十分困难。

虽然循环神经网络(RNN)和长短期记忆网络(LSTM)可以使模型更加高效地学习时序数据,但是我们仍没有开发出能够学习复制音乐中长期结构的模型。

顺便说一下:这是一个热门的研究课题,谷歌的Magenta团队在这方面取得了不错的成果。

音乐是离散的(至少在乐符上是这样的):符号音乐或乐谱在本质上是离散的。十二平均律系统是当前使用最普遍的调音系统,其音高在连续的频率谱中处于离散的位置。

同样,音符时值也离散的(通常表示为四分音符、全音符等)。这使得(在图像上使用的)反向传播算法很难应用于符号音乐。

十二平均律系统中音高的离散性

因此,图像风格迁移中使用的算法在逻辑上是无法直接套用在音乐上的。为了让风格迁移算法可以适用于音乐风格迁移,必须根据音乐概念和原理重新设计这些算法。

为什么要进行音乐风格迁移?

在探讨如何解决这个问题之前,我们必须理解解决这个问题有什么意义。和图像风格迁移一样,音乐风格迁移的潜在应用也相当有趣。开发供作曲家使用的编曲工具就是一种直接的应用。

例如,可以开发使用不同风格的管弦乐来改编乐曲的自动化工具,让作曲家可以使用这种工具快速地尝试不同的想法,是不是十分有用呢?这样的工具也可以用来混搭不同风格的歌曲,这可能会受到DJ们的追捧。

音乐风格迁移上取得的进步可以间接带来音乐信息学系统的进步。正如上文所述,为了让风格迁移算法可以适用于音乐数据,我们开发出的模型必须能够从不同层面上更好地“理解”音乐。

简化音乐风格迁移问题

由于此任务相对复杂,我们决定先分析不同类型的音乐的单音乐曲。单音乐曲就是音符序列,每个音符都有自己的音高和时值。音高的变化通常取决于曲调的音阶,时值的变化则取决于节奏。

这样,我们就可以得出音高内容和节奏风格的明确区别,借助这些区别我们可以转化风格迁移问题。另外,分析单音乐曲还可以让我们不必处理管弦乐编曲和歌词之类的问题。

由于我们没有可以用来区分音高变化和单音乐曲节奏的预训练模型,于是我们先提出了一种非常简单的迁移音乐风格的方法。

我们尝试学习不同类型的乐曲的音高和音符时值的模式,然后将这些模式整合在一起。

下图为这种方法的说明图。

音乐风格迁移法说明图

分别学习音高和节奏变化

数据表达:

我们将单音曲调表示为乐符序列,每个乐符都有一个音高和一个时值。

为了确保表达音符(representation key)相互独立,我们使用了一种基于音程的表达方法,将下一个音符的音高表示为相对于前一个音符的音高的偏离(+/- x半音)。我们为音高和音符时值分别创建了两个库。每个离散状态(音高、四分音符、全音符、附点四分音符、时值等偏离+1, -1, +2, -2)都分配有一个库索引。

模型架构:

在本研究中,我们使用的架构类似于Colombo等人使用的架构,即用一种类型的音乐同时训练两个基于LSTM的网络:

在给定前一音符和音符时值的条件下,学习如何预测下一音高的音高网络;

在给定下一音符和前一音符时值的条件下,学习如何预测下一音符时值的时值网络。

在Colombo等人的架构的基础上,我们在LSTM网络之前添加了嵌入层(embedding layers),利用其将输入音高和音符时值映射至可学习的嵌入间(embedding spaces)上。

网络架构图

训练过程:

使用每一种类型的音乐同时训练音高网络和时值网络。

我们使用了两个数据集:

包含2000首爱尔兰和瑞典民谣的Norbeck Folk数据集;

包含500首爵士乐曲的爵士乐数据集(未公开)。

整合训练后的模型:

在测试期间,先使用第一种类型的音乐(例如民谣)训练的音高网络和时值网络生成一首乐曲。然后,用另一种不同类型的音乐(例如爵士乐)训练一个时值网络,将所生成乐曲的音高序列作为该时值网络的一个输入,这样就可以生成一个新的时值序列。

通过整合这两个网络所生成的乐曲的音高序列与第一种类型的音乐(民谣)的音高相一致,时值序列则与第二种类型的音乐(爵士乐)的音符时值相一致。

初步结果

下方是样本输出的几个节选片段:

乐谱节选(民谣音高和民谣音符时值)

乐谱节选(民谣音高和爵士乐音符时值)

乐谱节选(爵士乐音高和爵士乐音符时值)

乐谱节选(爵士乐音高和音高和民谣音符时值)

结论

虽然我们当前的算法可以为之后的研究提供一个不错的起点,但是它仍有一些严重的缺陷:

如果只给定一首目标乐曲,模型无法实现“风格迁移”:模型需要从一种类型的音乐学习音高和音符市值模式,然后将学习到的所有模式泛化到另一种类型的音乐。我们的目标是可以将一首给定乐曲的风格转变成目标歌曲/乐曲的风格。

无法控制风格改变的程度:如果有一个“按钮”可以控制风格改变的程度,那就太完美了。

在迁移风格时无法保留被转变乐曲的音乐结构:一般而言,长期结构(Long-term structure)对音乐鉴赏价值至关重要。如果要想让生成的乐曲具有音乐美感,就必须保留原乐曲的音乐结构。

我们将在之后的工作中努力探索克服这些缺陷的方法。

作者 | Ashis Pati

精彩预告

2018年1月16日“AI生态赋能2018论坛暨CSDN AI新战略发布会”即将重磅开启!

国内权威专家/名企CTO/CIO/精英大伽齐聚,各路高手全方位多视角共话AI时代。更有《2017-2018 AI行业应用&技术人才成长路线图》重磅发布,敬请期待!

本文来自企鹅号 - AI科技大本营媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - AI科技大本营媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档