馬鵬程 盧樹強 王曉岸 李曉東 宋涵宇
(1.北京腦陸科技公司 北京市 100083)
(2.前瑞麗雜志、寺庫 北京市 100176)
(3.中央民族大學(xué)音樂學(xué)院 北京市 100081)
音樂創(chuàng)作(music creation)是指音樂專業(yè)人員或作曲家創(chuàng)造具有音樂美的樂曲的復(fù)雜的精神與技能生產(chǎn)過程[1]。主要方式是按照不同音節(jié)對應(yīng)時間序列關(guān)系進行組合,如旋律和和聲,并配以相宜的節(jié)奏進行組織產(chǎn)生的具有特殊音色和紋理動態(tài)聲波。音樂創(chuàng)作通常是由受過專業(yè)音樂培訓(xùn)和教育的作曲家創(chuàng)造具有音樂美的樂曲,是一項極其復(fù)雜的技術(shù)和任務(wù)。
隨著人工智能深度學(xué)習(xí)算法在圖像識別[2][3][4],視頻檢測[5],自然語言處理[6][7]及語音處理[8]等方面的優(yōu)秀表現(xiàn)和對應(yīng)行業(yè)的廣泛應(yīng)用,深度學(xué)習(xí)模型技術(shù)的發(fā)展完善及應(yīng)用的場景正在越來越多地被挖掘。深度學(xué)習(xí)算法[9]是一種新興的多層神經(jīng)網(wǎng)絡(luò)降維算法,通過組建含有多個隱層的神經(jīng)網(wǎng)絡(luò)深層模型,對輸入的高維數(shù)據(jù)逐層提取特征,以發(fā)現(xiàn)數(shù)據(jù)的低維嵌套結(jié)構(gòu),形成更加抽象有效的高層表示。如圖1所示,一個具有三層卷積連接層和兩層全連接層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),每層對輸入的數(shù)據(jù)自動實現(xiàn)了抽象特征提取,最后
實現(xiàn)分類目標(biāo)。有鑒于此,這種端到端的數(shù)據(jù)模型技術(shù)能夠極大地為不同的基于數(shù)據(jù)應(yīng)用的場景和任務(wù)提供極大的便利和效率。而深度學(xué)習(xí)對于音樂創(chuàng)作與生成的場景任務(wù),通過有效的進行音樂數(shù)據(jù)集的構(gòu)造和模型的設(shè)計選擇,從而生成新的音樂。這也將使得音樂創(chuàng)作對于更多的人能夠完成,也能夠為人類帶來更多不同類型和不同風(fēng)格的優(yōu)美音樂。如文獻[10]構(gòu)建了一種基于神經(jīng)網(wǎng)絡(luò)結(jié)果的生成模型,能夠生成像人類創(chuàng)作出的和諧和優(yōu)美的音樂。文獻[11]中基于RNN深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計的模型結(jié)合音樂先驗知識生成了pop music。文獻[12]通過神經(jīng)網(wǎng)絡(luò)進行了序列建模,基于簡單的音樂數(shù)據(jù)樣本集進行了輔助音樂創(chuàng)作。文獻[13]通過雙向長短時記憶(BLSTM)網(wǎng)絡(luò)結(jié)構(gòu)模型和對應(yīng)的數(shù)據(jù)集,進行了和弦音樂的生成。文獻[14]中通過弱監(jiān)督深度遞歸神經(jīng)網(wǎng)絡(luò),以音頻能量功率譜作為輸入,進行了舞曲生成。文獻[15]中基于深度學(xué)習(xí)中的自編碼機(VAEs)和對抗生成網(wǎng)絡(luò)模型(GANs),進行了音樂分格遷移生成。
圖1:神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示例
圖2:Music-Coder音樂生成流程
通過第一章我們看到對應(yīng)于不同的音樂素材和類型及任務(wù),可以選擇不同的生成模型和方案。這篇文章中,我們主要實現(xiàn)通過神經(jīng)網(wǎng)絡(luò)模型生成特定作曲家類型音樂風(fēng)格的音樂。由于音樂的載體是聲音,而聲音類型的數(shù)據(jù)可以看作是一種定長的時序數(shù)據(jù)。基于此,所以我們選擇了可以處理時間序列數(shù)據(jù)類型的一種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)LSTM[16][17]來實現(xiàn)了通過一種附加約束的監(jiān)管員機制的音樂生成器(Music-coder),并進行音樂生成,并且取得了優(yōu)秀的音樂生成效果。Music-coder音樂生成器的主要工作流程如圖2所示。本文主要工作為:
(1)通過應(yīng)用一種LSTM深度學(xué)習(xí)模型,實現(xiàn)了對特定作曲分格的音樂生成。
(2)并對生成的音樂集進行了與原創(chuàng)音樂集相似度計算,在生成音樂特征分布于相似度2個指標(biāo)上都達到了較好的效果。
(3)通過真實音樂人與作曲家對生成音樂數(shù)據(jù)進行雙盲監(jiān)測,平均通過率達到了80%以上。
我們收集了著名音樂人周杰倫(由于周杰倫的作曲風(fēng)格具有個人特色,且類型相對較豐富)的midi格式作曲素材,總共250首,平均每首時長約2-4mins,從其中選擇了滿足3-4Mins時長的60首作為訓(xùn)練數(shù)據(jù)集1(DataSet1)。除此之外,對60首midi作曲進行了分軌提取與處理,總共提取XXX軌,將軌音樂作為訓(xùn)練數(shù)據(jù)集2(DataSet2)。
3.2.1 音樂數(shù)據(jù)結(jié)構(gòu)分析與模型選擇
音樂數(shù)據(jù)結(jié)構(gòu)是一種標(biāo)準(zhǔn)化的時序數(shù)據(jù),不同的時刻數(shù)據(jù)對應(yīng)的是一個有限集,即如定義1所述。同時,音樂又是一種時序關(guān)聯(lián)數(shù)據(jù),所具有的特性如定義2所述。最后,由于音樂的生產(chǎn)最后是需要滿足一定美學(xué)和藝術(shù)功能和需求的,所以音樂數(shù)據(jù)本身最后得需要對應(yīng)的約束條件,如定義3所述。
圖3:RNN模型結(jié)構(gòu)示意
定義1:如果M為音樂數(shù)據(jù),則Mt∈N,N為有限數(shù)集,Mt為t時刻該音樂的音節(jié);
定義2:如果M為序列數(shù)據(jù)集,則Mt=f(M(t-1),M(t-2)…….M(t-n);
定義3:如果M為音樂數(shù)據(jù),則f(M)≤C,C為約束條件集;
基于上述定義1,定義2,定義3的音樂數(shù)據(jù)結(jié)構(gòu)的特性,潛在的滿足處理該類特征數(shù)據(jù)的模型方案有基于RNN結(jié)構(gòu)的深度學(xué)習(xí)模型[18],基于專家設(shè)計的音樂規(guī)則組合模型的生生成模型[19],基于神經(jīng)網(wǎng)絡(luò)進行音樂生成的模型[20],基于隱馬爾科夫HMM的音樂序列生成模型[21],基于神經(jīng)網(wǎng)絡(luò)和搜索樹結(jié)合的音樂生成模型[22],基于蒙特卡洛模擬采樣進行的音樂生成模型[23],基于對抗生成網(wǎng)絡(luò)GAN進行的音樂生成[24]等。
表1:LSTM結(jié)構(gòu)設(shè)置
表2:生成音樂集G測試結(jié)果
表3:專業(yè)音樂人員測試結(jié)果
圖4:LSTM模型結(jié)構(gòu)
結(jié)合文章生成音樂任務(wù)需求,除了滿足時序特征處理的功能,還需要基于處理建模后進行音樂生成,本文選擇能夠捕捉更多時序信息的RNN結(jié)構(gòu)的LSTM模型進行音樂生成。
基于RNN機制的深度學(xué)習(xí)模型將是可行的音樂處理與生成選擇,鑒于此,在各類時序任務(wù)上比較常用的Long Short Term Memory networks(以下簡稱LSTM)模型架構(gòu)將成為非常有希望的模型之一。LSTM,是一種特殊的RNN網(wǎng)絡(luò),該網(wǎng)絡(luò)設(shè)計出來是為了解決長依賴問題。該網(wǎng)絡(luò)由Hochreiter和Schmidhuber(1997)引入,并有許多人對其進行了改進和普及。他們的工作被用來解決了各種各樣的問題,直到目前還被廣泛應(yīng)用。所有循環(huán)神經(jīng)網(wǎng)絡(luò)都具有神經(jīng)網(wǎng)絡(luò)的重復(fù)模塊鏈的形式。在標(biāo)準(zhǔn)的RNN中,該重復(fù)模塊將具有非常簡單的結(jié)構(gòu),例如單個tanh層。標(biāo)準(zhǔn)的RNN網(wǎng)絡(luò)模型如圖3所示。
對應(yīng)的LSTM結(jié)構(gòu)是基于RNN結(jié)構(gòu)的改良模型,LSTM網(wǎng)絡(luò)能通過一種被稱為門的結(jié)構(gòu)對細(xì)胞狀態(tài)進行刪除或者添加信息,門能夠有選擇性的決定讓哪些信息通過,本身可以實現(xiàn)遺忘和記憶機制。所以利用其在進行音樂時序數(shù)據(jù)處理時,是可以將以前的信息與當(dāng)前的任務(wù)進行連接,例如使用以前的音樂幀來幫助網(wǎng)絡(luò)理解當(dāng)前音樂幀。有時我們需要利用近期的信息來執(zhí)行來處理當(dāng)前的任務(wù)。例如,考慮用一個音樂模型通過利用以前的音樂序列信息來預(yù)測下一個音節(jié)和音符,有時我們不需要其他的信息,通過前面的音樂風(fēng)格就能知道最后一節(jié)的音節(jié)。在這種情況下,相關(guān)信息與需要該信息的位置距離較近,而LSTM能夠?qū)W習(xí)利用以前的信息來對當(dāng)前任務(wù)進行相應(yīng)的操作。
不管是RNN還是LSTM及其衍生主要是隨著時間推移進行順序處理,長期信息及t-n時刻信息需在進入t時刻單元前順序遍歷所有單元,這會存在梯度消失的問題。同時,LSTM能夠記住長期的信息,但是它們只能記住100個量級的序列,或者更長的序列,這對長序列音樂生成會有一定的限制。同時,對LSTM模型的訓(xùn)練它們對硬件的要求非常高,即對計算單元要求比較多,這使得計算時間會較慢。
所以本文以選擇以LSTM作為主要模型架構(gòu)并結(jié)合,并通過監(jiān)管器機制(Monitor Mechanism)來進行音樂條件約束,從而使得LSTM處理序列要求降短,從而能夠在音樂生成效率上進行提高,以此來在滿足音樂生成性能的規(guī)避LSTM模型本身的局限。
為了機器算法計算方便,我們將Dataset1和Dataset2數(shù)據(jù)集從MIDI格式轉(zhuǎn)換為ABC文件格式,提供給人工智能模型進行訓(xùn)練計算。
3.2.2 模型結(jié)構(gòu)設(shè)計與配置
(1)LSTM結(jié)構(gòu)。LSTM的關(guān)鍵是元胞狀態(tài)(Cell State),這種傳送帶結(jié)構(gòu)直接穿過整個流程鏈,同時只有一些較小的線性交互。上面承載的信息可以很容易地傳遞到下一個計算單元而不改變。同時LSTM有能力對元胞狀態(tài)添加或者刪除信息,這種能力通過門結(jié)構(gòu)來控制[24],它們由一個Sigmoid神經(jīng)網(wǎng)絡(luò)層[25]和一個元素級相乘操作組成,能夠選擇性讓信息通過。一個完整LSTM有3個門結(jié)構(gòu),來保護和控制元胞狀態(tài),如圖4所示。
LSTM用兩個門來控制單元狀態(tài)c的內(nèi)容,一個是遺忘門(forget gate),它決定了上一時刻的單元狀態(tài)有多少保留到當(dāng)前時刻。另一個是輸入門(input gate),它決定了當(dāng)前時刻網(wǎng)絡(luò)的輸入有多少保存到單元狀態(tài)。LSTM用輸出門(output gate)來控制單元狀態(tài)有多少輸出到LSTM的當(dāng)前輸出值。W為計算過程權(quán)重矩陣,tanh為激活函數(shù),C為單元狀態(tài),f為遺忘門,h為隱藏信息,x為特定時刻的輸入信息。基于此,最后我們使用的LSTM結(jié)構(gòu)如表1所示。
圖5:監(jiān)管員機制
(2)Music Coder結(jié)構(gòu)的監(jiān)管員機制。監(jiān)管員機制(Monitor mechanism)主要是為了對LSTM的中間生產(chǎn)序列結(jié)果(中間計算音樂序列)進行一次檢查,對不滿足監(jiān)管規(guī)則(音樂特征約束,主要配置為音調(diào)約束和音樂風(fēng)格約束)的序列進行剔除,這種機制會使得LSTM的輸入單個音樂序列不用過長,就能夠達到特定的生成效果。這種模式使得LSTM處理速度和效率提升,從而使得生成訓(xùn)練過程更快收斂,如圖5所示。
我們在人工智能模型訓(xùn)練過程中使用4卡英偉達TitanXP GPU深度學(xué)習(xí)服務(wù)器,進行了10000次迭代訓(xùn)練,通過控制模型損失函數(shù)(Loss Function)和Softmax函數(shù)進行模型準(zhǔn)確率優(yōu)化提高,最后使得模型有效率達到90%以上,模型訓(xùn)練整個耗時35小時?;跀?shù)據(jù)集1和數(shù)據(jù)集2訓(xùn)練的深度學(xué)習(xí)模型,我們得到混軌音樂和單軌音樂,通過音樂修剪,將單軌作為整體音樂的補充合并,最后得到生成的音樂。
本文通過生成音樂與原始音樂的相似度計算來進行音樂生成效果量化評估,通過計算每首生成音樂與原始音樂集中的每一首音樂的相似度,選取相似度最高的一首對應(yīng)的相似度作為最終相似度?;谟?xùn)練好的生成模型,我們生成50首樂,每首約2-3分鐘,生成速度為10s以內(nèi),同時選擇皮爾森相似度對生成音樂數(shù)據(jù)集與測試數(shù)據(jù)集(原創(chuàng)音樂)進行相似性計算與效果評估。
從原有真實創(chuàng)作音樂100首隨機選取50首為種子集S,編號S1,S2……S50,進行相似計算基準(zhǔn)。對于生成音樂,隨機從50首生成音樂選取生成30首為生成集G,編號G1,G2……G30,進行與種子集相似度計算,并作為參考計算種子音樂集S自身的相似性。分別計算G音樂集對應(yīng)的最大相似度,最小相似度以及平均相似度,檢測結(jié)果統(tǒng)計如表2所示。
除上文的量化相似性計算我們也通過人工領(lǐng)域?qū)<业臏y試來評估我們生成音樂的有效性。我們對生成數(shù)據(jù)集進行音樂領(lǐng)域?qū)<医徊鏈y試,通過對種子音樂集S(S音樂集包含50首)與生成音樂數(shù)據(jù)集G(G音樂集包含50首)進行隨機混合處理,作為整體測試集T,編號為T1,T2……T100。我們邀請了3位音樂專業(yè)音樂人員分別是中央民族大學(xué)音樂學(xué)院音樂專業(yè)學(xué)生,海蝶音樂制作人,瑞麗時尚音樂人依次編號為A,B,C,通過試聽來判斷測試T中音樂是否為原創(chuàng)音樂,測試結(jié)果如表3所示。音樂參與者完成了隨機混合了原始音樂集合生成音樂集共100首音樂,每個測試者分別試聽100首音樂,并對每首音樂是否為周杰倫原創(chuàng)音樂做出判斷。測試結(jié)果如表3所示。
通過表2和表3,我們發(fā)現(xiàn)原始音樂數(shù)據(jù)集本身的音樂風(fēng)格變化差異較大,分布較廣包含多種個人不同風(fēng)格的音樂(平均相似度60.64%,差異度98.9%)。而基于Music coder生成的音樂集本身相對原始音樂集來說特征和風(fēng)格分布較為集中,但也存在較好的風(fēng)格多樣性(平均相似度82.80%,差異度達69.63%)。對應(yīng)的生成音樂集與原始音樂集平均相似度為60.13%,最大差異度為88.84%,平均相似度為60.13%,較為接近原始音樂集的風(fēng)格與特征分布,并且能夠較好的通過專業(yè)音樂人的檢測。
本文主要基于深度學(xué)習(xí)模型LSTM構(gòu)造的音樂生成器,進行了特定音樂風(fēng)格的音樂生成,并且在不同的測試方案上取得了良好的表現(xiàn)。根據(jù)測試結(jié)果評估來看,該模型能夠較好的進行音樂創(chuàng)作,從而為未來更多的基于人工智能算法進行音樂創(chuàng)作的可行性提供了有力的支持。
當(dāng)前本文實現(xiàn)了基于單類音樂風(fēng)格進行的音樂生成創(chuàng)作,未來我們將嘗試根據(jù)用戶不同心情下的機器實時作曲。進一步實現(xiàn)對抑郁、焦慮等心情的量化有效的音樂干預(yù)方案,以創(chuàng)作出根據(jù)用戶個人喜好而促進大腦多巴胺分泌的性能優(yōu)良的音樂生成器,通過音樂+人工智能提高人類幸福感。
致謝:本文研究得到了皓橙娛音文化傳媒有限公司的王樂然先生等專家及單位鼎力支持,為本文音樂規(guī)則設(shè)計及性能測評提供了寶貴的意見。特別鳴謝周杰倫先生和無數(shù)音樂人,創(chuàng)作出各種類型的歌曲,陪伴一代代人的成長,鼓勵我們探尋人生和科學(xué)高峰,是機器永遠(yuǎn)無法替代的,特此致謝。