篮球竞彩网_ 人工智能:作曲?we can do it!

  • 时间:
  • 浏览:3
  • 来源:今日新闻-热点新闻-头条新闻

{篮球竞彩网eE;球竞彩网人工智能可以作曲吗?理论上是否可行?哪种程度上可以代替人类?本期品玩知科技,邀请了知乎答主

@谢圜

来讲述人工智能与音乐的那些事:

计算机音乐领域,是一个广阔的领域。

其主要的研究篮球竞彩网方向包括音乐识别、音乐信息处理、音乐旋律与节奏分析、音频音乐检索、音频数据挖掘与推荐、音乐情感计算、音乐结构分析、算法作曲、自动编曲、说话人识别、语音增强、音频信息安全等。

2017 年,英伟达公司发布了 AIVA 人工智能作曲模型,随后迅速得到商用,广泛用于网络视频的自动配乐。也正是这时候,音乐人工智能领域进入深度学习时代,深度学习算法篮球竞彩网成为本领域在国际工业界中的核心技术,被索尼、Spotify、苹果等公司使用在其音乐产品上;字节跳动招募了大量相关人才,研发了火山小视频和抖音应用的音乐推荐、音乐搜索算法,得到广泛使用;腾讯音乐部门将音乐信息检索的算法应用在社交互动领域,使得用户获得了更好的音乐社交体验。

其中最引人注目的 topic,就是自动作曲。随着这波深度学习大潮,自动作曲技术也取得了很大的进展。

音乐生成的起源

早期,莫扎特曾经创作过一首《骰子音乐》,通过丢骰子的方法自动选择小节组合:组合出来的完整音乐仍然悦耳,但是创作的过程带有一定的随机性。

一个在线的 demo:Mozart Dice Game mozart.vician.cz

1950 年代,第一批计算机发明后,出现了第一批计算机音乐。最早的音乐构建了一个马尔科夫过程,使用随机模型进行生成,辅以 rule-based 的方法挑选符合要求的结果。

当然这类方法生成的音乐质量不高。随着机器学习的发展,算法应该从音乐材料中自动地学习出一些规律,得到自然的音乐。

两种音乐生成

人类大致有两种方法参与自动音乐生成:

自动生成。基于各种技术进行全自动音乐生成,而人类仅指定风格参数。如 NVIDIA 的 AIVA 就是一个典型的例子。

辅助作曲。FlowConmposer 是一个典型的例子。这里算法为人类的作曲做出建议和补充,进行共同作曲。

目前大部分的算法都属于第一类方法。第二种方法在很多情况下是第一种方法的组合和变体。

一个例子

2019 年 3 月 21 日,Google Magenta 组贡献了一个交互式算法 demo,称为 Bach Doodle,通过学习 J. S. Bach 的四重奏,算法可以由用户指定第一声部,然后自动计算给出剩余的三个声部。

(虽然很难听,但是 Magenta 在 computer music 领域黑不动)

Bach Doodle

我们以这个算法的雏形和前身 "MiniBach" 算法开始。

To specify the problem, 我们形式化决定算法仅生成四个小节的音乐。

如何将音乐转换为符号表示,其实有很多种方法。被公认的主流方法之一是 piano-roll 及其变体。midi 可以表示 128 个不同的音高,将 129 指定为 rest,130 指定为 sustain(持续),则音乐可以用一个 130*N 的矩阵表示。N 取决于分辨率和音乐实际长度。主流设置是将 16 分音符作为最小的分辨率,那么一个 4/4 拍的两小节音乐可以被表示为 130*32 的矩阵。

piano roll 的起源是匀速运动的打孔纸带

然而 minibach 作为早期模型,没有采用成熟的表示法,而是将 21 个音高 *16 个 step*4 个小节 =1344,一共 1344 个 node,使用了一个多分类器进行学习:

minibach音乐人工智能的先驱者们

下面直接进入神经网络相关的模型:一波星星之火随着深度学习的浪潮而兴起。

首先是 Todd 的时间窗口 - 条件循环结构。

Todd 的目标是以迭代的方式产生单音旋律(monophoic melody)。他的第一个设计是 time-window 结构,通过滑窗的方法,逐段地反复地进行旋律生成,上一段的输出作为下一段的输入。这是一个非常直接且朴素的想法。注意,这个 idea 是在 1989 年产生的,距离 LSTM 的正式诞生还有 26 年。

Todd 的 Time Windows 结构

他还设计了 Sequential 结构,输入层分为两部分,分别是 context 和 plan。context 是生成的历史旋律,而 plan 是预先设置的需要网络学习的特定旋律的名字。

Todd 的循环结构

Todd 的这个模型影响深远,甚至可以看作是 conditional network 结构的先驱。

Todd 后续还陆续提及了一些想法,希望得到解决,他们包括:

音乐的分层结构(structure and hierarchy)。这个问题至今没能得到完美的解决。2019 年 Google Magenta 的 MusicVAE 试图在这个问题上有所突破,这也是我研究的课题之一。

MusicVAE

多时钟结构。这个问题后面被 ClockworkRNN 和 SampleRNN 等模型尝试解决。

ClockRNN

第二个提到的人是 Lewis,他提出了基于 refinement 的方法(Creation by Refinement, CBR),提出通过梯度下降的方式训练模型。Lewis 人工构建了正确的和没那么正确的旋律,通过我们现在熟知的方法进行网络训练。

Lewis 的算法可以是看作最大化一些目标属性,以控制生成模型的各类方法的前身。现代的诸多算法都使用了类似的机制,如 DeepHear 最大化与给定目标的相似度,DeepDream 最大限度地激活特定单元,等等。

Lewis 的模型

有意思的是,这个网络使用梯度下降和反向传播机制进行训练,而且是在1988 年

此外,Lewis 颇有创意地提出了一种 attention 机制和一种 hierarchy 方法。这个方法简单来说,有点类似于一类形式语法规则,如 ABC 变为 AxByC,在不改变现有 token 的情况下,使用 attention 地方式选择位置,然后进行拓展。

与综述一样,我们从下面五个方向展开介绍:

目标。即我们要生成什么,是旋律,伴奏,还是和弦?要生成的是乐谱还是音频?是单声部的还是多声部的?在各个小领域中这些问题都有不同的人在努力研究。如 Gus Xia 老师就致力于研究人机交互的自动伴奏方法。

表示。即如何表示音乐。对于原始音乐的表示包括五线谱、midi message、Piano-roll 等,而音乐的高层表示也有很多,比如 GTTM 表示法。

模型结构。这个模型是 RNN 模型、VAE 模型、GAN 模型,还是多种模型的组合、改进、变化?

要求。即对生成结果的质量评估,如流畅性、创造性、一致性等。

策略。如逐步迭代、encoder-decoder 方法等不一样的生成方式。

要注意上面五个方法并不是正交的。

首先来聊聊音乐的表示法。音乐主要以两种形式表示:audio 和 symbolic。所以前几年相关的基础研究,有的会说自己是 "symbolic domain music generation",最近见得少了。

audio。audio 主要有:信号波,频谱(通过 FFT 得到)。这两种表示都很常见,尤其是在做 transcription 这类相关任务时。

symbolic。主要包括 midi 文件里的 midi message,piano-roll,文本格式。piano-roll 的一个结构图如下图所示:

而文本格式中最被广泛使用的为 ABC notation。现在还有活跃的社区在收集 ABC 标注的数据集:

http://abcnotation.com/

也有相关的网站提供了 ABC 格式在线渲染乐谱的 demo,有兴趣的话可以访问这个网站,体验一下 ABC notation 和乐谱的对应关系:https://ldzhangyx.github.io/abc/

在一些格式中,模型会遇到编码问题。比如说音高 pitch,既可以用一个实数表示,也可以用一个 one-hot 向量表示,甚至可以通过二进制来表示。目前 one-hot 是最为广泛的采用方法。

下面,我们来认识一些基本的模型。这些模型包括:

前馈网络

RNN 循环结构,包括递归的循环和采样策略。将采样策略应用上时,可以使得生成的音乐有更多的不确定性。RNN 模型中,每一步输出的音高由 softmax 决定,而 softmax 本身一个概率函数,采样策略用它来取得不确定的输出。

之后是一些复合架构。复合的方法可以分为下面几种:

组合。将现有的结构堆叠在一起,如 Bi-LSTM,RBM-RNN,C-RNN-GAN,MusicVAE 等模型。

C-RNN-GAN 的结构

细化。即对结构做出约束,添加人为的 inductive bias,使得模型有所偏向和专门化。如 VAE 中,对 latent Z 做额外的约束,使得 Z 满足高斯分布和一些特定的条件,从而隐式引导模型往需要的方向学习。

篮球竞彩网嵌套。嵌套一个模型到另外一个架构中,成为一个子单元。MusicVAE 同样也采用了这种做法。

模式(Pattern)。即引入一个外部的 pattern 到模型中,使模型能够处理 pattern 层面的信息。

下图是流行模型的分类归属:

我们再讨论一些改进的架构。

VAE。VAE 是现在音乐生成模型中最流行的架构之一。基础的 VAE 和嵌套的 VAE 结构如下图:

有工作试图将 latent Z 解耦,利用多个 encoder 和 decoder 进行表征学习的工作,如 ISMIR 2019 的音色分离模型:

事实上得到 latent Z 之后,可以通过多种方法对 Z 进行 decoding,得到音乐。比如说 sample 一个符合原分布的向量,再交给 Decoder 进行 VAE 的解码工作。当然,插值等方法也是可以使用的。

目前一个研究热点问题是对 VAE 中的 latent Z 进行解释、分离,以达到表示学习的目的。如 ISMIR 2019 上一篇音乐节奏风格迁移的文章,就是将 latent Z 的不同部分分别约束,强制 latent vector 包含特定的含义。

简单的说了一下 VAE 之后我们再讨论 GAN 模型。GAN 模型近年来远没有 VAE 模型多见,而更多地用作弱监督环境下提升质量的方法。前几年的 MidiNet 就是 GAN 模型:

MidiNet

正如我之前提到的,对网络的中间变量进行采样,然后对生成的结果做迭代的细化,也是生成的一个策略。DeepBach 采用了类似的策略:

在实际使用中,DeepBach 可以指定重新生成音乐的任意部分,无需重新生成整个内容:

无独有偶,Bach Doodle 的原文 CocoNet,也采用了相似的方法。网络通过反复擦除不同地方的结果,让网络进行补完,之后采样,再补完,迭代地细化结果:

最后闲聊一些别的。

音乐生成领域非常广阔,从计算机音乐顶会 ISMIR 每年 CfP 时的说明就可以看出来,有很多值得研究的主题。

在这些主题中,纯粹的音乐生成其实并不是最热门的方向。在音乐信息检索、音乐转录、哼唱识别、音乐学研究等领域,也有无数学者孜孜不倦地努力着。

此外,计算机音乐也与 NLP、数据挖掘等领域紧密相关。KDD、ICML 等会议都曾出现过相关论文和 workshop。

部分截图

欧洲比较著名的研究机构,包括 Queen Mary 的 C4DM,规模和整体科研实力都是在欧洲数一数二的:

法国的 IRCAM:

西班牙的 UPF-MTG:

北美斯坦福的 CCRMA:

纽约大学的 MARL:

麦吉尔大学的 CIRMMT:

亚洲新加坡国立大学:

日本京都大学:

遗憾的是,我们国家在计算机音乐领域还远没有发展起来。

近年来我们成立了自己的社区,有了自己的会议:

与我比较熟的同行们,主要来自下面的实验室:

北京大学陈晓鸥老师的数字音频研究所:

复旦大学李伟老师的实验室:

北京邮电大学李圣辰老师的实验室:

上海纽约大学夏光宇老师的实验室:

至于工业界,主要是腾讯的 QQ 音乐:

以及字节跳动的抖音:

可以明显地感觉到,国内和国外,不管是工业界还是学术界,都有着数量上的明显差距。国内的计算机音乐方兴未艾,这对所有从业者来说,既是挑战,也是机会。

" 品玩知科技 " 系知乎科技和 PingWest 品玩 联合出品的精品栏目,知乎科技是知乎科技数码领域的官方机构号。针对科技热点新闻和好玩儿的数码体验,第一时间为用户带来可信赖的解读。

猜你喜欢

篮球竞彩网_ 人工智能:作曲?we can do it!

{篮球竞彩网eE;球竞彩网人工智能可以作曲

2020-05-22