新一代作曲家诞生:OpenAI新模型超强续写乐曲,融合音乐风格毫不违和
2019年04月26日 由 老张 发表
31509
0
OpenAI发布了深度神经网络Musenet,以此宣告它已向音乐进军。
Musenet可以用10种不同的乐器制作4分钟的音乐作品,并能融合各种风格,如乡村、莫扎特和披头士的曲风。
MuseNet并不是用团队对音乐的理解来明确编程的,而是通过学习预测成千上万MIDI文件中的下一个token,来发现和声、节奏和风格的模式。
它使用与GPT-2相同的通用无监督技术,经过训练可预测序列中的下一个token,无论是音频还是文本。
示例模型给出了肖邦夜曲的前6个音符,然后用钢琴,鼓,贝司和吉他续写出流行风格的曲目。该模型将古典主义音乐和摇滚乐队Bon Jovi的风格融合在一起,听起来毫无违和感。
试听:soundcloud.com/openai_audio/pop-nocturne
试玩MuseNet
OpenAI在网站上发布了基于MuseNet的原型,它只开放了MuseNet的一部分选项:
openai.com/blog/musenet
首先,你需要选择一个开场风格,有六个选项:
你还需要确定想要以谁的风格作曲,同样有六个选项:
这属于简单模式(默认显示),你将听到预先生成的随机样本。你也可以直接点击高级设置,选择多种乐器和TOKENS,这需要更长的时间,但你将创建一个全新的作品。
然后点击右箭头开始生成音乐,以开头为贝多芬第五交响曲(命运),生成LADYGAGA曲风为例,团队可以看到预先准备好的样本有四个,你可以拖拽音频条看旋律点的变化,也可以下载或分享。
该工具目前只是原型,MuseNet的局限性包括:
- MuseNet通过计算所有可能的音符和乐器的概率来生成每个音符。模型转移使你的乐器选择更贴切,但它总有可能选择其他乐器。
- MuseNet在风格和乐器的奇怪搭配上(如肖邦配贝斯和鼓)遇到了更大的困难。如果你选择最接近作曲家或乐队通常风格的乐器,生成的音乐会更自然。
作曲家和乐器tokens
团队创建了作曲家和乐器tokens,以便更好地控制MuseNet生成的样本种类。在训练期间,这些作曲家和乐器标记被添加到每个样本之前,模型将学习使用此信息进行音符预测。
此外,将MuseNet中嵌入可视化,让模型深入了解所学到的内容,使用t-SNE创建各种音乐作曲家和风格嵌入的二维地图:
将鼠标悬停在某个点上,即可观察到它与其他点的关联,以莫扎特为例:
MuseNet使用稀疏变换器的重新计算和优化内核来训练具有24个注意力头的72层网络,这个漫长的背景可能是它能够记住一个片段中的长期结构的一个原因,就像模仿肖邦的样本一样,它还可以创建音乐旋律结构,如模仿莫扎特的样本。
数据集
团队从许多不同来源收集了MuseNet的训练数据。ClassicalArchives和BitMidi为这个项目捐赠了大量的MIDI文件,另外还在网上找到了几个系列,包括爵士,流行,非洲,印度和阿拉伯风格。此外还使用了MAESTRO数据集。
在顺序数据上进行训练:给定一组音符,要求它预测之后的音符。团队尝试了几种不同的方法将MIDI文件编码为适合此任务的token。首先,一种弦乐方法,将每次听到的音符组合视为单独的和弦,并为每个和弦分配一个token。其次,尝试通过仅关注音符的开头来缩小音乐模式,并尝试使用字节对编码方案对其进行进一步压缩。
团队还尝试了两种标记时间流逝的不同方法:根据片段的节奏缩放的token(以便token代表音乐节拍或节拍的一小部分),或者标记以秒为单位的绝对时间的token。最后采用了一种结合了表现力和简洁性的编码:将音高,音量和乐器信息组合成一个token。
嵌入
团队添加了几种不同类型的嵌入,为模型提供了更多的结构背景。除了标准的位置嵌入,团队还添加了一个学习嵌入,跟踪给定样本中的时间流逝。这样,同时发声的所有音符都被赋予相同的定时嵌入。
然后为和弦中的每个音符添加嵌入(这模仿相对注意,因为模型更容易学习音符4需要回顾音符3,或者在前一个和弦的音符4处)。最后,添加了两个结构嵌入,告诉模型给定的音乐样本在较大的音乐作品中。
团队很希望听到人们创造的东西!如果你创建了自己喜欢的作品,可以将其上传然后向团队发送链接。
如你有兴趣了解有关OpenAI音乐作品的更多信息,可以考虑申请加入团队。如果你对使用MuseNet进行更深入的编写感兴趣,或者有想要添加到训练集中的MIDI文件,团队也很愿意获得你的帮助。