?

基于遞歸神經網絡的自動作曲算法

2018-06-01 06:25李雄飛馮婷婷張小利
吉林大學學報(工學版) 2018年3期
關鍵詞:作曲小節音頻

李雄飛,馮婷婷,駱 實,張小利

(1.吉林大學 計算機科學與技術學院,長春 130012;2.吉林大學 軟件學院,長春 130012)

0 引 言

近年來利用計算機技術分析音樂情感的特性,以及以樂譜為研究對象的計算機作曲已成為計算機音樂的一大重要研究方向[1-5]。計算機算法是通過某種策略控制生成音符序列,進而組成音樂旋律,最終得到完整樂譜,此類方法需要大量音樂知識規則。而以音頻為研究對象進行人工智能(Artificial Intelligence,AI)作曲,可使計算機自動生成音樂片段的排列組合生成新的音樂音頻?;谝纛l的AI作曲不依賴大量的音樂知識規則,又能傳遞給聽眾直觀感受。因此,該類算法比基于樂譜的傳統作曲方法更具有實用性。本文以音樂音頻作為研究對象,基于長短期記憶遞歸神經網絡提出一種新的自動合成樂曲算法。

在傳統計算機作曲方面,神經網絡曾一度被認為不能學習到音樂的結構并且不適合用來做音樂作曲等研究,為解決該問題,Eck等[6]用了兩個長短期記憶(Long short term memory, LSTM)模型來訓練學習創作藍調音樂,一個用于學習和弦,另一個用于學習旋律,和弦網絡的輸出連接到旋律網絡作為旋律網絡的輸入。最終實驗結果表明,系統能夠學習標準的12小節藍調和弦小節并且生成遵循和弦規律的音樂。此后,Franklin[7]也使用LSTM網絡來學習和訓練爵士音樂。他們開發了一種在主歌和副歌三等分的音調表示方法。在此基礎之上,Liu等[8]又使用了遞歸神經網絡(Recurrent neural network,RNN)來學習了古典音樂,采用由Allan&Williams收集的巴赫的midi片段數據集,他們首先驗證了神經網絡在重組音樂的能力,將神經網絡學習重組的音樂片段與原始的巴赫音樂片段進行比對,此后進一步對使用神經網絡利用音樂碎片進行譜曲,在驗證方面,采用多分類的測試指標對實驗結果進行測試,最終測試結果表明,與人類感官有著比較大的差距。

在傳統研究中,梅爾倒譜系數(Mel frequency cepstrum coefficient,MFCC)在音樂信號上能夠高效地識別音調和頻率,一直被用作分析音樂音頻,Dhanalakshmi等[9]采用MFCC和線性預測編碼(Linear predictive coding,LPC)分別作為音頻分類的特征向量,使用支持向量機通過訓練將音頻進行場景分類,結果證明MFCC作為特征向量時分類精度更高。Mathieu等[10]在GNU (General public licence)通用公共許可協議下開發了一個音頻特征提取的系統YAAFE用于快速提取音頻特征。而AI作曲又是以樂譜為載體進行研究,實質的研究為文本挖掘類研究,而本文首次提出以音頻本身作為研究對象,從MFCC入手,將音頻信號處理與AI作曲融合,提出了基于LSTM-RNN的音樂音頻自動合成算法,驗證了AI作曲以音頻為載體的可能性,使得成果更直觀地展現于聽眾。

1 與音樂生成模型相關的形式化

描述

單一的音符是沒有意義的。從樂理上講,一個曲子可劃分為若干個小節,每個小節由一系列音符組成,因此,一個音樂小節是表達含義的最基本單位,將這些小節有機地組織起來才能體現出音樂情感和含義價值。著名的例子是莫扎特的圓舞曲《音樂骰子游戲》,他創作了176個音樂小節,然后將小節編號排列為兩個特別的矩陣圖,用擲骰子的方式來決定演奏的次序,每次擲骰子都是這些音樂片段的重組。本文將這樣的可重復組合排序的一個或多個小節稱為音樂模式,將大量音樂曲目分解為音樂模式,構成音樂模式庫。這樣,基于AI的音樂創作就可分為兩個步驟:①在大量樂曲上訓練音樂模型;②利用音樂模型從音樂模式數據庫中抽取音樂模式組成樂曲。

定義1 單位音樂與音樂向量

定義2 前序信息

