AI遇上音乐,谷歌工程师揭秘“巴赫涂鸦”背后那些事

avatar 2019年3月26日14:34:57 评论 281 阅读

北京时间3月26日消息,如果你一点音乐零基础都没有,但又喜欢创作古典音乐,更甚者,你还想挑战下自己,创作出巴赫风格的曲子,其实,这不是什么难事,谷歌公司刚刚上线的一个巴赫Doodle(下文简称为“巴赫涂鸦”)可以帮你实现。

AI遇上音乐,谷歌工程师揭秘“巴赫涂鸦”背后那些事

2019年3月21日,在巴赫生日的这一天,谷歌上线了“巴赫涂鸦”,根据谷歌的官方介绍,利用这个涂鸦,你可以随意创作自己的旋律,利用人工智能,涂鸦将用巴赫的风格来演奏你创作的作品。

Doodle团队、Magenta团队、People and AI Research团队这三个团队协作完成了这个项目。Magenta团队关注于通过机器学习帮助用户进行音乐和艺术创作,PAIR团队则主要关注于创造出能够让每个人都能愉快使用机器学习的工具或是体验。

相比之前谷歌上线的涂鸦作品,此次的作品显得非常特别,因为这是第一个用人工智能去创作音乐的。新浪科技专访了此次项目的人工智能模型负责人、谷歌大脑团队Magenta项目研究员Anna Huang(下文简称为安娜)。

AI遇上音乐,谷歌工程师揭秘“巴赫涂鸦”背后那些事

人工智能如何能创作出巴赫风格的音乐?

开发这样的涂鸦,第一步需要创造一个支持它的机器学习模型。机器学习是一种通过展示大量案例,教会计算机自己提出解决方案的过程,而不是像传统的计算机编程那样给出一套计算机需要遵循的规则。

巴赫众赞歌多为四声部,每个声部有着自己的旋律线,一起演奏时就能创造出丰富的和声效果。这种简洁的结构使其成为机器学习模型的良好训练数据。

安娜开发出了Coconet多功能模型,可用于多种音乐任务,例如旋律协调、在音乐不同小节之间平滑过渡以及从零作曲等。

要将模型进行个性化调整使其匹配巴赫的音乐风格。为了达到这样的效果,安娜他们基于巴赫的306首众赞歌训练了Coconet模型。他们会将巴赫的音乐的曲谱抹除掉一部分后再提供给模型,模型会分析抹掉部分旁边是什么音符,有什么结构,然后去猜测如何把抹掉的部分填充好。虽然目前只用了306首巴赫的音乐,但是我们用排列组合的办法去抹除掉不同的部分,这样就增加出了很多首乐谱,就能提供给模型更多结构来进行学习。因此,当你在Doodle中的模型上创建自己的旋律时,它会将其转换成巴赫风格的旋律。

有意思的是,这个模型完全是算法自动完成,并不会进行人工干预。安娜说:“我们想只让它看音乐,然后自己去学,看它可以学到什么程度。”

AI遇上音乐,谷歌工程师揭秘“巴赫涂鸦”背后那些事

为何要上线这样一个涂鸦?

谷歌的Doodle团队一直在寻找创新,希望找一些新的互动的形式,并且是好玩的。因为音乐的受众非常广泛,因此Doodle团队就策划如何让音乐的互动更好玩,然后就考虑到可以用人工智能。另外,巴赫又是一个大家都很崇拜的作曲家,然后如果我们可以和巴赫一起创作的话,那应该是一个非常奇妙的过程。

然后Doodle团队就来找Magenta团队,Magenta专注于人工智能,尝试如何用人工智能去协助我们创作。比较巧的是,安娜研发的Coconet模型的training data(训练数据)就是巴赫的音乐,随后,他们便开始合作,共同筹划这个项目。

项目一开始并不是很顺利,因为两个小节的音乐就需要45秒才能出结果,这会带来很不好的体验。安娜她们努力让模型可以运行更快,最后在项目上线时,运行时间仅需要4-8秒,甚至有时候2秒就可以。

很多人都喜欢唱歌和音乐,有时候也会进行创作,但是没有专业的音乐背景,让很多人不敢随心所欲地创作,而现在随着人工智能的发展,安娜希望借助于人工智能,人们可以去尝试一些新的东西。安娜在哈佛大学计算机科学读博士的时候,选修了第二专业音乐作曲。她的父母很喜欢音乐,但是他们当年并没有很好的机会去学习音乐,所以他们把希望寄托在安娜身上。但小时候的她对音乐并没有太多的感觉,只记得钢琴要考级,也只练习考试的曲目,一直没有提起兴趣,直到一次偶然的机会去朋友家做客,听到朋友给她弹了一曲古筝后,她觉得这才是她想要的音乐。但普通人想要学习作曲比较困难,她希望借助于人工智能,能让更多人体验到音乐的乐趣。

其实,有很多公司也将人工智能和音乐结合,不过更多的是利用每个用户听歌的习惯不同,来进行个性化推荐。安娜认为,听音乐不一定是单向性的体验,她更专注于创作方面。一首歌可能是有很多的可能性,她希望听音乐的人和创作的边界,不会分得那么清楚。

安娜告诉新浪科技,目前“巴赫涂鸦”模型已全部开源,希望更多做音乐的人群可以使用,用他们自己习惯的方式来构建一个完整的生态圈。

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: