音乐|微软亚洲研究院谭旭AI音乐,技术与艺术的碰撞( 二 )


我们可以从两方面去考虑上述问题,一方面是纯粹基于深度学习的方法,从数据中去学习。另一方面是利用先验知识,因为人类在创作歌曲时也是需要学习很多音乐知识的,比如音调、节奏、结构、曲式等,通过把音乐知识和深度学习相结合,可以更好地建模歌词和旋律的关系。
音乐|微软亚洲研究院谭旭AI音乐,技术与艺术的碰撞
文章插图

首先介绍 SongMASS,它是纯粹靠数据驱动,用深度学习来建模歌词和旋律关系的方法。因为歌词和旋律是弱耦合关系,缺乏数据,所以我们利用了预训练,通过无监督、自监督、半监督的方法从无标签数据中学习以弥补数据不足。歌词和旋律虽然在内容上是弱耦合,但它们之间需要严格对齐,一个字或者音节需要对应到具体的音符。为此,我们提出了通过序列到序列学习的 encoder-attention-decoder 里的 attention 来抽取对齐关系。
音乐|微软亚洲研究院谭旭AI音乐,技术与艺术的碰撞
文章插图

预训练采用了我们之前提出的 Masked Sequence to Sequence Pre-training (MASS) 方法,将歌词和旋律分别看成是自然语言的一个段落,每句歌词和旋律对应一个句子。再从源句子掩盖一个片段,然后在解码器预测这个片段,通过这样的方法我们就可以学习数据的知识了。
音乐|微软亚洲研究院谭旭AI音乐,技术与艺术的碰撞
文章插图

同时我们给 encoder-decoder attention 施加了一些约束,让它能学习到歌词和旋律的对齐关系。我们分别施加了句子级别和词级别的约束,让它呈现一个单调递增的对角线形式。在预测过程中,可以从 attention 里抽取得到这个对齐关系。
音乐|微软亚洲研究院谭旭AI音乐,技术与艺术的碰撞
文章插图

我们从客观和主观评价的方式分别评估了 SongMASS 和基线方法的效果,在两个评价方式上,SongMASS 都取得了比基线方法好很多的效果,具体实验结果可参考 SongMASS 论文(论文链接:https://arxiv.org/pdf/2012.05168.pdf),更多的生成样例可参见 demo 网页:https://speechresearch.github.io/songmass/ 。
接下来介绍基于音乐知识辅助的深度学习方法实现的歌词到旋律的生成。有哪些音乐知识能够帮助歌词到旋律的生成呢?这里大概包括以下几个维度:音调、节奏、结构等。
我们先来看一下这些知识应用得不好会产生什么样的问题。首先是音调的知识,我们的原则是保证歌词和旋律的音调要一致,不能相违背,比如《故乡的云》中“归来吧”听起来像是“鬼来吧”,而《你知道我在等你吗》中“你知道我在等你吗?”听起来像是“你知道我在等你妈!”。导致这个问题产生的原因就是因为歌词和旋律的声调不一致。
第二个是节奏知识,我们说重要的歌词要重拍、要高音、要持续。一个好的例子就是《明明白白我的心》,里面的“愿意”和“靠近”,对应的旋律就做到了强调。第三方面是结构知识,这里我们需要考虑歌词的语句和旋律的语句要对应,起承转合要对应,还要考虑旋律本身的重复、模进以及曲式结构。我们开展了相应的工作来利用这些音乐知识帮助旋律生成得更好。
音乐|微软亚洲研究院谭旭AI音乐,技术与艺术的碰撞
文章插图

我们的 StructMelody 工作利用音乐的结构信息实现了歌词到旋律的生成。我们构建了一个两阶段的旋律生成方法,利用结构信息作为歌词和旋律的桥梁。首先从歌词中提取结构信息,然后从结构信息生成旋律。第二阶段的结构信息生成旋律则可以利用自监督的方法,也就是从旋律中抽取结构,然后再训练结构到旋律的序列到序列模型。我们只需要让第一阶段生成的结构和第二阶段的结构尽量一致就可以。