深度 | 计算机如何从乐盲到作曲家?建 28 层神经网络,听 8000 个 MIDI 乐章

简介:

深度 | 计算机如何从乐盲到作曲家?建 28 层神经网络,听 8000 个 MIDI 乐章

blackbettyblog

编者按:训练电脑来帮助音乐家们创作,这听起来似乎有点偷懒。然而事实并非如此,相反,来自谷歌及多个实验室的科学家们要付出更多的心力,才能用音乐“调教”计算机编写出美妙的乐章。

此曲只应机器有,人间能得几回闻?本文源自 Fast Company,作者 Tina Amirtha,由老吕IO、环子及何忞编译,未经授权不得转载。

今年 5 月份,谷歌大牛 Douglas Eck 离开硅谷的办公室远赴位于北卡罗来纳州的大烟山国家公园(Smoky Mountains),在这里他与许多音乐、艺术和科技人才共同度过了一年一度的 Moogfest 音乐节。在每天 High 到爆的同时,Eck 也没忘了自己的本职工作,他给自己在聚会上认识的音乐界大牛们讲述了自己的新想法——训练电脑来帮助音乐家们制作音乐,比如做个和声、写个间奏或者编个副歌部分等。未来,机器还将学成出师,创作属于自己的音乐。

此前,Eck 从未参与过 Moogfest 音乐节,这个从穆格电子琴中脱胎出来的音乐节一直是电子乐迷的最爱。这次,Rck 的任务就是在音乐节上完成自己教电脑玩音乐的任务。在这几天中,他和他的同事将用MIDI(乐器数字化接口)格式为电脑灌输大量数据。

这里有一段 MIDI 版本的 Billie Jean,可以欣赏一下

其实研究人员利用 AI 做音乐的实验多年前就开始了,最近,索尼位于法国的计算机科学实验室就公布了世界上第一首 AI 制作的流行音乐。此前,它们的 AI 平台 FlowMachines 还曾利用 MIDI 打造过多首爵士和古典音乐。Eck 在音乐节上的现身则预示着谷歌研究项目 Magenta 的正式起航,未来它不但要学会玩音乐,还会成为跨界艺术大师。

点这里,可以听一听 FlowMachines 算法编写的歌曲《Daddy's Car》。

研究人员表示,让电脑听音乐并学习制作音乐非常有用,因为这两个动作都能提升智能系统的认知水平。就像电脑从学会简单阅读文本到理解对话,未来它们也能玩转音符并自主制作自己的音乐。

“对文本的学习能让我们掌握大量知识,电脑也一样,MIDI 是它们的图书馆。随着音乐创作悟性的提高,电脑在交流和认知上的水平也会得到大幅提升。”Eck 说道。

MIDI :从拖后腿到电脑缪斯

深度 | 计算机如何从乐盲到作曲家?建 28 层神经网络,听 8000 个 MIDI 乐章

 上世纪 70-80 年代,电子合成器风靡一时,因此工程师们也开始实验,他们想让电子乐器学会互相交流。最终,Dave Smith 和 Ikutaro Kakehashi 开发出了 MIDI(乐器数字化接口)。1983年,MIDI 正式成为音乐产业的技术标准。

不过,MIDI 能有今天也与两位工程师当年的大度密不可分,他们将该专利免费奉献给了全世界。“现在来看,当年的决定还真是明智之举,”Smith 说道。“我们想全身心投入该技术的开发,因此决定不再对希望使用该技术的公司收费。”

不久之后,个人电脑就能读取并存储 MIDI 文档了,这一进步具有划时代的意义。原本复杂抽象的音乐被转换成了机器能读懂的数据,同时这种格式下数据体积也被大幅压缩(MP3 格式下 4MB 的文档在 MIDI 格式下只有几百 KB)。在 MIDI 的帮助下,舞曲、电子乐、浩室音乐和打击乐迅速异军突起。同时,MIDI 的身影还活跃在电视和电影的配乐中。

对语言来说,一段段的文本就是其符号;而对于音乐来说,MIDI 则是其组成细胞。擅长 MIDI 音乐的 Jonathan Lee 表示:“MIDI 自身并不包含声音,它只是一段段指令。”

