王东
Published on 2025-02-26 / 7 Visits

【AI100问(80)】计算机如何谱曲?

2016年6月,Google宣布了Magenta项目[8],目的是联合艺术家和计算机学家,推动人工智能在艺术创作上的研究和应用,其中AI谱曲是重要任务之一。

图1:计算机谱曲[7]

所谓AI谱曲,就是利用AI技术自动生成乐谱。“自动生成乐谱”这个看起来很“潮”的Idea其实早在计算机诞生之前就了,当时研究这个问题的是饱受创新压力折磨音乐家。早在1757 年,作曲家Kirnberger就非常“天才”地发明了用掷骰子来辅助作曲的方法,此后的半个世纪(从1757年到1812年),音乐家们至少发明了20种掷骰子的方法[1],其中就包括鼎鼎大名的莫扎特[2]。大音乐家都不得不掷骰子,可以想见写首新曲子有多难。因此,当计算机出现以后,作曲家们大喜过望,希望计算机能给他们提供更多创作灵感 -- 再不济也比掷骰子强吧。

结果我们看到了,就在人工智能的先驱们聚在一起开达特茅斯会议的同时,Hiller和Isaacson两人用计算机生成了人工智能第一曲,并定名为“伊利亚克组曲”。在生成过程中,Hiller等利用了生成规则加上马尔可夫链,满满的AI风。有趣的是,Hiller原本是化学博士,还发明了第一个有效的晴纶染色方法。一个化学家帮艺术家谱了第一首AI音乐,从此走上了AI艺术之路,成为美谈。

Hiller等人的工作引起极大关注,很多研究者投身到AI谱曲的研究中来。首先加入的是音乐家,后来更多AI研究者参与进来[6]。早期研究多采用符号方法,把音乐当成一门语言,用乔姆斯基的语法系统来描述生成过程,或者基于音乐创作理论设计生成规则,再依据规则进行合规式随机选择。后期研究更多采用统计模型方法,将音乐视为一个随机过程,利用统计模型(如马尔可夫链、隐马尔可夫模型、神经网络等)来描述音符的时序相关性。训练时,人们采用大量乐谱来估计统计模型的参数,在生成时利用训练好的模型进行采样,就可以生成新乐谱。近年来,深度神经网络在机器在谱曲方面取得很大成功,成为当前大多数研究的基础方法。和传统统计模型相比,深度神经网络可以对音乐中的复杂时序关系进行更为细致的刻画,因为可以产生更流畅自然的音乐。

图2是加利福尼亚大学圣地亚哥分校的研究者所使用的一种称为“双轴RNN”的深度学习结构[5],其中输入是已经生成完毕的音符序列,这一序列经过两层时序上的循环神经网络(RNN)得到当前的生成状态,再经过两层音符上的RNN对每一个可能的音符(C,D,E...等)计算生成概率,并依此概率做出该音符生成与否的随机决策。基于这一结构,不仅使得生成的音乐在时序更为流畅,而且可以用于生成复调音乐,使得生成的曲谱更具表现力。

图2:基于双轴RNN 的音乐生成模型[5]

让我们一起听听Google 的 Magenta生成的AI 音乐吧。

(https://magenta.tensorflow.org/assets/performance_rnn/good.mp3)

参考文献:

[1] S. A. Hedges. 1978. Dice music in the eighteenth century. Music Lett. 59, 2 (1978), 180--187.

[2] Herremans D, Chuan C H, Chew E. A functional taxonomy of music generation systems[J]. ACM Computing Surveys (CSUR), 2017, 50(5): 1-30.

[3] A. Hiller Jr, L. and L. M. Isaacson. 1957. Musical composition with a high speed digital computer. In Audio Engineering Society Convention 9. Audio Engineering Society.

[4] Ian Simon and Sageev Oore. "Performance RNN: Generating Music with Expressive Timing and Dynamics." Magenta Blog, 2017.

[5]https://magenta.tensorflow.org/performance-rnn; https://github.com/magenta/magenta/tree/master/magenta/models/performance_rnn

[6]Fernández, Jose D., and Francisco Vico. "AI methods in algorithmic composition: A comprehensive survey." Journal of Artificial Intelligence Research 48 (2013): 513-582.

[7] Want to Generate your own Music using Deep Learning? Here’s a Guide to do just that!https://www.analyticsvidhya.com/blog/2020/01/how-to-perform-automatic-music-generation/[8] 

[8]Magenta生成的声音样例: https://magenta.tensorflow.org/performance-rnn

By清华大学  王东