郭毓博,陸軍,段鵬啟
1.黑龍江大學(xué)計算機科學(xué)技術(shù)學(xué)院,黑龍江哈爾濱150080
2.黑龍江大學(xué)黑龍江省數(shù)據(jù)庫與并行計算重點實驗室,黑龍江哈爾濱150080
笛是中華民族的一種吹奏樂器[1],其發(fā)音清脆婉轉(zhuǎn),音色優(yōu)美明亮,特別是其演奏出的曲調(diào)具有鮮明的地域特色與藝術(shù)表現(xiàn)力,因此多用于獨奏。樂曲的表現(xiàn)力要通過演奏者的技巧來體現(xiàn),而演奏家為表現(xiàn)樂曲的風(fēng)格往往需要通過多年的練習(xí)才能在技巧與氣息之間達到一種和諧與平衡。現(xiàn)如今越來越多的人開始喜歡中國傳統(tǒng)音樂,而在學(xué)習(xí)竹笛的過程中往往會發(fā)現(xiàn)按照曲譜并不能表現(xiàn)出中國樂曲所特有的韻律,此時聽取研習(xí)演奏家的演奏方法就顯得很有必要。演奏家對吹奏方法的運用,在很大程度上會影響樂曲的表現(xiàn)力,因此能否精確獲取演奏家的演奏信息就變得十分重要,而其中最重要的一點便是對技巧的自動分類。
現(xiàn)階段關(guān)于音樂的人工智能算法主要應(yīng)用在音樂流派分類[2]、音樂檢索[3]等領(lǐng)域,而對于音樂的專業(yè)性領(lǐng)域如技巧、情感處理分析等領(lǐng)域鮮有關(guān)注,特別是對民族音樂的分析[4]探索十分有限。隨著科技的進步,許多研究人員在人工智能領(lǐng)域?qū)γ褡逡魳愤M行了探索。文獻[5]通過主觀評價標(biāo)準(zhǔn)構(gòu)建了琵琶聲學(xué)品質(zhì)音頻庫,借助神經(jīng)網(wǎng)絡(luò)達到了與人類主觀評價相當(dāng)?shù)姆诸愋Ч?,從而使深度學(xué)習(xí)方法對民族樂器音色具有可區(qū)分性。文獻[6]在使用深度學(xué)習(xí)方法對中國傳統(tǒng)樂器進行識別分類研究的基礎(chǔ)上構(gòu)建了民族音樂分類庫,并用深度置信網(wǎng)絡(luò)對不同的民族樂器進行分類,且分類準(zhǔn)確率較高。文獻[7]利用支持向量機方法對琵琶的輪指技術(shù)進行分類研究,在多特征輸入的條件下可達到100%的分類準(zhǔn)確率,但使用的測試集是基于相同訓(xùn)練集音源的二次錄制,故對于不同樂曲沒有很好的魯棒性。
本文綜合以上研究人員對民族音樂的研究成果,提出了一個專用的竹笛技巧數(shù)據(jù)集Breath,針對技巧分類任務(wù)設(shè)計了兩種深度學(xué)習(xí)分類模型Breath1d和Breath2d;通過劃分子集探究了模型在相似聽感技巧間的分類識別能力;通過實驗對比得出了最佳分類模型。利用深度學(xué)習(xí)模型可對相似音色音頻進行區(qū)分的特點,克服了人工特征提取的局限性,設(shè)計了適用于竹笛吹奏技巧分類的專用數(shù)據(jù)集,以求能在竹笛吹奏技巧的區(qū)分中獲得較好的性能。
人工智能技術(shù)能夠增加從業(yè)者的便利性,若與專業(yè)演奏家進行合作,便可對數(shù)據(jù)樣本進行相應(yīng)優(yōu)化以提高分類的準(zhǔn)確率,甚至可以推廣到其他樂器技術(shù)分類及識別。
音樂特征能夠表征音樂的本質(zhì)屬性,因此無論是對歌曲音樂識別還是對樂器演奏技巧識別,提取音樂特征都是一個極其重要的環(huán)節(jié)。文獻[8]從聽覺的角度出發(fā),將音樂特征分為音色、音調(diào)和節(jié)奏三大類;文獻[9]從特征的長度角度出發(fā),將音樂特征分為短時特征和長時特征。對于竹笛吹奏技巧的分類是反映不同音調(diào)、節(jié)奏的分類,故需要提取多種特征才能完成任務(wù)。傳統(tǒng)機器學(xué)習(xí)方法需要人工提取特征,而深度學(xué)習(xí)方法則通過神經(jīng)網(wǎng)絡(luò)提取特征。音頻特征的形式包括時域特征和頻域特征。
1.1.1 時域特征
時域特征是從信號處理過程中直接提取的特征參數(shù),其中最典型的特征便是短時能量。短時能量表征時域中信號幅度的變化情況,有助于音樂片段與靜音片段形成鮮明對比。該特征常用于判斷靜音片段,進而判定音樂的開始和結(jié)束。
若x(n)表示某音樂片段第n個采樣點的信號值,則其短時能量的計算公式為
式中:N為采樣點的總數(shù)。
1.1.2 頻域特征
將音樂信號經(jīng)傅里葉變換至頻域,再對所得的頻率信號進行分析。處理得到的特征便稱為音樂的頻域特征,其頻譜能量為一幀音樂信號的頻域能量,可以表示為
1.1.3 梅爾頻率倒譜系數(shù)
梅爾頻率倒譜系數(shù)(Mel frequency cepstral coefficient,MFCC)[10]是一種在梅爾頻域得到的倒譜特征。研究表明人耳感知的頻率是非線性變化的,而MFCC是將這種非線性的感知轉(zhuǎn)化為線性感知的一種方法。梅爾頻率fmel與線性頻率f的關(guān)系可表示為
本文針對竹笛樂曲中主要的吹奏技巧,由專業(yè)人士錄制了專用數(shù)據(jù)集Breath。此工作填補了竹笛技巧分類數(shù)據(jù)集的空白,下面首先簡要介紹竹笛技巧。
竹笛在中國主要分為南北兩派,兩派演奏風(fēng)格各異,但其基本功如唇、舌、氣、指,音色如厚、松、圓、亮等對樂曲表現(xiàn)有很大的影響。作為一件家喻戶曉的吹管類樂器,無論什么技巧只有與吹奏技巧相配合才能演奏出動聽的音樂。對于如何把多種技巧融合統(tǒng)一,為樂曲更好地服務(wù),是中國演奏家不斷努力的方向。
吹奏技巧[11]主要包含5種:平吹、腹震、雙吐、三吐、花舌。平吹是用平穩(wěn)的氣息帶動竹笛內(nèi)空氣柱振動,形成一種圓潤持續(xù)的音效。腹震是利用腹部收縮控制嘴部出氣量的變化,產(chǎn)生一種類似嘆氣的音色,多用于表現(xiàn)哀愁、悲涼的情緒。雙吐是一種演奏快速音階的吐奏方式,多用來表現(xiàn)一種急切之感。三吐有兩種不同的律動方式,一種是前16后8節(jié)奏,另一種是前8后16節(jié)奏。兩種節(jié)奏并無本質(zhì)差異,在節(jié)奏穩(wěn)定的前提下只表現(xiàn)為相位的區(qū)別,因此只作一種考慮?;ㄉ嗍侵竦阎械囊环N高級技巧,是用舌尖的快速震動而產(chǎn)生的一種細膩聲音,多用來表現(xiàn)粗曠的風(fēng)格。Breath數(shù)據(jù)集除了包含上述吹奏技巧外,還加入了一種類似音響效果的指間技巧顫音。
在Breath數(shù)據(jù)集中,訓(xùn)練集盡量包含典型的竹笛音域,用來去除不同竹笛音色對分類效果的影響。該訓(xùn)練集以C調(diào)、F調(diào)竹笛和CM-63專業(yè)拾音麥錄制。每段采樣率為44 100 Hz,位深為32,技巧每段為1 s。所有音頻經(jīng)專業(yè)音頻軟件處理,其響度差值在±1 dB范圍內(nèi)。C調(diào)竹笛為曲笛,F(xiàn)調(diào)為梆笛,兩者分別體現(xiàn)了南北竹笛的不同音色,增加了數(shù)據(jù)集的多樣性,同時也有助于提高分類算法對不同竹笛音色的魯棒性。測試集是E調(diào)中性笛錄制的,既能保證測試數(shù)據(jù)的獨立性,又可檢測分類網(wǎng)絡(luò)對于真實竹笛的分類效果。數(shù)據(jù)集中每種技巧的訓(xùn)練數(shù)據(jù)量有50首,測試數(shù)據(jù)量有25首。經(jīng)專業(yè)演奏家主觀判斷,該數(shù)據(jù)集的每種技巧音頻均可以代表上述技巧中的典型音樂感覺。
Breath數(shù)據(jù)集具有以下特點。
1)音色統(tǒng)一性
單一類型樂器錄制,音色特點明顯。
2)音調(diào)單一性
吹奏技巧每段只采用單音,消除非典型技巧的影響。
3)獨立性
測試集與訓(xùn)練集相互獨立。
為了更直觀地看到各種技巧的區(qū)別,圖1給出了6種技巧頻譜圖,從左至右從上至下依次為平吹、腹震音、雙吐、三吐、花舌、顫音。
圖1 Breath數(shù)據(jù)集內(nèi)技巧的頻譜Figure 1 Spectrogram of tricks in Breath dataset
由圖1的頻譜圖可見:平吹技巧顯示出平穩(wěn)波形,腹震技巧表現(xiàn)出在不同頻率上強度的波動程度,雙吐與三吐技巧均呈現(xiàn)出周期特異性圖譜,而花舌相對于其他長時波型表現(xiàn)出更為寬泛的頻率覆蓋且強度更大,顫音在主體音上表現(xiàn)為相鄰頻率間快速變換,且具有周期性。
用于音頻識別的傳統(tǒng)機器學(xué)習(xí)方法有決策樹、支持向量機、邏輯回歸等。以上方法雖然能完成大部分分類任務(wù),但特征提取困難,因此分類性能不佳。近年來,基于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)方法為音頻識別任務(wù)提供了新的解決方案,其中處理音頻的常用卷積形式包括一維卷積[12]和二維卷積[13-15]。一維卷積常用于序列數(shù)據(jù)的特征提取,數(shù)據(jù)常以一維音頻時域信號數(shù)據(jù)作為輸入,后文中將稱之為原始音頻數(shù)據(jù);二維卷積常用于二維數(shù)據(jù)的特征提取,在音頻數(shù)據(jù)處理過程中常對原始音頻數(shù)據(jù)進行轉(zhuǎn)頻譜圖操作。
本文設(shè)計并構(gòu)建了兩個基于卷積的深度學(xué)習(xí)模型Breath1d和Breath2d,以多層感知機(multilayer perceptron,MLP)作為性能評價基準(zhǔn)方法,應(yīng)用長短期記憶(long short-term memory,LSTM)網(wǎng)絡(luò)[16]進行分類任務(wù)的輔助測試。圖2給出了深度學(xué)習(xí)模型對Breath數(shù)據(jù)集進行訓(xùn)練以及測試的流程。
圖2 深度學(xué)習(xí)模型的訓(xùn)練和測試流程Figure 2 Training and testing process of deep learning model
圖3中的(a)給出了一個簡單的MLP形式,將預(yù)處理完的數(shù)據(jù)送入網(wǎng)絡(luò),經(jīng)過隱含層的訓(xùn)練,在輸出層通過Softmax函數(shù)輸出一個預(yù)測值。此外,采用了LSTM模型將Breath數(shù)據(jù)集分類。LSTM單元結(jié)構(gòu)如圖3中的(b)所示。本文使用了具有50個隱向量的Cell模塊作為LSTM層,其后接Dense層作為分類輸出。根據(jù)Breath數(shù)據(jù)集的輸入特性,得到LSTM網(wǎng)絡(luò)輸入特征長度為513,特征步長為169。
圖3 一般深度學(xué)習(xí)模型結(jié)構(gòu)Figure 3 Structure of general deep learning model
本文設(shè)計的一維卷積神經(jīng)網(wǎng)絡(luò)Breath1d結(jié)構(gòu)如圖4所示。
在圖4中,隱含層共有3個相似的塊和1個全連接層。每個塊包括卷積層、池化層、Dropout層。Breath1d模型參數(shù)構(gòu)建如表1所示。
表1 Breath1d各層級網(wǎng)絡(luò)參數(shù)Table 1 Breath1d network parameters at each level
圖4 Breath1d的網(wǎng)絡(luò)結(jié)構(gòu)Figure 4 Network structure of Breath1d
由于1維卷積方法是對原始音頻文件進行處理,因此1維卷積在第1塊內(nèi)設(shè)置了兩個長度為9、每層有16個卷積核的卷積層,便于通過較大感受野獲取音頻特征;第2塊內(nèi)卷積核的數(shù)目增加至64,第3塊內(nèi)卷積核的數(shù)目增加至256,卷積核長度減小至3以提取高維特征;每一層激活函數(shù)均選用Relu,且每一塊中加入Dropout方法以避免過擬合。
本文設(shè)計的二維卷積神經(jīng)網(wǎng)絡(luò)Breath2d如圖5所示。
圖5 Breath2d網(wǎng)絡(luò)結(jié)構(gòu)Figure 5 Network structure of Breath2d
在圖5中,輸入層輸入經(jīng)過變換的二維頻譜數(shù)據(jù)。數(shù)據(jù)經(jīng)過每一層卷積后采用批歸一化處理以便更快地收斂。最后一層使用全連接層,通過Softmax函數(shù)輸出一個概率值或以one-hot形式返回一個列表。Breath2d卷積層參數(shù)構(gòu)建如表2所示。
表2 Breath2d各層級網(wǎng)絡(luò)參數(shù)Table 2 Breath2d network parameters at each level
二維卷積需要輸入的數(shù)據(jù)是經(jīng)短時傅里葉變換(short-time Fourier transform,STFT)得到的頻域特征,其中STFT的窗設(shè)置為1 024,滑動步長為256。這樣每一條音頻數(shù)據(jù)維度變?yōu)椋?13,169),其中第0維為頻率值,第1維對應(yīng)每段音頻的1 s時間長度。根據(jù)輸入維度將Breath2d模型結(jié)構(gòu)前兩層卷積核的維度設(shè)置為(10,4),以盡量提高感覺野獲取數(shù)據(jù)特征的能力;每一次卷積后加入了最大池化層以減少后續(xù)計算參數(shù)量。
本文針對竹笛數(shù)據(jù)集進行實驗劃分以求找出最佳的分類方法,劃分實驗種類如下:
實驗1分別將腹震、顫音、花舌氣息技巧與平吹進行二分類,探求相似技巧的分類性能。
實驗2對三吐與雙吐進行二分類,探求對短間隔周期聲音進行神經(jīng)網(wǎng)絡(luò)訓(xùn)練是否有效。
實驗3區(qū)分平吹、腹震、顫音、花舌、雙吐、三吐6種技巧,通過對比選出最佳分類模型。實驗1與2是二分類任務(wù),實驗3是六分類任務(wù)。神經(jīng)網(wǎng)絡(luò)代碼應(yīng)用Keras框架,后端實現(xiàn)為Tensorf low。神經(jīng)網(wǎng)絡(luò)參數(shù)根據(jù)表1和2中的參數(shù)構(gòu)建,其中二維卷積網(wǎng)絡(luò)的前兩層以同維度填充;除了全連接層采用Softmax激活函數(shù)外,其余卷積網(wǎng)絡(luò)的激活層均采用Relu函數(shù)激活。
實驗1采用MLP作為基準(zhǔn)方法,應(yīng)用Breath1d模型、Breath2d模型、LSTM模型對Breath訓(xùn)練集數(shù)據(jù)進行訓(xùn)練。實驗1的分類結(jié)果如表3所示。
表3 實驗1的分類準(zhǔn)確率Table 3 Classif ication accuracy of experiment 1
實驗1的對比結(jié)果如圖6所示。
對比圖6可以發(fā)現(xiàn),使用Breath1d網(wǎng)絡(luò)模型處理的竹笛音頻,在測試集上的分類準(zhǔn)確率明顯高于基準(zhǔn)方法,但低于Breath2d和LSTM模型;Breath2d模型的輸入是否作MFCC處理對腹震與平吹的分類結(jié)果影響不大,而對于顫音與平吹、花舌與平吹的分類有較大的提升作用。這幾種技巧在聽感上確實表現(xiàn)為腹震與平吹不易區(qū)分。綜合來看,Breath1d模型不能充分提取到本數(shù)據(jù)集所需特征,LSTM對3類區(qū)分性能基本持平,而Breath2d+MFCC模型在測試集上的準(zhǔn)確率最高,說明MFCC特征對本音頻分類任務(wù)行之有效。
圖6 實驗1的結(jié)果曲線圖Figure 6 Result curve of experiment 1
實驗2是對短間隔周期性音頻進行探究的實驗。三吐和雙吐技巧屬于短間隔周期性音頻,這類音頻的特征對時長間隔敏感,而卷積神經(jīng)網(wǎng)絡(luò)所能提取的特征往往對音頻時長依賴關(guān)系較小,故對三吐與雙吐的分類較為困難。經(jīng)實驗測試得出卷積神經(jīng)網(wǎng)絡(luò)的分類效果不佳,而由LSTM網(wǎng)絡(luò)模型訓(xùn)練的三吐與雙吐的分類效果較好,10次模型測試準(zhǔn)確率的平均得分約為90%。可見吐音分類任務(wù)可應(yīng)用LSTM網(wǎng)絡(luò)模型妥善解決。
本文根據(jù)實驗1與2的經(jīng)驗,在實驗3中繼續(xù)探究神經(jīng)網(wǎng)絡(luò)模型對Breath全集的分類能力。實驗3除了使用實驗1中的模型外,還引入了音高改變和時間拉伸的數(shù)據(jù)增強方法[17],并且將Breath2d與Breath1d融合,即把Breath2d模型的輸出進行Flatten操作后作為Breath1d模型的輸入組成新的網(wǎng)絡(luò)。這些操作有效地提高了模型的預(yù)測能力。
由于實驗3是對數(shù)據(jù)集內(nèi)全部技巧進行的多分類任務(wù),修改任務(wù)為六分類。在實驗過程中發(fā)現(xiàn):雖然神經(jīng)網(wǎng)絡(luò)模型在訓(xùn)練階段得到了很好的收斂,但在測試集上表現(xiàn)不佳,說明在已有數(shù)據(jù)量上直接應(yīng)用數(shù)據(jù)集內(nèi)數(shù)據(jù)進行訓(xùn)練并不能得到理想的分類效果。通過分析得出原因如下:1)數(shù)據(jù)集內(nèi)訓(xùn)練數(shù)據(jù)量相對較少。2)錄制中有無法避免的噪聲影響,產(chǎn)生了不是技巧音頻特征的偽影,干擾了模型對于特征的提取。3)測試集樂器音色與訓(xùn)練集音色有差異,這取決于樂器的品質(zhì)。針對這種情況,本文基于音頻數(shù)據(jù)增強方法對所用數(shù)據(jù)進行處理,通過隨機縮放訓(xùn)練數(shù)據(jù)的頻譜圖間接地增加訓(xùn)練數(shù)據(jù)集的多樣性。
實驗3的結(jié)果如圖7所示。
圖7 實驗3的結(jié)果對比Figure 7 Comparison of experiment 3 results
由圖7的實驗結(jié)果可以看出:如果不引入數(shù)據(jù)增強方法直接對模型訓(xùn)練,那么模型對技巧進行正確分類的能力較低,一般在0.800以下。雖然使用MFCC特征提取的方法可以將分類準(zhǔn)確率提高到0.807,但提升效果并不明顯。針對數(shù)據(jù)量不足的問題,本文在表現(xiàn)最好的Breath2d模型中加入了隨機時間拉伸和音高調(diào)整的數(shù)據(jù)增強方法。由于數(shù)據(jù)多樣性的增加,模型在測試集上的表現(xiàn)也有了提升。對于原測試集進行預(yù)測,平均準(zhǔn)確率提高了0.026。為了探究神經(jīng)網(wǎng)絡(luò)的最佳能力,本文將Breath2d與Breath1d模型相連,進一步提升了分類的性能,且在Breath2d與Breath1d融合模型中加入數(shù)據(jù)增強方法后,比原融合模型又提高了0.040,分類準(zhǔn)確率達到了最高的0.913。
同時使用數(shù)據(jù)增強方法和Breath2d與Breath1d模型融合的方法可以有效提升分類預(yù)測準(zhǔn)確率。分析原因如下:引入數(shù)據(jù)增強方法提高了模型分類的準(zhǔn)確率,是由于Breath數(shù)據(jù)集的特性所致。雖然Breath數(shù)據(jù)集的訓(xùn)練集與測試集分別錄制,但主要特征還是由音頻的音高分布決定。使用音高改變與時間拉伸的數(shù)據(jù)增強方法,其本質(zhì)就是改變了竹笛技巧的音高。增加的部分?jǐn)?shù)據(jù)實際上與測試集中數(shù)據(jù)有相似的特征,所以在使用測試集進行預(yù)測時,模型分類的準(zhǔn)確率就相應(yīng)地提高了。融合Breath1d與Breath2d模型實際上是增加模型的復(fù)雜度,即在相似特征預(yù)測上增加了數(shù)據(jù)的擬合程度,也使測試集的預(yù)測準(zhǔn)確率得到了相應(yīng)的提高。實驗3也說明了本數(shù)據(jù)集對于竹笛吹奏技巧分類任務(wù)是完備的,只要簡單的處理就可以基本忽略不同竹笛音色對竹笛技巧分類的影響,從而準(zhǔn)確地完成竹笛技巧分類任務(wù)。
本文構(gòu)建了專用于竹笛技巧的數(shù)據(jù)集,提出了兩種神經(jīng)網(wǎng)絡(luò)模型。通過與一般網(wǎng)絡(luò)模型的對比實驗發(fā)現(xiàn):在進行普通二分類任務(wù)時Breath2d+MFCC方法表現(xiàn)最好;對于短周期間隔音頻的分類,LSTM網(wǎng)絡(luò)則能更好地提取特征;針對全集分類準(zhǔn)確率不高的問題,引入數(shù)據(jù)增強以及模型融合的方法可以將分類準(zhǔn)確率提高到0.913,同時分析提高準(zhǔn)確率的方法也驗證了Breath數(shù)據(jù)集的完備性。本文對竹笛技巧自動識別進行了探索,但由于對藝術(shù)形式的認(rèn)知原因,真正做到對音樂的自動賞析還存在較大的距離。在以后的工作中可以將技巧分類擴充至其他樂器領(lǐng)域,也可以與檢測算法相結(jié)合完成對完整樂曲的全局技巧分析,還可以采用音源分離算法從現(xiàn)有音樂中提取竹笛純音來擴充現(xiàn)有數(shù)據(jù)集,形成更具多樣性的訓(xùn)練數(shù)據(jù)。