其实一个 MIDI 链接内含 16 通道的数据,这些数据包含有乐谱、音调、拍子、音量、颤音、音频平移和尾白等方方面面。此外,设备还可从录制好的声音中检索出所需的部分,也就是我们所说的“声音字体”(SoundFonts)。这种格式给了音乐家们充分的发挥空间,即使是新手也能将制作出“像模像样”的音乐片段。比如这段 Radiohead 的 《No Surprise》

虽然眼下数字乐器还在用着 30 年前的 5 针 MIDI 接口,但所有电脑,甚至是 Chrome 浏览器都能通过 USB 适配器轻松地获取数据。借助愈发强大的计算能力和数字采样器,MIDI 音乐家们将自己的创意发挥到了极致,他们甚至还创作出了新的门类——Black MIDI。

Jonathan Lee 曾以超级马里奥的经典音乐为基础制作了自己独有的 MIDI 版,这版神器的音乐包含有760万个音符,大多数电脑根本就扛不住如此巨大的数据量。不过,这版音乐在 YouTube 上依然收获了 160 万的点击量,至于它让多少电脑瞬间死机,我们就不得而知了。点这里可以听到 Demo。

深度 | 计算机如何从乐盲到作曲家?建 28 层神经网络,听 8000 个 MIDI 乐章

Lee 是一名来自休斯敦的 17 岁男孩,他说自己曾经拿爸妈的两台笔记本电脑试验 Black MIDI,结果把 RAM 和 CPU 都烧坏了。他最终给买了个竞技级的电脑,实现了自己捣鼓的心愿。

Jonathan Lee 相信 Black MIDI 的出现会促使工程师开发新型软件,这样一来电脑 RAM 的压力就会小得多,在渲染时也就不会轻易崩溃了。

音乐,深度学习的摇篮

不同于音频录制,MIDI 文件对于计算机科学家而言是理想的机器学习素材。这种文件小巧精致,在互联网的宝库中简单易得,并且不需要交付任何版税,其提供的资源更是能几乎不受限制地训练 AI 机器,供人类使用。

深度学习是目前计算机训练的最高水平,这是一种利用人工神经网络学习的方法,其储存的信息与人类大脑和神经系统所处理的信息大致类似。在计算机视觉中,深度学习业已成为机器学习技术的标准。如果计算机知道在一个图像中需要寻找什么样的形状,那么科学家们就知道该计算机如何通过神经网络进行学习。反过来,你也可以在谷歌的 Deep Dream 算法中发现这一过程。谷歌的三位工程师 Alexander Mordvintsev, Christopher Olah 以及Mike Tyka 根据计算机系统能“记得”网上找到的其他图像之特点,利用公司的图像识别软件,以生活中的普通场景为原素材,创造出很多图像。

深度 | 计算机如何从乐盲到作曲家?建 28 层神经网络,听 8000 个 MIDI 乐章

Deep Dream算法将图像识别过程反转过来,它能从其他画面的图案中创造新的图像。

音乐算法加上MIDI 音乐以及其他输入源也能通过类似的过程谱写乐曲。

让科学家们困扰的是,计算机是否以及如何能够理解那些更主观的东西,例如音乐流派、和弦,以及其中流露的情绪。不过,听音乐能够让计算机达到更高层次的认知水平。

今年七月,来自伦敦玛丽女王大学的一个科学家团队报道称,他们在给计算机听过民谣、舞曲和 hip-pop 三个流派的 6600 首歌曲之后,已经成功训练出了一套神经网络系统,能以 75% 的准确率识别歌曲的流派。

然后他们把计算机的神经网络拆分成不同的层面,以便观察从巴赫(编者按:巴洛克时期音乐巨匠,为古典音乐代表作曲家)切换到艾米纳姆(编者按:20 世纪白人 rap 音乐代表)时,这个系统在每一个层面学习到了什么。研究者们发现计算机开始学会了识别一些基本的音乐模型,例如打击乐,这是神经系统的较低层次,还有一些更抽象的概念,例如和谐的乐章,这是神经系统的最高层次。

研究者们并没有使用 MIDI 标示或其他类型的音乐符号,而是从 8000 首歌曲中抽取出的 8000 个原始音频信号样本,并注入到他们的学习算法中。这一决定或许体现,前者在识别模拟音乐的细微差别上依然存在局限。