對于一段樂曲中任意一個單位音頻mi,與其有時間順序的前n(n

可以把合成算法看成是已知前i-1個單位音樂推測第i個單位音樂的問題,其中n

定義3 AI生成音樂

針對目標函數F,選擇一個m1后,就音樂序列M=(m1,m2,,…,mn)而言,對任意0

2 音頻預測和音樂合成

2.1 訓練數據集組織

選擇一批音頻樂曲用于構建訓練集。將每個樂曲分割為單位音樂序列,具體步驟如下。

2.1.1 分割單位音樂

在獲取單位音樂時,旨在保留音樂節拍的強弱性以及較短的旋律性,因此,若單位時長t的取值太小,會破壞小節的完整性,則喪失了音樂的強弱節拍感,若單位時長t取值太大,容易保留過多的旋律信息,經過試驗,本文取單位時長t=3 s,當音樂速度為90~180 節拍/min時,單位音樂m包含的小節數約為2~3小節。音頻編碼中,編碼流dm與時長有著依賴關系,依據音樂時長,將音頻流切割成等單位時長的音頻片段序列,式(1)用于切割流數據d(t):

d(t)=dm[0:fmrt*t]

(1)

式中:t為單位時長;fmrt為該音頻文件的采樣頻率;dm[0:fmrt*t]表示對數據流dm的從下標0到下標fmrt*t的數據切片。

2.1.2 特征處理

音樂通過影響人的聽覺感受以傳遞情感信息,實驗表明,人的聽覺感受對音調的變化是呈線性變化的。MFCC通過對頻率和音調的對數關系轉化反映了人耳的音高聽覺特性。在以音頻為載體的音樂情感和場景分類問題的研究結果表明,MFCC在音樂信號上能高效地識別音調和頻率,可作為音頻分類的特征[9]。因此,本文取MFCC作為單位音樂的特征。

常見的MFCC為39維,由13維靜態系數、13維一階差分系數以及13維二階查分系數組成,其中差分系數表示音樂的動態特征,而13維靜態系數又是由1維能量特征和12維系數構成。

MFCC的計算過程為:

(1)對每一幀信號做快速傅里葉變換(Fast fourier transform, FFT)計算幅度頻譜。

(2)將幅度頻譜利用梅爾尺度變換到梅爾域,經過等帶寬的梅爾濾波器組濾波之后,將濾波器組的輸出能量進行疊加:

(2)

k=1,2,…,K

式中:Sk為第k個濾波器的對數能量輸出;Hk(j)為第k個三角濾波器的第j個點對應的權值;|X(j)|為變換到梅爾尺度上的FFT頻譜幅值;K為濾波器的個數,一般為24個。

(3)將濾波器的對數能量進行離散余弦變化,可以得到MFCC系數:

n=1,2,…,L

(3)

式中:L為MFCC靜態系數的維數,一般L≤P,本文取L為13維。

至此,令V(mi)表示第i個單位音頻mi的音樂向量,則V(mi)=(c1i,c2i,…,cni)稱為單位音樂向量,其中V(mi)∈R,n為單位音樂向量的維數。

將提取完MFCC的單位音樂向量V進行Softmax歸一化,對于V(mi)中的第k個元素ck,Softmax歸一化的值為:

(4)

則歸一化后的單位音樂向量表示為V(mi)=(v1i,v2i,…,vni)。

2.2 模型訓練與預測

訓練樣本表示為(V(pre(mi)),V(mi)),令包含了n首音樂M的數據集S={M1,M2,…,Mn},i為單位音頻mi在數據集S中的索引。則,對于該模型來說,輸入是單位音頻mi的前序音樂序列pre(mi),形如[V(m1),V(m2),…,V(mi-1)],輸出是單位音頻mi的相似特征向量h,通過計算h與數據集S中單位音頻的距離確定mi。

該模型目標函數設為tanh函數,LSTM-RNN模型音樂預測問題F(pre(mi);θ)問題可表示為參數集θ=(W,U)的函數構造問題:

F(pre(mi);W,U)=hi

(5)

hi=oitanh(ci)

(6)

式中:oi表示LSTM模型中的輸出門,令Vi表示第i時刻的前序信息pre(mi)的音樂向量V(pre(mi)),φ表示sigmoid函數或tanh函數,則有:

oi=φ(WoVi+Uohi-1)

(7)

(8)

(9)

輸入門Ii和遺忘門fi分別控制新內容的輸入和舊內容的遺忘:

Ii=φ(WIVi+UIhi-1)

(10)

fi=φ(WfVi+Ufhi-1)

(11)

當記憶單元進行更新后,隱藏層會根據當前輸入門得到的計算結果計算當前隱藏層hi,如式(6)所示。

至此,當W和U確定后,構造函數F也就唯一確定了。在LSTM中通常確定W和U的過程需引入優化函數RMSProp,令θ=(W,U),RMSProp的迭代過程如下:

從訓練集中隨機抽取一批容量為N的樣本{V1,V2,…,VN},以及其相關的輸出F(Vi;θ)及對應單位音樂mi。計算梯度θ和誤差并更新r:

(12)

(13)

再根據r和梯度θ計算參數更新量并更新θ:

(14)

θ=θ+Δθ

(15)

式中:ε為學習率;δ為數值穩定量;ρ為衰減速率。

由于音樂曲目通常在首尾兩處單位音樂的MFCC與中間主體部分距離相差懸殊,圖1展示了15首音樂的單位音樂特征的相鄰兩向量的距離,因此,分別將首尾部分的2個單位音頻取出放入集合Sh和St,而其余部分作為樂曲主體放入集合Sb,即,對于一首時長為T的音樂M=(m1,m2,…,mk),k=T/t+1有m1,m2∈Sh;m3,…,mn-2∈Sb;mn-1,mn∈St,則數據集S=Sh∪Sb∪St,S共有N=k1+k2+…+kn個單位音樂。在音樂合成中,首先從集合Sh中隨機挑選出一條單位音頻m1作為輸入,h作為輸出,然后不斷將算法合成的輸出h與S中的單位音樂向量進行相似度匹配,本文中采用的相似度匹配策略是進行歐氏距離計算,距離最近的但為音樂向量即為模型預測的下一條單位音樂mi+1,如式(16)和式(17)所示。

mi+1=S[x]

(16)

x=index(min{d(h,m1),d(h,m2),…,d(h,mN)})

(17)

式中:x為單位音樂在數據集S中的索引;index為索引函數,取h與S中所有單位音頻m的最短距離所對應的單位音頻索引;N為數據集S中的單位音樂總數。

圖1 相鄰單位音樂向量間距離圖Fig.1 Distance between adjacent units vector

兩個單位音頻ma、mb之間的歐式距離dab計算過程如下:

(18)

式中:j表示單位音樂m的n維向量V的第j維向量值。

循環上述過程直到模型找到一首音樂m∈St,則生成終止,音樂序列生成完畢。

上述算法過程描述如圖2所示。

圖2 算法描述Fig.2 Algorithm description

2.3 平滑拼接

利用訓練得到的LSTM模型可生成一個全新的音樂序列(m1,m2,…,mn)。接下來是音頻處理工作,在對音樂進行拼接時,相鄰的單位音樂需要對音頻進行平滑處理使完成后的新曲目顯得自然而不突兀,所以平滑處理的結果直接影響到生成模型最終得到的音樂質量。

在音樂兩兩連接時選取首尾相接處相同長度,即相同時間長度的數據流部分,對數據進行削弱處理,為保持數據變化的流暢性,采取對數據進行線性削弱處理,其中線性比例系數的計算根據式(19)得到。

(19)

式中:dm為單位音樂m的流數據;x為當前數據值在數據流dm中的索引;函數l為dm數據流的格式化數組長度;y為線性削弱方式,y∈{fadeout,fadein},當y=fadeout時,做比例系數從1至0的線性削弱計算,相反,當y=fadein時,做比例系數從0至1的線性增強計算。

根據式(20)對數據進行線性衰減計算。

(20)

式中:x為當前數據索引值;s為采樣位數。

時間參數t成為了至關重要的參數,其決定了播放時所能聽到的時間長度,即平滑處理的數據塊的大小。

圖3和圖4分別展示了當時間值為1 s和2 s時經過放大后的響度值,矩形框內為銜接點。從圖4看出,當時間值為2 s時,變化范圍略長,依然能明顯感覺到淡入淡出的處理感,使兩首曲子連接松散不夠緊密,從而從聽覺上能很明確地分辨并不是一首音樂,而做音軌響度分析時,從處理后得到的數據部分的音軌響度圖可以看到音頻銜接處有明顯的長段削弱部分,與原始音樂頻率有很大差異。

而圖3所展示的時間t=1 s時音樂銜接部分的突兀感減弱而線性變化感也不明顯,在平滑部分得到了比較好的結果,從聽覺上辨別已經不明顯,在平滑部分得到了比較好的處理結果。

圖3 當t=1時的音軌響度圖Fig.3 Loudness of tracks when t=1

圖4 當t=2時的音軌響度圖Fig.4 Loudness of tracks when t=2

3 實驗結果與分析

3.1 實驗一

3.1.1 測試數據與參數設置

根據音樂相關理論,古典音樂的情感通常不是固定的,總是激昂與平緩交替出現,這種現象在頻譜上表現為能量的突變,本次實驗根據這些突變將音樂預先且分為不同情感段,再根據不同的情感段產生的單位音樂集生成不同情感的音樂。

實驗數據通過采集215首3/4拍,演奏速度為每分鐘60~180節拍的古典音樂的樂譜,通過專業的軟件將其輸出為音頻文件,然后將這些音頻文件分割成以3 s為單位時長的單位音頻共計15 158條。根據本文第1節的描述,每個分離后的單位音頻由1~3個小節組成,這樣的單位音頻則包含了可被重復組合的音樂模式。在LSTM-RNN模型中,經過多次實驗,訓練過程中參數初始化設置如下:

(1)設置優化函數RMSProp的全局學習率ε=0.001,初始參數值θ=0.9,數值穩定量δ=108,衰減速率ρ=0.0。

(2)設置神經元連接的斷開率為0.3。

(3)設置迭代次數為20次。

3.1.2 測試實驗

在對計算機作曲領域,很難通過客觀評價指標去評價效果,所以,一般采用主觀法進行測試。例如,Salas等[11]進行了基于語言規則的作曲實驗并在最終測試時采用類圖靈測試,即用戶調查的方式,他們從實驗結果中選擇了5首音樂與作曲家創作的5首音樂一同構成了測試問卷,并請26位測試者參與實驗測試,請實驗者對他們播放的音樂進行排序。本文將沿用Salas等[11]的測試方法,將實驗得出的樂曲與人為創作的樂曲交替順序給測試者播放,并且請測試者打分,以及評判喜好,再統計得出測試結果。

本次測試共有10首測試音頻,其中5首來自訓練曲庫,5首來自模型生成。共24人參與了本次測試的主觀評價,其中11位學過樂器,10位表示喜歡古典音樂。在測試中,他們只能看到音樂曲目的序號,其他信息不予顯示,測試者試聽音樂后,根據主觀判斷進行打分(0~5分),0分則表示不好聽,5分則表示非常好聽。測試網站為http://47.94.96.142:8000/index/。測試音頻順序列表如表1所示。各首曲子的主觀評價直接得分如表2所示。

表1 實驗一測試音樂順序列表Table 1 Test music list I

表2 實驗一測試得分及排名結果Table 2 Rank of test scores(Test I)

考慮到樂理知識以及主觀喜好的傾向性,將測試人員的打分進行了加權統計,音樂評分通過式(21)進行計算。

(21)

式中:αk為基礎權重;βki為加分權重;sk為測試人員對該曲目的評分;k∈[1,n]表示測試人員,i∈[1,m]表示m個加分權重項。權重αk和βki的取值如表3所示。

表3 權重分值表Table 3 Weight score table

經計算,各首曲子的主觀評價得分如表4所示。

通過表2與表4的統計結果表明,對于原始得分較高、排名靠前的曲目,通常是被大眾所喜愛的,所以加權后對其沒有造成影響,而群眾認知度不高的曲目,在具有樂理基礎以及喜好古典音樂的聽眾與普通測試者中的得分差異性較大,造成加權后的得分排名與原始得分排名有了一些差異。

表4 實驗一測試加權得分及排名結果Table 4 Weighted rank and scores(Test I)

結果顯示,本算法生成的音樂與人工作曲音樂的排名分布相對均勻,測試人員不能明確區分人工音樂和算法音樂,且在測試人員的打分排名中,模型生成的音樂有一首進入了排名的前三,而排在第一和第二的均是大家非常熟悉的音樂,但是得分末位也是來自本算法,證明算法生成的音樂質量有差異;另外,該實驗結果也說明了在音頻處理方面,本實驗所采取的拼接算法并不容易讓人們發現音樂的拼接點,即在音樂拼接平滑處理方面效果較好。

3.2 實驗二

3.2.1 測試實驗

音樂是極富個人色彩的作品,為了讓本算法更具有靈活性,本文在3.1節實驗一的基礎上增加了交互式計算的部分,在開始生成音樂時,可由使用者指定一個音樂片段作為開頭,在音樂聲稱中間曲目時可由使用者決定是否介入人工選擇,如果介入,系統將會在生成mi時,根據LSTM的輸出h與數據集S中的單位音樂進行匹配,將提供與h距離最短的3首單位音樂給使用者進行選擇;如果不人工介入,算法默認自動匹配距離最短的單位音樂。加入人機交互部分后的算法流程如圖5。

圖5 人機交互式算法描述Fig.5 Algorithm description

本次實驗選取了2首加入交互式計算產生的音樂與加入3.1.2節中的城市音樂列表進行對比測試,測試音樂順序列表如表5所示,得分結果如表6所示。

表5 實驗二測試音樂順序列表Table 5 Test music list II

表6 實驗二交互式測試加權得分及排名結果Table 6 Weighted rank and scores(Test II)

測試結果顯示,加入交互式計算的效果整體比不加入交互式計算得到的音樂要好,證明加入交互式計算可使算法合成音樂的質量更趨于穩定。

4 結束語

本文以音樂音頻為操作對象在AI作曲以音頻為載體的方面進行了嘗試,借鑒語音信號處理手段,以MFCC作為特征向量,將音樂曲目看成具有時間序列特性的音樂片段序列,并以LSTM-RNN作為訓練模型進行生成訓練,該模型不僅能生成新的音樂序列,而且能平滑地將音樂片段拼接為一條完整的音頻,在以音頻為載體而進行AI作曲方面做了很好的嘗試,但是模型作曲有長有短,結果也參差不齊,作曲質量依賴于音頻素材的數量和質量,在加入交互式計算后得到一些生成質量上的提升,但是在如何得到普遍更高質量的音樂和算法的適應性方面還有待改進。

參考文獻:

[1] 劉澗泉. 第三種作曲方式——論計算機音樂創作的新思維[J]. 中國音樂,2006(3):51-54.

Liu Jian-quan. The third way of composing music on the new thinking of computer music creation[J]. Chinese Music,2006(3):51-54.

[2] Turkalo D M. All music guide to electronica (book review)[J]. Library Journal, 2001,126(13):90.

[3] Hiller L A, Isaacson L M. Experimental music/composition with an electronic computer[M]. New York: McGraw,1959.

[4] Loubet E. The beginnings of electronic music in Japan, with a focus on the NHK studio: the 1970s[J]. Computer Music Journal,1998,22(1):49-55.

[5] Sigtia S, Benetos E, Boulanger-Lewandowski N, et al. A hybrid recurrent neural network for music transcription[C]∥2015 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP),Brisbane,QLD, Australia,2015:2061-2065.

