丁潔
(商洛學(xué)院藝術(shù)學(xué)院,陜西商洛 726000)
民族音樂(lè)是與當(dāng)?shù)氐脑嘉幕芮邢嚓P(guān)的音樂(lè)形式,例如以江南絲竹為代表的南音、以西安鼓樂(lè)為代表的吹打樂(lè),民族音樂(lè)是民族文化的珍寶,在當(dāng)今全球化的意象中,民族音樂(lè)是重要的文化輸出手段[1]。民族音樂(lè)的多樣性和獨(dú)特性能夠體現(xiàn)中國(guó)的歷史文化,民族音樂(lè)的傳承和開(kāi)發(fā)是非常重要的研究。但是,在現(xiàn)今社會(huì)的音樂(lè)受眾、音樂(lè)形式、音樂(lè)類(lèi)型和媒體形式都發(fā)生巨大變化時(shí),民族音樂(lè)的推廣和傳播卻面臨諸多問(wèn)題[2]。
隨著多媒體科技的迅速發(fā)展,音樂(lè)創(chuàng)作形式和應(yīng)用方式發(fā)生了巨大的改變。在數(shù)字音樂(lè)十分普及的時(shí)代,許多音樂(lè)制作人都會(huì)利用數(shù)字音樂(lè)的便利性來(lái)制作音樂(lè),使用音樂(lè)數(shù)字接口(Musical Instrument Digital Interface,MIDI)的通信協(xié)議記錄音樂(lè)所需的數(shù)字參數(shù)進(jìn)行編曲,相較于依靠麥克風(fēng)錄制實(shí)體樂(lè)器演奏要方便許多[3]。在數(shù)字音樂(lè)的制作過(guò)程中,所有步驟都可以使用電腦來(lái)完成,MIDI 通信協(xié)議所記錄的參數(shù)在音樂(lè)工作站(Digital Audio Workstation,DAW)中都可以搭載軟件音源(Software Instrument),從而輸出各種樂(lè)器的聲音。這種制作的便利性和多元性使得數(shù)字音樂(lè)蓬勃發(fā)展[4]。
結(jié)合民族音樂(lè)的特性和數(shù)字音樂(lè)制作的優(yōu)勢(shì),文中以機(jī)器學(xué)習(xí)(Machine Learning)中的監(jiān)督式學(xué)習(xí)模型對(duì)MIDI 音序編輯器中所記錄的數(shù)字參數(shù)進(jìn)行訓(xùn)練,以達(dá)成具有民族音樂(lè)特色的音樂(lè)自動(dòng)化生成、制作目標(biāo),促進(jìn)民族音樂(lè)的數(shù)字化開(kāi)發(fā)和應(yīng)用,使得民族音樂(lè)煥發(fā)出新的生命活力。為了同時(shí)應(yīng)對(duì)市場(chǎng)對(duì)于音樂(lè)類(lèi)型的多元化需求和民族音樂(lè)的獨(dú)特性,文中實(shí)驗(yàn)將訓(xùn)練多種不同民族音樂(lè)風(fēng)格的MIDI 資料。通過(guò)訓(xùn)練完善的民族音樂(lè)自動(dòng)化作曲模型,可以為音樂(lè)市場(chǎng)提供大量民族音樂(lè)風(fēng)格的音樂(lè),并節(jié)省時(shí)間、人力成本,創(chuàng)造出更多民族音樂(lè)的應(yīng)用和開(kāi)發(fā)方向。
音樂(lè)是一種由聲音組成的藝術(shù)表現(xiàn)形式,音樂(lè)主要的構(gòu)成元素有音高、節(jié)奏、音色。在不同的音樂(lè)風(fēng)格中,會(huì)不同程度地強(qiáng)調(diào)不同的元素[5]。音高是民族音樂(lè)重要的特征,代表著聲音頻率的高低。對(duì)于民族音樂(lè)演奏中的弦樂(lè)器,改變音高的方式有3 種,分別為對(duì)弦的長(zhǎng)度、張力、密度進(jìn)行調(diào)整[6]。
1)弦長(zhǎng)越長(zhǎng),音高越低;弦長(zhǎng)越短,音高越高。震動(dòng)頻率與長(zhǎng)度成反比:
2)對(duì)弦的張力越小,音高越低;張力越大,音高越高。震動(dòng)頻率與張力平方根成正比:
3)弦的密度越大,音高越低;密度越小,音高越高。震動(dòng)頻率與密度平方根成反比:
其中,f表示震動(dòng)頻率,l表示長(zhǎng)度,T表示張力,ρ表示密度。
音色是民族音樂(lè)另一個(gè)重要的特征。造成音色差異的主要因素是聲波震動(dòng)產(chǎn)生的泛音組成有所不同。人類(lèi)對(duì)聲音感官的不同因素主要有波形、聲壓和頻譜[7]。
波形是聲波的形狀,也是造成音色差異的最大要素。波形受到4 種參數(shù)控制,包括:
1)Attack(A):聲音從無(wú)到峰值的時(shí)間;
2)Decay(D):聲音從峰值到平穩(wěn)狀態(tài)的時(shí)間;
2)Sustain(S):聲音在平穩(wěn)狀態(tài)的時(shí)間;
4)Release(R):聲音從平穩(wěn)狀態(tài)衰減到無(wú)的時(shí)間。
音樂(lè)波形趨勢(shì)圖如圖1 所示。
圖1 音樂(lè)波形趨勢(shì)圖
聲壓是聲波在介質(zhì)中傳播時(shí),因震動(dòng)產(chǎn)生的壓力變量,符號(hào)為p,單位為Pa,常使用聲壓級(jí)SPL 來(lái)表示聲壓的大小。聲波在介質(zhì)中傳輸,介質(zhì)粒子的密度隨聲波改變,每一點(diǎn)的瞬時(shí)聲壓也會(huì)有所不同[8]。因此以均方根prms作為其平均值來(lái)計(jì)算,聲音所產(chǎn)生的正弦波峰值ppeak與均方根prms的關(guān)系如下:
在民族音樂(lè)作品中,聲壓大小對(duì)人類(lèi)感官的刺激常常在于配合曲勢(shì)的起伏。在音樂(lè)領(lǐng)域,聲音頻譜代表在時(shí)序下聲音的頻率表現(xiàn),通常使用時(shí)頻數(shù)據(jù)對(duì)聲音頻譜隨著時(shí)序變化的特征進(jìn)行描述[9]。
MIDI 是用來(lái)連接音樂(lè)與電腦的媒介,但由于不同電腦產(chǎn)生的音源器有所差異,使得MIDI 技術(shù)存在不一致性,這個(gè)問(wèn)題在1983 年由Midi Manufacture Association(MMA)制定出的同步標(biāo)準(zhǔn)中達(dá)到了統(tǒng)一。MIDI 應(yīng)用在編曲軟件中主要包含了音高、音長(zhǎng)、強(qiáng)度和音量等音樂(lè)特征參數(shù),與WAV 和MP3 所包含的音波及音色有所區(qū)別[10]。
MIDI 音樂(lè)檔案中共有128 個(gè)音高,音高由頻率轉(zhuǎn)換而來(lái),公式如下:
式(5)說(shuō)明MIDI 能夠?qū)⒁欢涡芍械慕M成音定義出來(lái)。
MIDI Toolbox 套件中的Notematrix 矩陣囊括了MIDI 所有的音樂(lè)信息,包括:
1)Onset:以節(jié)拍表示每一個(gè)音高的起始拍;
2)Duration:以節(jié)拍表示每一個(gè)音高的音長(zhǎng);
3)MIDI channel:音樂(lè)中的音色;
4)MIDI pitch:音樂(lè)中的音高;
5)Velocity:音樂(lè)的強(qiáng)度。
根據(jù)民族音樂(lè)的特性,先求出不同樂(lè)曲之下每個(gè)音符的起始位置,形成一個(gè)時(shí)間序列公式如下:
其中,n是每一首曲子里的音符數(shù),ti是音符起始時(shí)間,dt代表小節(jié)分區(qū),這里是將一個(gè)連續(xù)信號(hào)轉(zhuǎn)換成為離散信號(hào),是對(duì)求出的n取整數(shù)部分,ai為各種音樂(lè)特征的加權(quán)。
將時(shí)間序列中每一個(gè)數(shù)據(jù)與其前面數(shù)據(jù)的時(shí)間距離定義為lag 值,用相關(guān)系數(shù)的方式計(jì)算出來(lái)。如果求出的值較大,則代表這個(gè)序列在同距離的lag 有一定的周期性,這里將自相關(guān)系數(shù)寫(xiě)成自相關(guān)函數(shù):
其中,m代表相隔幾何距離的lag。
MIDI 的呈現(xiàn)方式與其他音樂(lè)格式相比,降低了音樂(lè)特性識(shí)別的復(fù)雜度,因此能夠被廣泛地運(yùn)用在電腦或各種移動(dòng)設(shè)備上。
文中主要對(duì)由網(wǎng)絡(luò)收集到的30 首民族音樂(lè)組成的資料庫(kù)進(jìn)行分析和處理,通過(guò)MIDI Toolbox 轉(zhuǎn)換后得到音符矩陣(Notematrix),取得MIDI 的音高、節(jié)拍、音量、音軌、起始音等音樂(lè)特性,通過(guò)建構(gòu)自相關(guān)系數(shù)的方法來(lái)描述曲子的旋律特征。文中以機(jī)器學(xué)習(xí)中的監(jiān)督式學(xué)習(xí)方法為基礎(chǔ),運(yùn)用統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法中的隨機(jī)森林、支持向量機(jī)、線性判別分析方法等分類(lèi)方法,訓(xùn)練民族音樂(lè)的各種參數(shù),并以此為分類(lèi)方法比較對(duì)民族音樂(lè)特征識(shí)別判斷的準(zhǔn)確率。
機(jī)器學(xué)習(xí)是利用計(jì)算機(jī)判別的過(guò)程,通過(guò)訓(xùn)練模型對(duì)不同的音樂(lè)資料類(lèi)型進(jìn)行區(qū)分,直到學(xué)習(xí)結(jié)束后,通過(guò)新的測(cè)試資料對(duì)學(xué)習(xí)成果進(jìn)行測(cè)試判斷,可以觀察模型的訓(xùn)練誤差和測(cè)試誤差,并對(duì)模型分類(lèi)的表現(xiàn)結(jié)果進(jìn)行判別[11]。民族音樂(lè)資料處理中的統(tǒng)計(jì)資料存儲(chǔ)與分類(lèi)集合Dn的表示公式如下:
其中,yi是標(biāo)簽,xi是特征。具體來(lái)說(shuō),以MIDI音高為例,yi是每首曲子的調(diào)性,xi是第i首曲子的音高分配,n是資料庫(kù)的曲子總數(shù)。
線性判別分析(Linear Discriminant Analysis,LDA)是分類(lèi)學(xué)習(xí)領(lǐng)域中常被使用的統(tǒng)計(jì)方法[12],LDA 假設(shè)在多維度的正態(tài)分布之下,利用統(tǒng)計(jì)資料,對(duì)線性判別分析數(shù)值X|y=k進(jìn)行計(jì)算,表示如下:
其中,fk(xi)為概率密度函數(shù),μk和∑k分別來(lái)自各類(lèi)的總體期望值與共變異數(shù)矩陣。通過(guò)貝氏定理得到πk,后驗(yàn)概率P(Y=k|X=x)表示如下:
概率密度函數(shù)和有單調(diào)性質(zhì)的log 函數(shù)結(jié)合后,在給定的k下,概率密度函數(shù)取最大的δk(x),并歸類(lèi)為G(x):
需要被估計(jì)的參數(shù)包括:
其中,μk代表第k群的觀測(cè)數(shù)目,在LDA 的情形下,為對(duì)角矩陣。
支持向量機(jī)(Support Vector Machine,SVM)屬于監(jiān)督式學(xué)習(xí)方式,通常用于解決分類(lèi)和回歸的問(wèn)題,可以處理分類(lèi)問(wèn)題中的線性和非線性資料[13]。SVM方法中包含兩個(gè)重要的目標(biāo):一個(gè)是標(biāo)準(zhǔn)化,另一個(gè)則是核心函數(shù)的選擇[14]。
準(zhǔn)備好MIDI 資料后,需要將存儲(chǔ)的資料建立為L(zhǎng)STM(Long Short-Term Memory)網(wǎng)絡(luò)層所需的三維序列輸入,并進(jìn)行標(biāo)準(zhǔn)化[15]。文中使用Keras 快速建構(gòu)神經(jīng)網(wǎng)絡(luò),使用時(shí)只需調(diào)整神經(jīng)元數(shù)據(jù)、激活函數(shù)與損失函數(shù)等關(guān)鍵模型參數(shù)就可以快速建立模型[16]。神經(jīng)網(wǎng)絡(luò)模型如圖2 所示。
圖2 神經(jīng)網(wǎng)絡(luò)模型
文中使用Softmax 激活函數(shù),在模型中計(jì)算每一類(lèi)別的概率,采用指數(shù)計(jì)算,使數(shù)值增長(zhǎng)與概率值變化呈現(xiàn)正相關(guān),增加了類(lèi)型的區(qū)分程度,效率更高。Softmax 激活函數(shù)計(jì)算公式如下:
文中使用交叉熵方法來(lái)計(jì)算損失函數(shù),在資料的預(yù)處理中,將目標(biāo)資料進(jìn)行多類(lèi)別編碼,將目標(biāo)資料轉(zhuǎn)化為向量資料,在任意維度中只有一個(gè)維度的數(shù)值為1,其余維度的數(shù)值皆為0,交叉熵?fù)p失函數(shù)的計(jì)算公式為:
其中,x為輸入樣本,n為待分類(lèi)的類(lèi)別數(shù)目,yi為第i類(lèi)類(lèi)別所對(duì)應(yīng)的真實(shí)目標(biāo),fi(x)為對(duì)應(yīng)的模型輸出。神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)的輸出經(jīng)過(guò)Music21 建立成MIDI檔案后,將檔案錄入MIDI軟件中進(jìn)行編輯與生成。
文中主要研究民族音樂(lè)MIDI 程序開(kāi)發(fā)與制作中的關(guān)鍵問(wèn)題,通過(guò)對(duì)30 首民族音樂(lè)進(jìn)行機(jī)器學(xué)習(xí)方法的分析,找出曲子的相關(guān)系數(shù),再以音樂(lè)特性加權(quán)求得相關(guān)系數(shù),作為民族音樂(lè)制作的基本架構(gòu)。該研究的實(shí)驗(yàn)包括參數(shù)訓(xùn)練實(shí)驗(yàn)和音樂(lè)生成實(shí)驗(yàn)兩部分。參數(shù)訓(xùn)練實(shí)驗(yàn)的基本步驟包括:
1)通過(guò)MIDI Toolbox 將民族音樂(lè)資料庫(kù)的音樂(lè)轉(zhuǎn)化為音符矩陣,提煉出每個(gè)特性的信息,記作X。
2)將曲子的各類(lèi)特征數(shù)據(jù)記作Y,并統(tǒng)計(jì)分析出Dn。
3)對(duì)Dn進(jìn)行交叉驗(yàn)證,分為訓(xùn)練資料和測(cè)試資料,取多次模型訓(xùn)練結(jié)果的平均值。
4)對(duì)處理好的資料庫(kù)數(shù)據(jù)以不同的機(jī)器學(xué)習(xí)統(tǒng)計(jì)方法進(jìn)行分析。
該研究在LDA 方法下以R 軟件中的MASS 套件執(zhí)行LDA 計(jì)算,實(shí)驗(yàn)設(shè)備采用SVM 方法實(shí)驗(yàn)R 軟件中的E1071 套件,RF 方法使用R 軟件的random Forest 套件。
民族音樂(lè)生成實(shí)驗(yàn)操作步驟如圖3 所示。
圖3 民族音樂(lè)生成實(shí)驗(yàn)操作步驟
在實(shí)驗(yàn)中,將資料庫(kù)中經(jīng)過(guò)機(jī)器學(xué)習(xí)參數(shù)訓(xùn)練的民族音樂(lè)使用Music21 套件對(duì)其進(jìn)行分析和存檔,再將資料放入文中的訓(xùn)練網(wǎng)絡(luò)中進(jìn)行訓(xùn)練與預(yù)測(cè),再使用Music21 套件將預(yù)測(cè)結(jié)果輸出為MIDI 音頻資料。
文中運(yùn)用統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法中的線性判別分析、隨機(jī)森林、支持向量機(jī)等分類(lèi)方法,訓(xùn)練民族音樂(lè)的各種參數(shù),并以此為分類(lèi)方法比較對(duì)民族音樂(lè)特征識(shí)別的準(zhǔn)確率。將資料庫(kù)中的民族音樂(lè)分為3組進(jìn)行訓(xùn)練,實(shí)驗(yàn)的結(jié)果如表1 所示。
由表1可以看出,SVM-linear 與SVM 同為線性分析方法,SVM-linear 方法的結(jié)果要優(yōu)于LDA 方法,推測(cè)可能的原因是:LDA 方法下的多維度正態(tài)分布與音調(diào)分布不相符,所以產(chǎn)生共線性問(wèn)題導(dǎo)致結(jié)果較差。而同樣是SVM 方法,不同的核心函數(shù)選擇雖然結(jié)果相差不大,但仍可以依據(jù)訓(xùn)練誤差和測(cè)試誤差的誤差距離發(fā)現(xiàn),在SVM 方法的結(jié)果下,SVMRBF 的核心函數(shù)選擇結(jié)果要優(yōu)于線性的核心函數(shù)結(jié)果。觀察整體表格可以發(fā)現(xiàn),在所有方法中,SVM 方法下的SVM-RBF 是最佳的民族音樂(lè)參數(shù)判斷方法。
表1 機(jī)器學(xué)習(xí)統(tǒng)計(jì)方法分組訓(xùn)練誤差結(jié)果
文中的民族音樂(lè)計(jì)算機(jī)生成實(shí)驗(yàn)部分使用了民族音樂(lè)中具有代表性的古琴、古箏、琵琶、笛子、馬頭琴5 種樂(lè)器曲子作為訓(xùn)練資料,經(jīng)過(guò)神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練完成以后,每種樂(lè)器樂(lè)曲訓(xùn)練和生成的結(jié)果如表2 所示。
表2 5種樂(lè)器樂(lè)曲的神經(jīng)網(wǎng)絡(luò)模型生成結(jié)果
由實(shí)驗(yàn)結(jié)果得知,實(shí)驗(yàn)中通過(guò)計(jì)算機(jī)MIDI 程序?qū)γ褡逡魳?lè)資料庫(kù)進(jìn)行處理,并使用神經(jīng)網(wǎng)絡(luò)模型方法對(duì)結(jié)果進(jìn)行自動(dòng)生成,結(jié)果顯示,模型的特征精確值都在95%以上。這說(shuō)明文中方法自動(dòng)生成的民族音樂(lè)能夠在一定程度上擬合民族音樂(lè)的獨(dú)特性,且旋律的制作具有規(guī)律性,神經(jīng)網(wǎng)絡(luò)模型能夠根據(jù)訓(xùn)練資料的風(fēng)格將樂(lè)曲的特征保持固定在一定的音階上,該方法可以作為民族音樂(lè)數(shù)字化制作的有效方法。
以琵琶樂(lè)器的樂(lè)曲為例,圖4 展現(xiàn)了全曲的擬合趨勢(shì)變化??梢钥闯?,研究方法對(duì)于樂(lè)曲力度趨勢(shì)的預(yù)測(cè)與實(shí)際值較為貼近,甚至細(xì)節(jié)的變化都能夠較為吻合。
圖4 琵琶曲模型擬合趨勢(shì)變化
文中針對(duì)民族音樂(lè)在數(shù)字音樂(lè)時(shí)代所面臨的瓶頸和問(wèn)題,提出了利用計(jì)算機(jī)MIDI 音序編輯技術(shù)來(lái)進(jìn)行民族音樂(lè)數(shù)字化的開(kāi)發(fā)和應(yīng)用。文中主要以機(jī)器學(xué)習(xí)中的隨機(jī)森林、支持向量機(jī)、線性判別分析方法等分類(lèi)方法訓(xùn)練民族音樂(lè)的各種參數(shù),對(duì)由網(wǎng)絡(luò)收集到的30 首民族音樂(lè)組成的資料庫(kù)進(jìn)行分析和處理,通過(guò)建構(gòu)自相關(guān)系數(shù)的方法來(lái)描述曲子的旋律特征,作為民族音樂(lè)制作的基本架構(gòu)。實(shí)驗(yàn)結(jié)果顯示,在所有方法下,SVM 方法下的非線性核心函數(shù)RBF 是最佳的民族音樂(lè)參數(shù)判斷方法。實(shí)驗(yàn)中通過(guò)計(jì)算機(jī)MIDI 程序?qū)γ褡逡魳?lè)資料庫(kù)進(jìn)行處理,并使用神經(jīng)網(wǎng)絡(luò)模型方法對(duì)結(jié)果進(jìn)行自動(dòng)生成,結(jié)果顯示,模型的特征精確值都在95%以上。但總體來(lái)看,文中實(shí)驗(yàn)的資料庫(kù)和民族音樂(lè)樣本不夠豐富,利用MIDI 技術(shù)和神經(jīng)網(wǎng)絡(luò)模型來(lái)建立民族音樂(lè)自動(dòng)作曲的效果還十分有限,需要引進(jìn)對(duì)民族音樂(lè)的特征進(jìn)行更加細(xì)化的判斷機(jī)制,從而開(kāi)發(fā)出更具特色的數(shù)字化民族音樂(lè)。