还在捞五条人?不如用AI自己组乐队

2020-09-19 | 作者:微软亚洲研究院

编者按:上周,《乐队的夏天2》的乐队合作 OST(影视原声)改编赛环节结束,不少乐队都是头一次尝试和其他乐队一起,在短时间内配合进行音乐的改编和演出。来自微软亚洲研究院和浙江大学的全新“音乐人” PopMAG,非常理解这其中的不易,今天就让我们看看它是如何应对的。


让无数乐迷们躁起来的《乐队的夏天2》,即将在今晚产生七支晋级乐队。上周,经过一番“眉来眼去”、“暗送秋波”,乐夏2的十强乐队完成了合作配对,碰撞出的火花很是惊艳。无论是重塑与 Mandarin 从各自积累中摸索出的个性化改编《窗外》,还是通过锁呐融合大波浪和福禄寿两支不同乐队风格的《妹妹你大胆地往前走》,都让乐迷看到了乐队间合作的激情,也看到二次创作中乐队不断磨合、逐渐和谐的过程。

乐队是将不同乐器、不同声音汇聚,最终形成的一个和谐的整体。而这个和谐整体中的默契是由乐队成员们朝夕相处地练团培养、磨合出来的,同样重要的,还有乐队的编曲能力。最近,微软亚洲研究院机器学习组和浙江大学合作完成的一项研究,或许能够拓展音乐人的创作空间,加速和谐乐曲的生成,也帮乐迷朋友圆一个“乐队梦”。

在此需要强调,利用 AI 技术生成伴奏音乐的研究,并不是为了取代专业音乐人,人工智能+人类智能才是最佳组合哦~

这个名为 PopMAG 的技术可以自动生成流行音乐的多轨伴奏。只要给它一段主旋律,它就可以自动生成由“虚拟乐队”默契配合的伴奏效果。在对 PopMAG 的研究过程中,研究员们不仅解决了不同乐器之间和谐“相处”的难题,还缩短了模型序列,提升了计算效率,优化了伴奏生成的质量。

在中秋临近之际,让我们先来欣赏一下由 PopMAG 自动生成的、中西融合的《春江花月夜》片段。

春江花月夜-PopMAG伴奏版

春江花月夜-无伴奏版

该曲目主旋律基于 MIDI 数据生成,音色为琵琶。伴奏则由 AI 技术生成,其中包含有弦乐、贝斯、鼓等。

全新 MuMIDI 编码,确保不同乐器间的和谐度

在音乐自动生成领域,早期研究主要集中在单轨的音乐生成上,例如古典的钢琴曲,或一些流行音乐的主旋律生成。而乐队的演奏通常包含多种乐器,即多个音轨的音乐,学术界此前也有少量研究尝试让 AI 生成多轨音乐,但整体效果欠佳,这是因为要让多个轨道的音乐和谐、动听,并非易事。

音乐的好坏是一种主观感受,但重点是要能给人们带来享受。而判断伴奏音乐是否和谐,则至少要包含两个基本因素:首先,伴奏要基于主旋律的和弦进行,每个音轨都应配合当前的和弦去发挥,不能出现“弦外之音”,并确保多个轨道的音乐都处于同一个大的框架内;其次,在统一框架内还要考虑多个轨道之间的配合是否协调,节拍、卡点等是否精准。

此前的一些研究,将多轨音乐视为一张二维图片,称之为钢琴卷帘图,以横轴表示时间,纵轴表示不同轨道的音符音高,类似于钢琴的黑白键,然后把多轨音乐当作图片来生成,但这种方法很受限于数据的规模,一首歌或一个音乐片断就是一张图片,样本量较少,效果也大打折扣。还有些研究,采用了不同的 AI 模型去生成不同的音轨,但这导致不同音轨相互间过于独立,所以当各音轨整合在一起的时候,会显得音乐整体不够和谐。

钢琴卷帘图

为了解决上述问题,微软亚洲研究院和浙江大学提出了一种全新的编码方式 MuMIDI。该方法可以将多轨音乐当成单个序列生成,利用一个机器学习模型生成所有伴奏音轨,既不用生成图片,也不用为每个音轨使用不同的模型,框架完全统一,因此,不同轨道之间的和谐问题也迎刃而解。

