这个AI能用Lady Gaga曲风续写贝多芬

OpenAI前几日突然在Twitch展开直播。此前,OpenAI的每次DOTA2直播都是在这里进行的,但这次的内容不再是电子游戏了,而是直播AI创作的曲子。OpenAI CTO Greg Brockman都调侃说:“六个月前我也想不到我们会把直播频道的分类从DOTA2换成音乐和表演”。

直播的主角是OpenAI新创造的作曲AI“MuseNet”,它可以创作不同风格的、时长达4分钟的乐曲,风格可以根据不同的作曲者变化(巴赫、贝多芬、Oscar Peterson、Frank Sinatra、Bon Jovi)、不同的风格变化(Jazz、Albeniz、电影配乐、乡村、印度宝莱坞、迪士尼),而且乐曲中可以使用 10 种不同的乐器。“MuseNet”使用的是和前段时间 OpenAI 的文本生成模型 GPT-2 类似的大规模 Transformer 模型,而且为了增强它的长序列建模能力,“MuseNet”也使用了稀疏注意力技术。继上次用 GPT-2 生成接近人类水准的短文之后,OpenAI 俨然已经成为了长序列建模的小能手。

学习音乐毕竟是一件有难度的任务,不同的乐器有不同的音色,不同的曲风也有各自的微结构。所以OpenAI的做法是让模型学习并预测MIDI (音符、控制参数等组成的数字音频信号,可以用MIDI播放器播放),而不是学习原始音频波形;同时OpenAI也为模型设计了对应作曲者和乐器的token,简化数据参数。

在稀疏Transformer的重新计算以及优化过的核心帮助下,MuseNet被设计为一个72层、具有24个注意力头的网络,它可以在4096个元素长度的内容上进行完整的注意力操作。正因为它能够处理的序列足够长,所以它可以记住曲子中的长段结构,完成段落的重复以及变化。

为了让模型更好地控制乐曲主体内容的结构,OpenAI为模型设计了多种不同的嵌入。除了正常的位置嵌入之外,他们额外让模型学习一个嵌入,用它来追踪每个样本中已经经过的时间。这样,所有同时响起的音符都会具有同样的时间嵌入。他们还为和弦中的每个音符增加了一个嵌入(这种做法类似于相对注意力,当模型需要生成第四个音符的时候它会提供第三个音符作为参考,也就让模型更容易学习)。最后,他们还增加了两种不同的结构嵌入,它们的共同作用是告诉模型某一段音乐在更大的曲目范围内的位置;其中,第一个嵌入会把大段音乐分为128个部分,第二个嵌入会从127到0倒数,表示距离结尾还有多远。

模型的效果是惊人的,不仅当天的Twitch直播中演示的不同风格的曲目辨识度高、旋律自然,而且OpenAI在介绍博客中展示的混搭生成结果(从某首知名乐曲中取一个小节作为开头,然后让模型以其他的风格续写,模型会给出四种结果),以及好奇的网友们利用OpenAI提供的试验工具生成的乐曲都让大家无比钦佩。我们推荐大家到MuseNet的官方介绍页面亲自尝试混搭续写工具以及听听已有的生成乐曲。

OpenAI还根据嵌入的学习结果制作了不同作曲者之间的相似度关系图,也和我们日常的认知非常相符。

在OpenAI的研究人员们看来,音乐生成任务的难度介于文本和图像之间,它具有和文本类似的灵活的序列结构(比如图像中可以固定地参照前N个元素,而文本和音乐中的这个数字大小是不固定的)。他们收集了训练数据集并尝试了不同的训练技巧。

这项研究实在是生动有趣,OpenAI也希望大家多多参与活动,多多讨论和反馈,也帮助他们选定这项研究的下一步目标。公开参与的时间一直持续到5月12日!

相关新闻

    推荐阅读