对于 MIDI 而言,人声是“虚拟出来的人类声音,所以最后会有一点点失真,这就像当你面对一个从德克萨斯州或明尼苏达州来的人时可能会有一些波士顿口音,道理是一样的。”

纽约大学音乐与音频实验室的前博士后研究员 Eric Humphrey (现为 Spotify 的一名高级机器学习研究者)说:“ MIDI 这类的产品在编排诸如和声、节拍、结构和模式等传统的音乐元素方面具有很大的潜力。但是有趣的是, MIDI 在塑造音色和产出效果方面并算不上很出色。”这也就意味着,在所有同类产品之中,“MIDI 并不能很好地编码出许多流行及现代音乐。”

但是谷歌并没有纠结于什么元素会在艺术形式中丢失,而是早已开始建立新的深度学习模型来创造音乐。这个夏天, Magenta 项目的研究者 Anna Huang 设计了一套神经网络,用以在巴赫众赞歌中写入新的语音片段(赞歌中原始的语音片段已由 Anna 删除)。 Huang 和她的研究团队最开始计划,如果音乐家已经把一首歌的开头和结尾写好,那么就使用电脑的语音生成技术来完成这首歌的中间部分。

但研究者们在重复使用这个用于语音生成的机器学习模型时,发现了两个问题。首先,音乐是繁杂多样的,有时好几种乐器会同时奏响,不同的声音会同时发出。在语音识别中,计算机工作的本质是在一个时间段内仅能识别一个人说话的模式。其次,音乐家写歌并一定从头写到尾,他们可能在创作时会时不时地回去填补一下之前的空白。而另一方面,口语则需要以一定的逻辑顺序来铺成观点。

为了解决第一个问题,研究者们从图像识别领域找到了方法。他们发现了一种机器学习模型,这种模型会教计算机重建图像中的空白,这种方法叫做“图像修复”(inpainting)。他们认为如果计算机能在一个图像中同时识别 3 个 RGB 值,那么他们就可以把每个声音在他们的新模型中想成一个独立的 RGB 值。而为了解决第二个问题, 他们决定写一个算法,让计算机能够随机地生成旋律,而不是按照一定的顺序生成。

团队成员用一些包含有女高音、男高音、女中音和男低音部分的巴赫众赞歌曲目的 MIDI 来训练计算机。他们随机地在不同乐句点上将歌曲剪切成片段,这样在修正过的部分中,任意给定时间段,计算机都可以“听”到一种到三种声音音色。接着,研究者们开始测试计算机在逐渐地听取每种声音后学到了什么,连续测试直到计算机将这首歌曲的所有声音都学会。他们为计算机设计了 28 层神经网络,使其从过去产生的声音中创造出新的声音。最后,谷歌的科学家们终于对计算机的新作品的审美感到满意。

(这里有一段谷歌 Magenta 创造的音乐,不妨欣赏一下。小编觉得还蛮好听的。)

对巴赫众赞歌的分析让谷歌明白,计算机是可以通过学习来解决音程不和谐问题,计算机最终是可以学习音阶,学会制作更加和谐的音程关系的。

但是还有一个问题就是,他们的模型只能数字化模拟少量真实世界的音乐风格。一方面,他们的模型不会模仿专业声乐歌手天然的音域限制,比如女高音和男低音。在特定的点上,计算机反映的只是一种与乐谱音高一致的声音。研究团队正在将这些人类化的特征编入机器学习模型中。

(这里又有一段谷歌 Magenta 创造的音乐,不妨再欣赏一下。)

为了达到这个目标,必须给计算机更多的“音乐启蒙”。除了创造更多有用的研究让人工智能应用更广泛外,Magenta 的工程师们还对与音乐团体的合作非常感兴趣。

八月份,研究团队发布并更新了一款连接音乐家和谷歌开源 AI 软件的界面—— TensorFlow。这个新的发明允许音乐家将谷歌的人工智能模型连接到他们自己的合成器和 MIDI 控制器上,让 AI 真正地做音乐。同时,软件开发者们也能够将他们的人工智能模型连入其中,代替谷歌的模型,这样可以为 Magenta 社区注入更多谷歌以外的新想法,产生更多有趣的音乐实验。

