陳世哲
關(guān)鍵詞:人工智能;電子音樂(lè);算法作曲
引言
人工智能(Artificial Intelligence)并不是一個(gè)新名詞。早在20 世紀(jì)50 年代,計(jì)算機(jī)領(lǐng)域就引起了第一次科技熱潮, 中間也歷經(jīng)了多次低谷,但隨著谷歌DeepMind 團(tuán)隊(duì)的AlphaGo 擊敗人類圍棋冠軍, 一個(gè)計(jì)算機(jī)學(xué)科中的人工智能技術(shù)迅速引發(fā)人類下一個(gè)科技浪潮, 并在各行業(yè)產(chǎn)生新的機(jī)遇。
在傳統(tǒng)意義上, 機(jī)器的優(yōu)勢(shì)在于能夠幫助人類完成機(jī)械而重復(fù)性的勞動(dòng), 對(duì)于創(chuàng)造性的工作則參與較少。但隨著人工智能技術(shù)的發(fā)展,它正逐漸應(yīng)用于音樂(lè)的創(chuàng)作、制作、分析和教育等領(lǐng)域。其中,利用AI 作曲或者輔助作曲變成關(guān)注度最高的應(yīng)用方向之一, 很多疑問(wèn)也就此產(chǎn)生。如AI 作曲技術(shù)能否在一定程度上代替人類作曲家? AI 作曲技術(shù)會(huì)如何影響傳統(tǒng)作曲的思維? 這些將變成一個(gè)個(gè)有趣而又嚴(yán)肅的課題。
在人工智能于各行業(yè)應(yīng)用的實(shí)際過(guò)程中,機(jī)器學(xué)習(xí)① 可以說(shuō)是AI 最重要的子集之一,它深刻影響著AI 中的其他領(lǐng)域。用AI 技術(shù)自動(dòng)作曲并不是一個(gè)新的課題, 相關(guān)的研究很多年前就已經(jīng)開始,但是一直受技術(shù)所限。人工智能作曲的主要原理同下圍棋的原理類似, 主要運(yùn)用遺傳算法② 、神經(jīng)網(wǎng)絡(luò)、馬爾可夫鏈③ 和混合型算法等,利用音樂(lè)規(guī)律給計(jì)算機(jī)制定規(guī)則、建立海量數(shù)據(jù)庫(kù),繼而進(jìn)行深度學(xué)習(xí)① ,分析作曲規(guī)則、結(jié)構(gòu)等各項(xiàng)信息,然后重新生成音樂(lè)。目前, 有多家國(guó)內(nèi)外機(jī)構(gòu)和公司開始了該領(lǐng)域的研究。傳統(tǒng)的方案是完全建立在用規(guī)則構(gòu)建智能系統(tǒng)的基礎(chǔ)上, 而新的方案是更多地使用神經(jīng)網(wǎng)絡(luò)的方式,即使用“學(xué)習(xí)”的方式來(lái)實(shí)現(xiàn)。
本文主要討論將AI 技術(shù)應(yīng)用在音樂(lè)創(chuàng)作領(lǐng)域所主要使用的技術(shù)方案和策略算法, 并分析目前所碰到的問(wèn)題以及與算法作曲的關(guān)系,討論其應(yīng)用方式, 以促進(jìn)此技術(shù)能更好地為音樂(lè)服務(wù)。
二、相關(guān)技術(shù)手段分析
(一)神經(jīng)網(wǎng)絡(luò)(NN)
人工智能的傳統(tǒng)方式是利用規(guī)則, 即以一種自上而下的思路來(lái)解決問(wèn)題; 而神經(jīng)網(wǎng)絡(luò)(Neural Network,簡(jiǎn)稱NN)則是以一種自下而上的思路來(lái)解決問(wèn)題, 它的基本特點(diǎn)是模仿人類大腦的神經(jīng)元② 之間的信息傳遞和模式。
神經(jīng)網(wǎng)絡(luò)有兩個(gè)特性,一是每個(gè)神經(jīng)元通過(guò)對(duì)應(yīng)的輸出函數(shù),計(jì)算和處理來(lái)自相鄰神經(jīng)元的加權(quán)輸入值;二是通過(guò)加權(quán)值來(lái)定義神經(jīng)元之間信息傳遞的關(guān)系,算法在處理過(guò)程中不斷地自我學(xué)習(xí)、不斷地優(yōu)化和調(diào)整這個(gè)加權(quán)值。此外,神經(jīng)網(wǎng)絡(luò)的處理過(guò)程需要依靠大量的數(shù)據(jù)來(lái)訓(xùn)練。所以,神經(jīng)網(wǎng)絡(luò)的處理過(guò)程具有非線性、分布式、并行計(jì)算、自適應(yīng)和自組織的特點(diǎn)。
以人類學(xué)習(xí)創(chuàng)作音樂(lè)的過(guò)程為例, 一般要經(jīng)歷音樂(lè)感知(欣賞),音樂(lè)模仿寫作,最后達(dá)到獨(dú)立創(chuàng)作。在創(chuàng)作過(guò)程中,也包含對(duì)作曲技法、和聲理論等的學(xué)習(xí),學(xué)習(xí)者在不斷地練習(xí)中,通過(guò)教師地批改引導(dǎo), 不斷完善自己的創(chuàng)作思路等。這些學(xué)習(xí)過(guò)程基本可以通過(guò)神經(jīng)網(wǎng)絡(luò)的架構(gòu)模擬出來(lái), 這也是這項(xiàng)技術(shù)得以應(yīng)用的一個(gè)基礎(chǔ)。
神經(jīng)網(wǎng)絡(luò)的運(yùn)作過(guò)程需要有輸入與輸出,權(quán)重和閾值以及多層的感知器③ 的結(jié)構(gòu)(圖1)。神經(jīng)網(wǎng)絡(luò)可以看成是一個(gè)“黑盒子”,給定足夠多的訓(xùn)練集,即可以在輸入端給定X 后,得到預(yù)期的Y。具體來(lái)說(shuō),神經(jīng)網(wǎng)絡(luò)的運(yùn)作過(guò)程需要確定輸入和輸出,然后找到一種或多種算法,可以從輸入得到輸出, 再找到一組已知答案的數(shù)據(jù)集,用來(lái)訓(xùn)練模型,此后,重復(fù)這個(gè)過(guò)程,輸入模型,就可以得到結(jié)果,不斷修正這個(gè)模型④。
音樂(lè)是時(shí)間的藝術(shù), 許多信息是基于時(shí)間軸建立的。而神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)的機(jī)制有很多種,其中能夠較好地處理時(shí)間軸信息的一種技術(shù)就是遞歸神經(jīng)網(wǎng)絡(luò)(Recursive Neural Network,簡(jiǎn)稱RNN)。RNN 是一種(前饋)神經(jīng)網(wǎng)絡(luò),通過(guò)新增表示時(shí)間維度信息的參數(shù)以及相關(guān)機(jī)制, 使神經(jīng)網(wǎng)絡(luò)不僅可以基于當(dāng)前數(shù)據(jù)而且可以基于先前數(shù)據(jù)來(lái)學(xué)習(xí)。和之前的模式不同,RNN 系統(tǒng)中,前一個(gè)輸入和后一個(gè)輸入是有關(guān)聯(lián)的,RNN是一個(gè)在時(shí)間上傳遞的神經(jīng)網(wǎng)絡(luò), 時(shí)間作為其深度的度量。循環(huán)網(wǎng)絡(luò)通常具有相同的輸入層和輸出層, 因?yàn)檠h(huán)網(wǎng)絡(luò)預(yù)測(cè)下一個(gè)項(xiàng)目是以迭代的方式用作下一個(gè)輸入,以便產(chǎn)生序列,因此RNN 是音樂(lè)創(chuàng)作中一項(xiàng)重要的實(shí)現(xiàn)方式。
(二)LSTM 長(zhǎng)短期記憶單元
LSTM(全稱Long Short-Term Memory)是一種特殊的RNN 結(jié)構(gòu),為RNN 的變種結(jié)構(gòu),屬于反饋神經(jīng)網(wǎng)絡(luò)的范疇。LSTM 是為了克服RNN循環(huán)神經(jīng)網(wǎng)絡(luò)的梯度消失① 或爆炸而產(chǎn)生的神經(jīng)網(wǎng)絡(luò),它除了繼承RNN 模型的特性外還具備了自身的優(yōu)點(diǎn)。RNN 雖然可以兼顧時(shí)間維度信息的處理,但是若時(shí)間間隔拉長(zhǎng)后,長(zhǎng)期保存信息并在其中開展學(xué)習(xí)得到的結(jié)果并不理想,這對(duì)于音樂(lè)信息處理是一個(gè)致命的問(wèn)題, 而解決該問(wèn)題的一個(gè)重要方向便是增大網(wǎng)絡(luò)存儲(chǔ)。因此,采用特殊隱式單元的LSTM 被首先提出,其自然行為是長(zhǎng)期的保存輸入。LSTM 主要的改變是增加了3 個(gè)門,分別是輸入門、輸出門和忘記門。在實(shí)踐中,LSTM 被證明比傳統(tǒng)的RNN 更加有效,它最先應(yīng)用于機(jī)器翻譯領(lǐng)域、對(duì)話生成以及編解碼領(lǐng)域②。LSTM 能夠表征更復(fù)雜的人類的邏輯發(fā)展和認(rèn)知過(guò)程, 所以也是音樂(lè)生成目前最值得研究的方向。
(三)VAE
Autoencoder 是通過(guò)對(duì)特征數(shù)據(jù)進(jìn)行壓縮和解壓來(lái)實(shí)現(xiàn)非監(jiān)督學(xué)習(xí)的過(guò)程③ , 它本身既是一個(gè)多層神經(jīng)網(wǎng)絡(luò), 也是一個(gè)對(duì)數(shù)據(jù)的非監(jiān)督學(xué)習(xí)④ 的模型。⑤ 音樂(lè)數(shù)據(jù)沒有明確的優(yōu)與劣之分,所以更適合于非監(jiān)督的模式。而其中的變分自動(dòng)編碼器(Variational Autoencoder, 簡(jiǎn)稱VAE)是自動(dòng)編碼器的升級(jí)版本,結(jié)構(gòu)與自動(dòng)編碼器相似,其原理是在編碼過(guò)程中增加一些限制(圖2)。這種處理原理同作曲的思維過(guò)程有相似之處,作曲在某種意義上是一個(gè)創(chuàng)作和規(guī)則并存的過(guò)程,而VAE 的機(jī)制可以很好地與之相符合。
在實(shí)踐過(guò)程中,VAE 已經(jīng)可以在對(duì)多聲部音樂(lè)的音高動(dòng)態(tài)和樂(lè)器等信息分析與生成中得到很好的應(yīng)用,尤其在古典音樂(lè)和爵士樂(lè)方面。它甚至可以用爵士風(fēng)格演繹莫扎特的作品,產(chǎn)生新的混搭方式。
變分自動(dòng)編碼器是目前生成內(nèi)容最優(yōu)的方法之一,它可以成功生成各種形式的數(shù)據(jù),特別是在多聲部音樂(lè)的生成工作過(guò)程方面。但是,當(dāng)數(shù)據(jù)是多模式時(shí),VAE 并不能提供明確的機(jī)制,它不能對(duì)離散值潛在變量進(jìn)行推理, 所以這是制約其發(fā)展的一個(gè)重要因素。比如在C 大調(diào)與c 小調(diào)的處理過(guò)程中,對(duì)音階中各種音的使用傾向是不同的, 特別是擴(kuò)展到24 音及以上時(shí),VAE 處理起來(lái)就比較困難。所以現(xiàn)在還有一些研究思路是設(shè)計(jì)一種VAE+LSTM 方式,這種方式可以避免部分問(wèn)題。此外,在和弦問(wèn)題上還可以用受限玻爾茲曼機(jī)(Restricted BoltzmannMachine,簡(jiǎn)稱RBM) ① 建模等等。
三、深度學(xué)習(xí)與算法作曲的關(guān)系
算法作曲(Algorithmic Composition)是電腦作曲的一種重要方式, 也可稱為自動(dòng)作曲(Automatic Composition), 主要利用算法減少音樂(lè)創(chuàng)作時(shí)的人類干預(yù)。在傳統(tǒng)意義上, 作曲可以從多個(gè)維度來(lái)理解,比如旋律、節(jié)奏、和聲、編曲或者配器等等,雖然這些維度不能完全表征音樂(lè),但可以作為數(shù)據(jù)化的起點(diǎn),計(jì)算機(jī)可通過(guò)相應(yīng)的語(yǔ)言和技術(shù)來(lái)表征這些,即計(jì)算機(jī)輔助作曲。但本文討論的AI 作曲比之已有的方式更縮減了人類干預(yù),并不屬于傳統(tǒng)意義上的計(jì)算機(jī)輔助作曲。
傳統(tǒng)算法作曲領(lǐng)域的技術(shù)實(shí)現(xiàn)方案,除了前文提到的神經(jīng)網(wǎng)絡(luò)方式,還包括以下幾種模式②。
1. 翻譯模式(Translational Models)
這一類模式主要是將一些其他媒介的信息轉(zhuǎn)換成音樂(lè)的相關(guān)信息,可以是因一定規(guī)則生成的,也可以是隨機(jī)產(chǎn)生的。例如將圖片的色彩和明暗對(duì)應(yīng)到音色的色彩和明暗,但這種直接、簡(jiǎn)單的對(duì)應(yīng),其成果和表現(xiàn)形式往往過(guò)于牽強(qiáng)。
2. 數(shù)學(xué)模型方式(Mathematical Models)
這種方式主要通過(guò)數(shù)學(xué)模型來(lái)產(chǎn)生音樂(lè),在此模型下, 很多音樂(lè)的元素是通過(guò)非確定性的方法構(gòu)成的。這種隨機(jī)的方式在很多傳統(tǒng)音樂(lè)家的創(chuàng)作過(guò)程中都有所應(yīng)用, 而這里的隨機(jī)是完全基于數(shù)學(xué)方式的。在創(chuàng)作過(guò)程中,作曲家可以參與算法相關(guān)的參數(shù)配置。數(shù)學(xué)模型方式主要運(yùn)用馬爾可夫鏈、高斯分布③ 及分形理論④ 等實(shí)現(xiàn)。這種方式存在的問(wèn)題是:其算法完全基于規(guī)則的設(shè)定, 對(duì)于創(chuàng)作音樂(lè)這項(xiàng)復(fù)雜的工作,公式化實(shí)現(xiàn)只能完成其中一個(gè)過(guò)程,完全由數(shù)學(xué)模型方式實(shí)現(xiàn)的創(chuàng)作結(jié)果很難完美。
3. 語(yǔ)法模式(Grammars)
這種研究方式認(rèn)為音樂(lè)中存在著語(yǔ)法,如同語(yǔ)言中的語(yǔ)法。這種方式借鑒語(yǔ)言學(xué)的概念,將音樂(lè)當(dāng)作一種特殊的語(yǔ)音對(duì)待, 其研究方向在于如何以這種思路從音樂(lè)中提煉出算法,目前有一定的研究成果, 也可以借鑒其他學(xué)科的相關(guān)成果。這種方式的問(wèn)題是:第一,語(yǔ)法是存在層次結(jié)構(gòu)的, 或者說(shuō)語(yǔ)言的規(guī)則是相對(duì)固定的, 但音樂(lè)的表達(dá)是存在一定的即興性或是模糊性的;第二,在語(yǔ)法分析和規(guī)則較多時(shí),尤其存在模糊性的情況下,計(jì)算量要求比較高。
4. 演化模式(Evolutionary Methods)
這種方式可以通過(guò)一定的方法對(duì)信息做篩選,利用算法把好的方案篩選出來(lái)并不斷優(yōu)化,得到相應(yīng)的結(jié)果。該方式主要利用遺傳算法來(lái)模擬生物進(jìn)化的過(guò)程, 因?yàn)檫z傳算法已被證明是解決大規(guī)模搜索空間的有效解決方式, 可以找到多個(gè)解法, 這些邏輯很符合音樂(lè)創(chuàng)作的某些邏輯①。這種方式的問(wèn)題是:遺傳算法并不能完全模擬作曲的思路, 特別是在實(shí)際操作過(guò)程中,為了節(jié)約資源通常會(huì)采用簡(jiǎn)化的方式,而一旦簡(jiǎn)化就會(huì)大大影響最終的結(jié)果。
5. 混合模式(Hybrid Systems)
混合模式就是混合以上方式甚至更多方式,一起來(lái)生成音樂(lè)。從理論上來(lái)說(shuō),這種方式有其合理性,研究十分復(fù)雜。但在實(shí)際應(yīng)用中,傳統(tǒng)基于規(guī)則和其他相關(guān)信息生成音樂(lè)的實(shí)現(xiàn)方法相對(duì)簡(jiǎn)單,對(duì)算法本身的要求太高,整個(gè)的運(yùn)作模式并不存在“智能”和“學(xué)習(xí)”的成分②。神經(jīng)網(wǎng)絡(luò)的方式從運(yùn)作模式上來(lái)說(shuō)是最接近人類思維的,傳統(tǒng)算法作曲的思路則各有各的特點(diǎn),目前的各種主要技術(shù)方案還有一定的問(wèn)題,所以結(jié)合規(guī)則和神經(jīng)網(wǎng)絡(luò)的方案在相當(dāng)長(zhǎng)一段時(shí)間里都是最優(yōu)的一種解決方案。
四、應(yīng)用實(shí)例與分析比較
人工智能應(yīng)用于音樂(lè)創(chuàng)作時(shí), 要確定處理的音樂(lè)信號(hào)種類的問(wèn)題, 通常使用信號(hào)類信息或符號(hào)類信息。但在深度學(xué)習(xí)的過(guò)程中,使用符號(hào)信息的方式相對(duì)更加普遍。
信號(hào)類信息中的第一種是音頻信號(hào), 它可以是波形文件, 也可以是通過(guò)傅里葉變換處理后的音頻頻譜信息。符號(hào)類信息主要是用MIDI信息。MIDI 已經(jīng)是一種成熟的并被廣泛應(yīng)用的格式, 主要使用音符信息中的Note On 信息和Note Off 信息,利用二者在0~127 之間的取值來(lái)表示主要的音樂(lè)信息。符號(hào)類信息另一個(gè)使用的信息就是MIDI 里面衡量時(shí)間點(diǎn)的Tick 值。
在深度學(xué)習(xí)過(guò)程中, 還有一種和計(jì)算機(jī)交換信息的方式,是直接用文本信息來(lái)表示音樂(lè),當(dāng)然它的規(guī)則也有很多。此外,還有以和弦、節(jié)奏或者總譜的方式用于深度學(xué)習(xí)。
就目前的研究水平來(lái)看,首先,絕大多數(shù)的研究不考慮自動(dòng)作曲的音樂(lè)表情問(wèn)題, 也就是說(shuō),生產(chǎn)出來(lái)的音樂(lè)基本是比較機(jī)械的,或者說(shuō)是多種音頻采樣的組合。其次,由于音色采樣和聲音合成目前在商業(yè)應(yīng)用領(lǐng)域發(fā)展的比較完整,并沒有相關(guān)的AI 研究去關(guān)注這些方面。再次,游戲音樂(lè)因其結(jié)構(gòu)完全取決于游戲場(chǎng)景,所以大部分研究也沒有涉及到此類型。
實(shí)際上,以“AI為音樂(lè)服務(wù)”為宗旨的相關(guān)產(chǎn)品已經(jīng)開始為音樂(lè)服務(wù)。
例如,人工智能作曲系統(tǒng)DeepBach 用于復(fù)調(diào)音樂(lè)特別是圣詠類作品的創(chuàng)作。為保證最終效果,該系統(tǒng)主要圍繞四聲部合唱來(lái)工作,并專注于巴赫的四聲部合唱類作品的創(chuàng)作。系統(tǒng)采用靈活高效的采樣抽樣方法, 除了通過(guò)機(jī)器學(xué)習(xí)的方式生成, 使用者還可以在過(guò)程中添加音符生成,稱為增加一元約束,通過(guò)節(jié)奏或相關(guān)信息對(duì)模型進(jìn)行控制。這種讓用戶干預(yù)過(guò)程的方式, 是在音樂(lè)概率模型中經(jīng)常被忽略的一種方式。與基于RNN 的模型相反,DeepBach 不從左到右進(jìn)行采樣。在考慮單個(gè)時(shí)間方向的情況下,DeepBach 架構(gòu)會(huì)考慮時(shí)間上向前和向后的兩個(gè)方向,使用兩個(gè)循環(huán)網(wǎng)絡(luò):一個(gè)用于總結(jié)過(guò)去的信息,另一個(gè)用于匯總來(lái)自未來(lái)的信息,以及用于同時(shí)發(fā)生的音符的非遞歸神經(jīng)網(wǎng)絡(luò)。DeepBach 能夠生成連貫的音樂(lè)短語(yǔ),并提供各種旋律的重新調(diào)和,而不會(huì)出現(xiàn)重復(fù)。這個(gè)系統(tǒng)的工作困難來(lái)自于和聲與旋律之間錯(cuò)綜復(fù)雜的相互作用。此外,每個(gè)聲音都有自己的“風(fēng)格”和自己的連貫性。找到一種像巴赫式的和聲進(jìn)行,并與音樂(lè)上有趣的旋律運(yùn)動(dòng)相結(jié)合, 最終生成類似合唱的音樂(lè)是這個(gè)系統(tǒng)的目標(biāo)。對(duì)此,我們通過(guò)網(wǎng)上調(diào)查問(wèn)卷的方式,對(duì)1200 多人(包括音樂(lè)專業(yè)人士和業(yè)余人士)進(jìn)行作品聽辨測(cè)試,結(jié)果顯示幾乎所有人都難以區(qū)分這些作品是巴赫創(chuàng)作的還是DeepBach 創(chuàng)作的。譜例1 為AI生成的作品中的一個(gè)片段。