人类教会 AI 学习,而 AI 回馈人类以创作灵感。
十四年前,Anna Huang 完成了她人生第一个音乐与计算机结合的学术课题——Palestrina Pal,一款基于 Java 的分析工具,帮助检测学生模仿文艺复兴时期作曲名家帕莱斯特里纳的作曲风格时是否存在语法、风格和规则不符的问题。
论文完成之后,Huang 迫不及待地介绍给在南加州大学桑顿音乐学院的老师们。她兴奋地告诉他们,这款工具能够帮助到他们的教学,让学生在练习的过程中更好更快地改进自己模仿作曲的水平。
但老师们否定了 Huang 的想法,他们认为这样的工具虽然好用,但对学生来说是走捷径的行为,会影响到基本功的训练。“他说这不是我们,这是你的想法,不是我们的。”Huang 回忆道。
但有着计算机和音乐双重背景的 Huang 并没有因为老师的否定而放弃,她认为传统的教学方式太过枯燥。在一遍遍学习各种作曲规则的过程中,枯燥的教学某种程度上磨灭了学生们音乐创作的灵感。Huang 认为那些繁琐的规则学习和查错作业完全可以通过计算机辅助以更高效的方式完成,学生应该更直接地接触更有音乐性的东西。“我们上课,或者向作曲家学习的,应该是学习怎样去表达我们想表达的东西,去寻找我们到底想说的是什么。”
她因此认定了技术辅助音乐创作这条路。从南加州大学拿到计算机科学和音乐作曲学士学位之后,Huang 先后在麻省理工学院媒体实验室和哈佛大学拿到了相关专业的硕士和博士学位,并最终加入 Google Brain 下设的 Magenta 团队,从事机器学习与音乐创作的研究。
首款 AI Doodle
在 Huang 被老师否定的十四年之后,2019 年 3 月 21 日,为纪念音乐史上最重要的作曲家之一约翰·塞巴斯蒂安·巴赫诞辰 334 周年,Google 上线了首款基于 AI 技术的巴赫诞辰纪念 Doodle。在这款登陆 Google 首页 48 小时的 Doodle 背后,正是 Huang 三年前加入 Google Magenta 时开始研究的机器学习算法模型 Coconet。
交互式的巴赫 Doodle 更像是一款小游戏。用户在五线谱上,鼠标点击随意谱写下一段音乐,点击“和声”,几秒之后 Doodle 背后的机器学习算法就会根据用户刚刚输入的旋律,生成一段巴赫风格的协奏小曲。
打造一款巴赫创意 Doodle 的想法最初来自 Doodle 的团队。一年半以前,Doodle 团队想要制作一款创意交互的音乐主题 Doodle,他们选中了德国著名作曲家巴赫,“巴赫是一个大家都很崇拜的作曲家,如果我们可以和巴赫一起创作的话,那会是一个很奇妙的过程。”Huang 对极客公园说道。抱着这样的想法,Doodle 的团队在 Google 内部找到了专注机器学习和艺术创作的 Magenta 团队,与正在使用巴赫音乐训练 Coconet 多功能模型的 Huang 一拍即合。
Huang 于三年前以实习生的身份加入 Google Brain 内部刚刚成立的 Magenta 团队,研究单线的旋律创作。但 Huang 认为音乐应该是多条线并行创作的,这是一个需要克服的课题,虽然当时的 Magenta 并没有解决这一问题,但研究已初具雏形。随后 Huang 结束了在 Magenta 的实习,前往蒙特利尔大学的蒙特利尔学习算法研究所以访问研究生的身份访学,一年之后她作为常驻 AI 研究员回归 Magenta 团队,并继续 Coconet 的研究。
也是这个时候,Doodle 的团队找上门来,他们决定和 Magenta 团队一起打造这款纪念巴赫的交互型 Doodle。对他们来说最大的问题就是如何让耗时较长的研究项目能够面向普通用户,提供轻松简单的交互体验。原本 Coconet 需要 45 秒左右的时间才能在一台电脑上生成两小节的音乐,这显然是不能满足用户需求的。因此 Doodle 和 Magenta 团队采用了 Google PAIR 的 TensorFlow.js,一个能够在前端浏览器上运行的机器学习加速架构。调整适配之后,Coconet 的运行速度维持在 4 秒到 8 秒之间,最低只需要 2 秒就能完成。另外,针对无法启用 TensorFlow.js 的情况,巴赫 Doodle 会启用 Google 自研的机器学习处理单元 TPU,尽可能地加速处理过程。
306 首音乐训练出的模型
机器学习辅助创作并不是一件新鲜事,过去几年间已有多家研究机构和科技公司发布了类似剧本写作和新闻写作的 AI 应用。但文字与音乐不同,线性的文字叙述只有一条单线,而音乐是多线并行的,这种多线并行的结构中,巴赫的作品就是最典型最基础的样本。
“巴赫可以让我们学习到这些线应该怎样连接,每条线都有自己的性格,但是它们走在一起的时候是很和谐的。每一个学音乐的学生都是从这里开始,所以我们也从这里开始教人工智能怎样创作。”Huang 解释说。
Magenta 团队选择了巴赫的 306 首众赞歌作为 Coconet 模型的训练数据,“巴赫众赞歌多为四声部,每个声部有着自己的旋律线,一起演奏时就能创造出丰富的和声效果。这种简洁的结构使其成为机器学习模型的良好训练数据。”巴赫 Doodle 的 Google AI 团队项目经理 Lauren Hannah-Murphy 在介绍博客中写道。
不管巴赫的作品再适合训练,仅仅三百首音乐的数据体量也几乎不可能撑起一个靠谱的机器学习模型。Huang 对此非常清楚,所以针对数据不足的情况,他们选择了一个更为精巧的训练方式。
传统机器学习算法模型的训练方式是将数据一次性灌输给模型,这样的学习操作过程简单,但是产出的结果是模型往往只能理解作品如何从开头流畅地过渡到结尾,却无法从结尾推导回中间的内容。
Coconet 模型的训练方式采用训练方式是将一首完整音乐的某个部分抹除,留给 AI 模型根据抹除部分两边的内容,自己通过算法演算出中间部分,再与原作对比,一点点矫正,直到最接近巴赫的风格。通过这样不同排列组合的方式,三百首音乐也就能够产出更多的训练样本。
“就像很多时候我们写音乐或者写文章,不是说从头到尾一气呵成,而是会有很多次修改、很多跳动,这个模型创作的方式也是这样。”Huang 说道,“一开始先写一个比较粗糙的稿,然后慢慢决定每一个地方的细节,再去修改。所以它能够和你一起创作,一起互相修改作品。”
不过因为机器学习的黑箱性质,它对巴赫风格的理解与人类不尽相同。Coconet 比较看重音乐的曲式,从乐谱开始,音乐就被转换成基于像素堆叠的图像,机器对旋律的理解就是对这些像素连接结构的理解。因此机器也会把风格迥异的音乐带到巴赫的风格上,表现在音乐的曲式上,就是“音乐的线条会向上然后向下….. 它很喜欢有些断点,有时候音乐是比较流畅的,有时候它会把你带到断点,再出发,再带到断点。”Huang 说道,“这种感觉是巴赫很喜欢,有一些规律性。”
音乐的技术性
当然,Coconet 目前还只能制作一些较短的旋律和弦,它“看不到”长线的结构,比如音乐家想要在曲子里表达的深层想法,这是现阶段的机器学习无论如何无法感知的部分。
所以在谈及技术的局限性时,研究多年计算机和音乐的 Huang 比任何人都要清楚。从最开始,她想要的就是一个辅助作曲者、提供更多灵感的工具。
在被问到巴赫 Doodle 背后的工具更适合经验丰富的作曲人还是基础薄弱的初学者时,Huang 表示不同的人使用工具的方式也不一样,对初学者而言,简易上手的工具可能会让他们发掘出自己潜藏的音乐天赋,从而喜欢上音乐,走上这条路。但对于那些有一定经验的作曲者来说,Coconet 会提供一些不同于作曲者本人的想法,在输入原创的音乐材料之后,也许能收获“一些很不一样的东西”。
“那些不一样的东西,我觉得某种程度上是蛮珍贵的,因为很多时候作曲家会害怕,害怕自己哪一天突然没有了灵感。”Huang 说,像 Coconet 这样的模型,就是向作曲家们提供一个灵感源泉,一个额外的选择。
Huang 从小在香港长大,接受着严苛的艺术教育,常常因为乐器考试的枯燥而讨厌音乐,但一次观看古筝表演的经历让她爱上了这种乐器,“这是我想要的,是我觉得可以很自然地表达情绪的方式。”随后几年的古筝学习让 Huang 逐渐开始了自己的音乐创作,但她很快也发现,学习作曲是一个非常困难的过程,起初她对和弦的认识不深,因此学得很慢,几个月的时间只学会了几个和弦,音乐创作的可能性也因此受到了很多的限制。
相比之下,计算机对 Huang 来说是个与生俱来的技能,她的父亲是大学的计算机教授,对她而言这是个“不用去学校学,自己可以探索的东西。”随着她对计算机和音乐两方面的认识逐渐加深,Huang 开始想在音乐方面用计算机做一些东西。“计算机可以拉近我和音乐的距离。”她说,“音乐是很感性的,但它也有理性的一面,有很技术的部分。在学习音乐的时候,你也要学习一些技术,它可以让你更容易发现自己想要表达的东西。”
“就像学外语一样,它可以帮助你跑得更快一点,一开始的时候你不知道该怎么表达,它可以帮你做得更好,可以让你觉得学这个更有趣,更好玩,更想要去表达。”