另外,Lee 继续着他自己的乐队 Black MIDIs 的音乐创作,并将他们发布在 YouTube 上。他的 MIDI 版作曲像是在写一部名叫“标注艺术”的小说,将曲线、字母,甚至是摩斯电码都以其视觉感受写入乐谱中,还有一些则本身就非常数学化。在一个名为《π》的视频中,包含了3141492个音符,3分14秒长,处处洋溢着 π 的气息。另一个视频则是“分形图像”,描述了 Mandelbrot 集合的数学等式。

深度 | 计算机如何从乐盲到作曲家?建 28 层神经网络,听 8000 个 MIDI 乐章

点这里,你可以欣赏到令你眼花缭乱的 Lee 的 MIDI 曲目:π)

当听到谷歌新的人工智能项目正在寻找 MIDI 领域人才时,Lee 表示非常愿意参加。他打算将整个 Black MIDI 社区的资料全部贡献给这个新项目。就算这么多的 MIDI 资料无法让计算机的作曲能力突飞猛进,它也能让计算机至少学会一些写作 Black MIDI 风格曲目的技巧。Lee 说:“我们会为这个项目倾尽全力提供优秀内容。”

推荐阅读:

 AI 也有音乐细胞,流行乐古典乐都难不倒它

工科男的文艺style:把秘密用算法藏在舞曲里


本文作者:奕欣


本文转自雷锋网禁止二次转载,原文链接

相关文章
|
3月前
|
机器学习/深度学习 算法 TensorFlow
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现用户上传一张动物图片,识别其名称。
103 1
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
|
2月前
|
机器学习/深度学习 人工智能 算法
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
玉米病害识别系统,本系统使用Python作为主要开发语言,通过收集了8种常见的玉米叶部病害图片数据集('矮花叶病', '健康', '灰斑病一般', '灰斑病严重', '锈病一般', '锈病严重', '叶斑病一般', '叶斑病严重'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。再使用Django搭建Web网页操作平台,实现用户上传一张玉米病害图片识别其名称。
64 0
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
|
3月前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
110 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
3月前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
99 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
2月前
|
机器学习/深度学习 算法 数据建模
计算机前沿技术-人工智能算法-生成对抗网络-算法原理及应用实践
计算机前沿技术-人工智能算法-生成对抗网络-算法原理及应用实践
33 0
|
3月前
|
机器学习/深度学习 人工智能 算法
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台。果蔬识别系统,本系统使用Python作为主要开发语言,通过收集了12种常见的水果和蔬菜('土豆', '圣女果', '大白菜', '大葱', '梨', '胡萝卜', '芒果', '苹果', '西红柿', '韭菜', '香蕉', '黄瓜'),然后基于TensorFlow库搭建CNN卷积神经网络算法模型,然后对数据集进行训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地文件方便后期调用。再使用Django框架搭建Web网页平台操作界面,实现用户上传一张果蔬图片识别其名称。
61 0
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
4月前
|
机器学习/深度学习 人工智能 算法
【眼疾病识别】图像识别+深度学习技术+人工智能+卷积神经网络算法+计算机课设+Python+TensorFlow
眼疾识别系统,使用Python作为主要编程语言进行开发,基于深度学习等技术使用TensorFlow搭建ResNet50卷积神经网络算法,通过对眼疾图片4种数据集进行训练('白内障', '糖尿病性视网膜病变', '青光眼', '正常'),最终得到一个识别精确度较高的模型。然后使用Django框架开发Web网页端可视化操作界面,实现用户上传一张眼疾图片识别其名称。
89 9
【眼疾病识别】图像识别+深度学习技术+人工智能+卷积神经网络算法+计算机课设+Python+TensorFlow
|
5月前
|
网络协议 网络安全
使用NetAssist网络调试助手在单台计算机上配置TCP服务器和客户端
使用NetAssist网络调试助手在单台计算机上配置TCP服务器和客户端
290 0
|
7月前
|
存储 人工智能 应用服务中间件
Web应用是一种通过互联网浏览器和网络技术在互联网上执行任务的计算机程序
【5月更文挑战第30天】Web应用是一种通过互联网浏览器和网络技术在互联网上执行任务的计算机程序
94 2
|
7月前
|
网络协议
LabVIEW 通过网络同步多台计算机系统时间的方法与例程
LabVIEW 通过网络同步多台计算机系统时间的方法与例程
81 1