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


举个例子,我们对古诗词《春晓》进行了谱曲,从歌词抽取的结构信息包括节奏和小节划分等信息,然后再配上和弦生成旋律。古诗词一般具有固定的格律,所以可以人工设计规则,而对于不规则的歌词,比如散文诗,就需要通过学习的方法预测结构信息了。
音乐|微软亚洲研究院谭旭AI音乐,技术与艺术的碰撞
文章插图

除了我们前面考虑的结构信息以外,还有一个非常重要的信息就是曲式结构,这个对于生成一首完整的旋律非常重要。我们常见的曲式结构有单一、单二、单三、回旋、变奏、奏鸣曲式以及流行音乐常见的主副歌结构,这些信息非常有助于音乐的生成。同时也需要考虑一首歌的情绪推动,起承转合,比如下图上这种经典的稳定开始、变化扩张、紧张运动、稳定结束的形式,还需要对旋律的情感、情绪做出理解。而这些知识都需要有对音乐的理解。
音乐|微软亚洲研究院谭旭AI音乐,技术与艺术的碰撞
文章插图

因此,我们开展了 MusicBERT 工作,利用大规模音乐数据进行预训练,从而更好地理解音乐,包括情感分类、流派分类、旋律伴奏抽取、结构分析等。
音乐|微软亚洲研究院谭旭AI音乐,技术与艺术的碰撞
文章插图

为了能够开展大规模的预训练,我们构建了一个大规模的音乐数据集 MMD 包含150万首音乐数据,比之前的音乐数据集大10倍。然后针对音乐理解任务我们提出了 OctupleMIDI 这种编码方式,其中含有8种基本的 token,包括拍号、速度、小节、位置、乐器、音高、时长、速度等。相比之前的 REMI、CP 等,编码方式 OctupleMIDI 能极大地缩短音乐序列长度,同时还可以容纳足够的音乐信息。更短的序列长度可以使模型一次性处理更长的音乐片段,从而提升模型对音乐的理解能力。
音乐|微软亚洲研究院谭旭AI音乐,技术与艺术的碰撞
文章插图

我们使用了 BERT 的 Masked Language Modeling 训练方式,采用了 bar-level 的掩码策略,即一次性掩盖一个小节内相同类型的 token,以防止信息泄露。
音乐|微软亚洲研究院谭旭AI音乐,技术与艺术的碰撞
文章插图

【 音乐|微软亚洲研究院谭旭AI音乐,技术与艺术的碰撞】MusicBERT 模型结构采用了基本的 Transformer,同时在模型的输入和输出上针对 OctupleMIDI 的编码做了一些特殊的设计——输入时将8个 token 的 embedding 拼接后通过一个线性层映射到模型的隐层维度,在输出时接8个 softmax 矩阵分别预测相应的 token。
音乐|微软亚洲研究院谭旭AI音乐,技术与艺术的碰撞
文章插图

MusicBERT 在三个下游任务:Melody Completion、Accompaniment Completion 和 Genre Classification 上取得了 SOTA 的效果,远超以前的音乐理解模型。
音乐|微软亚洲研究院谭旭AI音乐,技术与艺术的碰撞
文章插图

2伴奏编曲
在伴奏编曲的生成方面,我们进行了 PopMAG 这个工作。PopMAG 处理的任务形式是给定主旋律和和弦进而生成不同乐器的伴奏,包括鼓、贝斯、吉他、键盘、弦乐等。这其中的一个难点就是要保证多轨音乐的和谐。因此,我们提出了MuMIDI 的编码方式,将多轨音乐编码到一个序列里,使得多轨音乐生成变成了单个序列的生成,这样自然地建模了不同轨音符之间的依赖关系。
音乐|微软亚洲研究院谭旭AI音乐,技术与艺术的碰撞
文章插图

我们在三个数据集上评估了 PopMAG 的伴奏生成效果,根据人的主观评测,生成的伴奏已经比较接近真实的伴奏了。
音乐|微软亚洲研究院谭旭AI音乐,技术与艺术的碰撞