MuMIDI 是基于传统音乐编码 MIDI 的一种扩展形式。当 MuMIDI 把多轨音乐当作一个序列生成时,系统能够显式地建模音符之间的依赖关系,保证不同时刻的音符、同一时刻不同轨道的音符,都可以实现相互依赖。举例来说,在某个位置上生成键盘音后,当系统再生成贝斯音轨时就会考虑到前者,同时它还会考虑较早时间点的音符。由于依赖关系的建模比以往更细致,所以不同音轨之间的和谐体验也更加突出。

MuMIDI 示例,左图为原始多轨音符序列,右图为 MuMIDI 编码后的音符序列。

模型序列太长?缩短它,也不影响伴奏生成质量

尽管 MuMIDI 可以使得多轨音频和谐“共处”,但研究员们发现,将多轨音乐编码到一个模型序列中会产生新的问题,即所生成的模型序列长度会大大增加。这是因为每个新音符的生成,都需要依赖以往的历史信息,历史信息的时长越长,做出来的伴奏音乐效果也越好,但这却加重了长距离建模的挑战。

针对这个问题,研究员们又做了两个方面的改进:

将三个属性压缩成一个表征。编码中的单个音符通常会采用三个属性表示:音高、时长、速度。无论是键盘、贝司,或是吉他、鼓声的音符,都可以用这三个属性描述。之前每个音符的三个属性是铺开生成的,现在研究员把它压缩成一个表征,通过三个分类器分别预测三个属性,每一步可以同时生成三个符号标记(Token),这样就可以把序列的长度缩减至原来的1/3。实验发现,同时生成三个属性,不仅不会相互影响,还有助于时长和速度的建模,因为时长和速度都比较依赖于音高,三个属性互相耦合,将其合为一体更有利于建模,而且还可以防止过拟合的现象产生。

引入额外的长上下文(Long-context)作为记忆(Memory)。将历史音符存在一个记忆(Memory)中,可以让当前的建模参照更远距离的历史信息,相当于帮助模型延长了记忆,从而能更加优化建模效果。事实上,采用记忆结构是自然语言处理领域较为常见的方法,该项工作的研究员们也将它用在了音乐的自动生成上。由主旋律生成多轨伴奏的过程是一个编解码(Encoder-Decoder)过程,在编码器端引入主旋律的历史记忆,同时在解码器端引入多轨伴奏的历史记忆,而且这个记忆是一个循环结构,会实时更新为上一时刻的记忆。

PopMAG 模型的输入示例,每个时间步的输入向量是 token 向量、元信息向量、位置向量和小节标记向量的加和。

AI 合成伴奏,音乐创作的另一种选择

目前,基于机器学习技术的流行音乐伴奏技术 PopMAG,已经在 LMD、FreeMidi 和 CPMD 三个数据集上进行了测试,并且从主客观层面都获得了好评。主观层面,在这三个数据集,分别有42%、38%、40%的人认为,PopMAG 生成的伴奏比数据集中的原版配乐(ground truth)更加悦耳。

客观层面,则是将 PopMAG 的合成伴奏与原版音乐进行客观指标的对比。第一个指标是生成伴奏的和弦与主旋律的和弦的匹配精度;第二个指标是模型的拟合程度 PPL,这里也是借鉴了自然语言处理中语言模型的拟合指标,用于衡量模型的质量;此外,还有生成伴奏与原版配乐的接近程度,如音高、时长和速度的分布统计的接近程度等。

PopMAG 比较。第#2,#3行比较了其它 MIDI 编码的性能;第#4至#6行比较了在编码器和解码器端使用历史记忆的性能;第#7至#10行比较了不同位置表征的性能。

利用 AI 技术合成伴奏音乐的研究目标并非为了取代音乐家,这不仅是因为目前 AI 所生成的音乐与人类的作品相距甚远,更是因为音乐等艺术形态中所蕴含的人类情感和意识表达,始终是人类所独有的,任何 AI 都无法媲美。正如微软亚洲研究院此前推出的麻将 AI Suphx,在国际知名专业麻将平台“天凤”上所获得的评价:Suphx 的风格自成一派,激发了很多专业选手的灵感。未来,大家或许也可以尝试用 AI 技术去组建一个风格自成一派的虚拟“乐队”,扩展对音乐的多元体验。

论文:PopMAG: Pop Music Accompaniment Generation

链接:https://arxiv.org/pdf/2008.07703.pdf

作者:任意、何金铮、谭旭、秦涛、赵洲、刘铁岩

微软亚洲研究院机器学习组一直致力于音乐和语音方面的研究,包括歌词和旋律生成、伴奏编曲、歌声合成、语音合成等。欢迎关注我们音乐和语音方面的研究工作:https://speechresearch.github.io/