[6] Eck D, Schmidhuber J. A first look at music composition using LSTM recurrent neural networks[M]. Lugano:IDSIA USI-SUPSI Instituto Dalle Molle, 2002.

[7] Franklin J A. Recurrent neural networks for music computation[J]. Informs Journal on Computing,2006,18(3):321-338.

[8] Liu I, Ramakrishnan B. Bach in 2014: music composition with recurrent neural network[J]. Eprint Arxiv, 2014.https//arxiv.org/pdf/1412.3191.pdf.

[9] Dhanalakshmi P, Palanivel S, Ramalingam V. Classification of audio signals using SVM and RBFNN[J]. Expert Systems with Applications,2009,36(3):6069-6075.

[10] Mathieu B, Essid S, Fillon T, et al. YAAFE, an easy to use and efficient audio feature extraction software[C]∥International Society for Music Information Retrieval Conference, Ismir 2010, Utrecht, Netherlands,2010:441-446.

[11] Salas H A G, Gelbukh A, Calvo H. Music composition based on linguistic approach[C]∥Advances in Artificial Intelligence,Mexican International Conference on Artificial Intelligence, Pachuca,Mexico, 2010:117-128.

猜你喜歡
作曲小節音頻
逐夢
羌族薩朗舞歌巴茸的音樂分析
——以羌族舞歌《葉忍》為例
快把我哥帶走
邀你來我家
德沃夏克
——《幽默曲》賞析
必須了解的音頻基礎知識 家庭影院入門攻略:音頻認證與推薦標準篇
基于Daubechies(dbN)的飛行器音頻特征提取
George Gershwin
李斯特《匈牙利狂想曲第十一首》音樂分析
伍光輝作曲三首
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合