寧慧, 南江萍
(1.西安交通工程學(xué)院 人文與經(jīng)濟(jì)管理學(xué)院, 陜西 西安 710000;2.西安交通工程學(xué)院 電氣工程學(xué)院, 陜西 西安 710000)
數(shù)字音樂的出現(xiàn),將音樂藝術(shù)與信息技術(shù)相結(jié)合成為目前音樂市場(chǎng)發(fā)展熱點(diǎn)[1-2]。音樂的本質(zhì)是潛在的情感,而音樂情感的識(shí)別則是根據(jù)音樂特征與情感的映射關(guān)系來滿足,對(duì)音樂情感識(shí)別有效提升人機(jī)情感交互[3-5]。目前,音樂情感分類識(shí)別更多的是基于音樂文本、音頻信號(hào)形式下對(duì)數(shù)據(jù)特征的分析,通過相應(yīng)的學(xué)習(xí)方法發(fā)現(xiàn)音色、節(jié)奏和韻律等特征來構(gòu)建音樂特征信號(hào)的識(shí)別模型[6-8]。如針對(duì)音樂歌詞部分,通過Bag of words方式進(jìn)行識(shí)別,獲得不同音樂模式下的情感分類[9-11];針對(duì)音樂韻律方面,采用相應(yīng)的表達(dá)式編程算法進(jìn)行情感類型的劃分[12-14]。但上述方式更多的是基于歌詞、韻律的音樂情感分類采用的是單模態(tài)數(shù)據(jù)分析法,難以完整的反映對(duì)象的全部特征。
前項(xiàng)神經(jīng)網(wǎng)絡(luò)通過利用不同模態(tài)數(shù)據(jù)形成多模態(tài)數(shù)據(jù)來實(shí)現(xiàn)對(duì)音樂情感鑒賞的多特征融合,實(shí)現(xiàn)從歌詞、律動(dòng)和節(jié)奏多方位的分類分析,因此具有很強(qiáng)的分類精確度[15]?;诖?,本文基于前向神經(jīng)網(wǎng)絡(luò),通過梯度下降算法來提升模型學(xué)習(xí)能力,利用多模態(tài)的數(shù)據(jù)特征實(shí)現(xiàn)對(duì)音樂情感的模型訓(xùn)練。
音樂情感分類是情感分析的第一步。目前在音樂領(lǐng)域較為常用的模型主要為Thayer模型和Hevner情感環(huán)模型[16]。本文在兩種分類方法的基礎(chǔ)上,通過面向音樂領(lǐng)域?qū)<液途W(wǎng)絡(luò)調(diào)查、訪談,按照Hevner的環(huán)節(jié)結(jié)構(gòu),針對(duì)詞表中67個(gè)形容詞進(jìn)行定量表述,符合中國人習(xí)慣,通過修改、刪除,基于不同情感劃分為神圣、悲傷、向往、抒情、輕盈、快樂、熱情和生機(jī)8個(gè)區(qū)域共47小類情感分類,如表1所示。
表1 基于音樂情感類別劃分
音樂特征包括音高、時(shí)長和音色等聲學(xué)特征,節(jié)奏、旋律和速度等時(shí)空特征以及曲式、調(diào)式的語義特征[17]。音樂情感分析需要同時(shí)考慮音樂基本信息、節(jié)奏變化和結(jié)構(gòu)形式,將音樂特征分為音符特征和高層特征。音符特征中包括音高、時(shí)長和音強(qiáng);高層特征包括速度、力量、節(jié)奏、旋律和音程信息。
音高、時(shí)值和音強(qiáng)作為音樂最基本組成原始,是音樂情感認(rèn)知的聲學(xué)線索。樂曲的音高變化音高的均方差來表征,如式(1)。
(1)
式中,Pi表示第i個(gè)音符音高;n表示音符數(shù)量。
音域用來表示樂曲音高廣度,定義音域,如式(2)。
Range=Max(P1,P2,…Pn)-Min(P1,P2,…Pn)
(2)
式中,P1,P2,…Pn表示音符音高值Pitch。
時(shí)值時(shí)音符的持續(xù)時(shí)間。時(shí)值的表示方法,如式(3)。
Duration=EedTime-StartTime
(3)
力度是音樂表達(dá)情感的重要手段,不同的音樂力度能夠?qū)β牨娫斐刹町惢那楦畜w驗(yàn)。對(duì)于力度特征,可采用平均力度和力度變化特征來表征,其中平均粒度采用式,如式(4)。
(4)
式中,n、m分別表示樂曲音符數(shù)。針對(duì)力度變化程度采用式,如式(5)。
(5)
式中,Di表示第i個(gè)樂曲音符力度;N表示總音符數(shù)。通過式(5)以樂曲小節(jié)來對(duì)力度變化描述,排除節(jié)拍中輕重變化帶來的影響,更純粹的描述力度變化。
旋律是根據(jù)一定規(guī)律形成的有組織和諧運(yùn)動(dòng),反映了樂音時(shí)間和空間上的組織形式。旋律的方向描述了音高走勢(shì)變化,對(duì)此提出旋律方向的表示方式,如式(6)。
(6)
式中,Di表示第i個(gè)音長;D表示音長總和。
節(jié)奏是音樂中交替出現(xiàn)有規(guī)律強(qiáng)度的現(xiàn)象。不同的節(jié)奏賦予音樂不同張力。針對(duì)節(jié)奏運(yùn)動(dòng)的張力變化,采用發(fā)音點(diǎn)密度來直接反映其基本狀態(tài)。密度越大,緊張度越強(qiáng)。表征節(jié)奏密度的變化,如式(7)。
(7)
式中,BarCapacity(i)表示第i個(gè)小節(jié)能量值;MaxCapacity(i)表示該節(jié)最大能量值。
前向神經(jīng)網(wǎng)絡(luò)(FFN)是一種多層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),用于求解非線性問題[18]。FFN通常由輸入層、輸出層和隱含層構(gòu)成。隱含層接收到輸出層結(jié)構(gòu),按照需求進(jìn)行變化,將結(jié)果傳遞到輸出層,作為整個(gè)網(wǎng)絡(luò)的輸出。當(dāng)實(shí)際輸出與期望輸出不一致時(shí),以計(jì)算獲得的誤差作為輸入反饋至輸入層,基于誤差梯度下降來對(duì)網(wǎng)絡(luò)模型中各層的權(quán)值進(jìn)行修正,直到輸出符合期望值,即完成一次訓(xùn)練。
假設(shè)網(wǎng)絡(luò)中每一個(gè)神經(jīng)元數(shù)值為ai,將層與層間單元用不同權(quán)值連接,利用非線性激活函數(shù)獲得的激活值z(mì)i對(duì)上一層數(shù)據(jù)計(jì)算,將獲得的結(jié)果傳遞到下一層數(shù)據(jù)實(shí)現(xiàn)逐層向前計(jì)算。前向神經(jīng)網(wǎng)絡(luò)模型框架圖,如圖1所示。
圖1 FNN模型框架圖
其中,h表示網(wǎng)絡(luò)輸入;w和b分別表示輸入層和輸出層參數(shù)權(quán)重;z表示神經(jīng)網(wǎng)絡(luò)輸出。
神經(jīng)網(wǎng)絡(luò)傳遞分為前向傳播和反向傳播[19]。前向傳播根據(jù)給定的輸入進(jìn)行計(jì)算,由底向上傳播。后向傳播根據(jù)前向傳播結(jié)果,采用梯度下降算法計(jì)算、訓(xùn)練各神經(jīng)元參數(shù)[20-21]。前向傳播計(jì)算傳播,如式(8)、式(9)。
(8)
(9)
對(duì)于FNN的訓(xùn)練樣本,根據(jù)各輸入?yún)?shù)的非線性特征,采用Softmax激活函數(shù)[22]。由于網(wǎng)絡(luò)神經(jīng)炎的數(shù)據(jù)值范圍在[0,1]區(qū)間,因此將非線性參數(shù)輸入視為一個(gè)概率分布。即假定分類輸出為f(zj),輸入標(biāo)記為Z,數(shù)組Z中第i個(gè)元素為Zi,定義Softmax判斷式,如式(10)。
(10)
相應(yīng)的損失函數(shù),如式(11)。
loss=-logf(zk)
(11)
(12)
實(shí)際計(jì)算過程中,首先計(jì)算各節(jié)點(diǎn)激活值,通過反向傳播算法傳播獲得各參數(shù)梯度值,對(duì)模型參數(shù)進(jìn)行更新,直到迭代過程收斂。
根據(jù)前向神經(jīng)網(wǎng)絡(luò)的傳播方式,確定算法具體流程。模型訓(xùn)練中,選擇總量為m的樣本集{xj,j=1,2,…,m}作為神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù),使用{yj,j=1,2,…,m}作為期望輸出。訓(xùn)練中,利用算法微調(diào)獲得神經(jīng)網(wǎng)絡(luò)各個(gè)參數(shù),確定算法的具體流程,如圖2所示。
圖2 前向神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)流程
(1) 系統(tǒng)初始化。對(duì)每個(gè)神經(jīng)元內(nèi)部閾值和連接權(quán)分別隨機(jī)賦值(0,1),輸入MIDI音樂片段的特征向量,輸出為向量代表的音樂情感。
(2) 通過輸入樣本,連接權(quán)重和閾值計(jì)算中間層輸入值,選擇隱含層傳遞函數(shù),計(jì)算獲得中間各層單元的計(jì)算結(jié)果[24];通過中間層輸出,連接權(quán)重和閾值計(jì)算輸出層各單元的輸入樣本,以simoid作為傳遞函數(shù)計(jì)算輸出層單元的響應(yīng)值。
(3) 將輸出響應(yīng)值與目標(biāo)結(jié)果比較,獲得一般化誤差,根據(jù)連接權(quán)重、輸出層一般誤差和中間層輸出計(jì)算中間各單元一般化誤差,通過輸出層各單元誤差修正各層的連接權(quán)重和閾值。
(4) 將下一個(gè)學(xué)習(xí)樣本向量作為新的輸入向量,并執(zhí)行步驟(2),直到樣本誤差小于預(yù)設(shè)誤差極小值,算法結(jié)束,網(wǎng)絡(luò)結(jié)構(gòu)收斂。
當(dāng)訓(xùn)練完成后,需要對(duì)神經(jīng)網(wǎng)絡(luò)測(cè)試來監(jiān)測(cè)情感識(shí)別的準(zhǔn)確度。首先選擇測(cè)試樣本來檢驗(yàn)網(wǎng)絡(luò)性能。測(cè)試樣本中包括后續(xù)網(wǎng)絡(luò)應(yīng)用中存在的樣本形式,為保證網(wǎng)絡(luò)的泛化能力,測(cè)試樣本不應(yīng)該包含相同樣本。
為驗(yàn)證本文提出的前向神經(jīng)網(wǎng)絡(luò)模型的可行性,從QQ音樂、網(wǎng)易等軟件中選擇了五類情感特征明顯的80首MIDI音樂片段進(jìn)行情感分類。將測(cè)試樣本隨機(jī)分成5組進(jìn)行分類測(cè)試,給出的部分樣本信息片段,如表2所示。
表2 部分樣本信息表
首先通過音樂鑒賞專家分類后,采用前向神經(jīng)網(wǎng)絡(luò)進(jìn)行樣本訓(xùn)練。神經(jīng)網(wǎng)絡(luò)輸入層輸入8維音樂特征向量,因此設(shè)定網(wǎng)絡(luò)輸入層節(jié)點(diǎn)數(shù)為8,根據(jù)上節(jié)多模型的分類,確定輸出神經(jīng)元節(jié)點(diǎn)數(shù)為8個(gè),八個(gè)情感特征標(biāo)準(zhǔn)形式分別為:神圣(0,0,0,1)、悲傷(0,0,1,0)、向往(0,1,0,0)、抒情(1,0,0,0)、輕盈(0,0,1,1)、快樂(1,1,0,0)、熱情(0,1,1,1)和生機(jī)(1,1,1,0)。由Kolmogorov定義,確定隱藏層節(jié)點(diǎn)數(shù)為17,建立8x17x3的前向神經(jīng)網(wǎng)絡(luò),輸入層8個(gè)節(jié)點(diǎn),隱藏層17個(gè)節(jié)點(diǎn),輸出層3個(gè)節(jié)點(diǎn),選擇Sigmoid函數(shù)來保證輸出結(jié)果落在(0,1)區(qū)間內(nèi)。采用traingdx訓(xùn)練函數(shù)[25],設(shè)定最大循環(huán)次數(shù)為2 500次,為保證模型具有較好的泛化能力,設(shè)定模型在誤差率期望值小于0.001。
實(shí)驗(yàn)平臺(tái)在MATLAB7.1下運(yùn)行,獲得的運(yùn)行結(jié)果和誤差性能,如圖3所示。
圖3 算法誤差率分析
從圖3中可以看出,算法在初始節(jié)點(diǎn)算法誤差率相對(duì)較大,當(dāng)?shù)螖?shù)達(dá)到100次以后,誤差率保持在10-15水平以下,此后保持相對(duì)穩(wěn)定,神經(jīng)網(wǎng)絡(luò)收斂。
將80個(gè)樣本隨機(jī)分為五組,分別采用傳統(tǒng)的推理規(guī)則認(rèn)知系統(tǒng)和前向神經(jīng)網(wǎng)絡(luò)對(duì)5組測(cè)試樣本進(jìn)行情感認(rèn)識(shí)分類測(cè)試,獲得測(cè)試樣本識(shí)別結(jié)果,如表3所示。
表3 部分音樂片段的識(shí)別結(jié)果
可以看出兩種測(cè)試方法在測(cè)試相同樣本中獲得的識(shí)別結(jié)果存在明顯差異。其中前向神經(jīng)網(wǎng)絡(luò)分類精度高于基于推理規(guī)則的情感認(rèn)知系統(tǒng),本文算法的識(shí)別準(zhǔn)確率平均為86%,而基于系統(tǒng)的識(shí)別準(zhǔn)確率74%左右。特別是在對(duì)神圣、悲傷、熱情情感類型的音樂識(shí)別中分類準(zhǔn)確率達(dá)到了88%以上。
在針對(duì)抒情情感的音樂識(shí)別中,采用前向神經(jīng)網(wǎng)絡(luò)的情感識(shí)別率相較于其他類的準(zhǔn)確率偏低,這可能是由于抒情類情感的片段訓(xùn)練樣本在音樂旋律、力度和節(jié)奏感方面相對(duì)較為平緩和輕盈,因而相對(duì)音樂特征的提取較低。通過實(shí)驗(yàn),針對(duì)旋律特征和節(jié)奏特征對(duì)音樂情感識(shí)別有較大的影響作用,因此選擇適當(dāng)?shù)囊魳诽卣髯鳛檩斎胱兞磕軌蛟谝欢ǔ潭壬咸岣咭魳非楦械姆诸惥取M瑫r(shí)比較兩種模型可以看出,兩種模型的訓(xùn)練時(shí)間都較短,其中前向神經(jīng)網(wǎng)絡(luò)相對(duì)更優(yōu)一些,但二者相差不大。
音樂情感識(shí)別和分類對(duì)于有效改善音樂檢索服務(wù)有重要現(xiàn)實(shí)意義。本文基于前向神經(jīng)網(wǎng)絡(luò)建立音樂情感認(rèn)識(shí)的分類模型。選擇音色、力度、旋律、節(jié)奏、音高、音域和時(shí)域作為音樂特征提取變量,建立輸入層、隱含層和輸出層網(wǎng)絡(luò)結(jié)構(gòu),根據(jù)輸入變量進(jìn)行前向傳播計(jì)算,通過比較實(shí)際輸出與期望輸出間的誤差梯度修正隱含層權(quán)重,利用Softmax函數(shù)進(jìn)行反向激活計(jì)算,實(shí)現(xiàn)預(yù)定分類精度下的算法收斂。將建立的算法模型與傳統(tǒng)推理規(guī)則專家識(shí)別系統(tǒng)進(jìn)行算法性能比較,實(shí)例驗(yàn)證結(jié)果表明:基于前向網(wǎng)絡(luò)的算法模型平均識(shí)別準(zhǔn)確率提升到86%。對(duì)節(jié)奏感、旋律和力度特征量更強(qiáng)的音樂類型分類準(zhǔn)確率高于平緩、輕盈特征的溫柔情感音樂類型。算法在保證計(jì)算效率的基礎(chǔ)上,具有更高的分類準(zhǔn)確率。