劉玥彤,吳 迪,滕 華
(1.哈爾濱音樂學(xué)院 管弦系,黑龍江 哈爾濱 150028;2.哈爾濱工程大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,黑龍江 哈爾濱,150001;3.齊齊哈爾大學(xué) 計算機與控制工程學(xué)院 黑龍江 齊齊哈爾,161006;4.西華師范大學(xué) 計算機學(xué)院,四川 南充,637009)
深度學(xué)習(xí)技術(shù)的不斷深化給音樂藝術(shù)等領(lǐng)域發(fā)展帶來了新的機遇,將深度學(xué)習(xí)技術(shù)應(yīng)用于音樂創(chuàng)作和鑒賞成為研究熱點,特別是樂音的信號檢測、特征提取和樂音識別等環(huán)節(jié)均成為深度學(xué)習(xí)技術(shù)的應(yīng)用對象。樂音識別技術(shù)作為語音識別技術(shù)的一種,其研究方式和語音識別的路徑類似,但由于樂音因為樂器差異,音符高中低音混合等特點,樂音識別又呈現(xiàn)出不同于普通語音識別的新特點。樂音特征提取與樂音主頻識別研究成為解決樂音識別的關(guān)鍵問題[1]。前者為樂音識別算法提供有效準確的樣本特征,而后者是樂音識別中的關(guān)鍵環(huán)節(jié),當(dāng)前的樂音識別研究大多集中在這兩個方面,本文重點研究解決樂音主頻識別的問題。
近年來,關(guān)于樂音主頻識別的研究較少,劉瑩等[2]從音頻信號分析的角度對鋼琴樂音進行相關(guān)性比較,根據(jù)相關(guān)函數(shù)求解來獲得鋼琴樂音的識別結(jié)果。趙凌覽等[3]也是從音頻信號分析角度對音頻時域信號進行頻域變換,并結(jié)合音頻標(biāo)準頻域來進行匹配操作,從而獲得音頻識別結(jié)果。這兩種方法在處理樂音識別時更傾向于音頻信號的傳統(tǒng)處理方法,將樂音信號當(dāng)做普通音頻信號處理方式來對待,這造成了兩者的樂音識別準確率還有較大的提升空間。
隨著計算性能的大幅提升,深度學(xué)習(xí)技術(shù)出現(xiàn)了爆發(fā)式的發(fā)展,并在各種領(lǐng)域得到了廣泛的應(yīng)用。例如,采用深度學(xué)習(xí)技術(shù)的語音翻譯系統(tǒng)的準確率獲得了顯著的提高。目前絕對大多數(shù)深度學(xué)習(xí)技術(shù)都是基于卷積神經(jīng)網(wǎng)絡(luò)架構(gòu),但是卷積神經(jīng)網(wǎng)絡(luò)也存在許多缺點,例如無法理解部分與整體之間的關(guān)系,可能對樂音主頻識別性能產(chǎn)生不利影響。Hinton提出的神經(jīng)網(wǎng)絡(luò)能夠識別局部的“膠囊”,而不是使用總結(jié)全局特征的單標(biāo)量輸出“神經(jīng)元”,因此膠囊神經(jīng)網(wǎng)絡(luò)對微小的變化更為敏感。因此,本文嘗試采用深度網(wǎng)絡(luò)學(xué)習(xí)中最新的膠囊神經(jīng)網(wǎng)絡(luò)來對樂音信號特征進行訓(xùn)練分類,從而完成樂音主頻信號識別。此外,為了提高不同樂器樂音信號的識別準確度,以便滿足實際應(yīng)用要求,本文對傳統(tǒng)CapsNet的相似度計算方法進行了改進,從而有效模仿高中低音之間的相似性。
樂音主頻識別作為樂音識別的關(guān)鍵步驟,其識別的準確度對整個樂音的識別有關(guān)鍵影響。
圖1 樂音主頻識別結(jié)構(gòu)
在樂音信號的提取過程中,需要對音符進行端點檢測并有效分割,從而完成樂音信號的預(yù)處理,之后對信號進行數(shù)字化處理,并進行特征提取,為樂音識別模型訓(xùn)練提供可用的特征集。當(dāng)前主要采用的特征提取方法主要有線性預(yù)測倒譜參數(shù)(Linear predictive cepstral coefficient,LPCC)法,通過確定LPCC,從而獲得樂音的主頻特征。
設(shè)LPCC的經(jīng)過n個輸入采樣后獲得的預(yù)測輸出為s(n),則[4]
s(n)≈a1s(n-1)+a2s(n-2)+…+aps(n-p)
(1)
式中:p表示s(n)之前的樣本數(shù),a1、a2和ap分表表示LPCC系數(shù)。
s(n)疊加沖擊u(n)響應(yīng)后變?yōu)?/p>
(2)
式中:G表示增益系數(shù)。
對式(2)進行頻域變換
(3)
那么傳遞函數(shù)
(4)
(5)
根據(jù)實際值和預(yù)測建立誤差函數(shù)e(n)
(6)
那么傳遞函數(shù)
(7)
對誤差函數(shù)e(n)進行系數(shù)偏導(dǎo)運算,獲得LPCC系數(shù)值,從而得到樂音主頻特征參數(shù)。
根據(jù)樂音主頻參數(shù)組建特征向量,輸入至樂音主頻識別算法進行訓(xùn)練,最后得到樂音主頻識別模型,根據(jù)識別模型則可獲得識別結(jié)果。
膠囊神經(jīng)網(wǎng)絡(luò)(CapsNet)相對于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)來說,其采用膠囊單元替換了傳統(tǒng)的神經(jīng)元單元,膠囊之間的連接權(quán)重等參數(shù)采用動態(tài)路由算法來進行更新迭代。
令Ui表示第i膠囊層輸出向量,經(jīng)過第j膠囊層連接預(yù)測得到[5]
(8)
式中:Wij表示第i和j層之間的連接權(quán)重。
CapsNet的權(quán)重經(jīng)過動態(tài)路由獲得,其主要根據(jù)動態(tài)路由獲得,第i和j層之間的相似度為bij,耦合系數(shù)為cij,那么bij為[6]
(9)
(10)
式中:bik表示第i和k膠囊層之間的相似度,m表示bij的數(shù)量。
對于第j層膠囊來說,其輸入與低層膠囊的輸出有關(guān),那么第j層膠囊的輸入sj計算方法為[7]
(11)
(12)
采用壓縮函數(shù)求解高層膠囊輸出vj,計算方法為[9]
(13)
CapsNet損失函數(shù)為[10,11]
λ(1-Tk)max(0,‖vk‖-m-)2
(14)
式中:k為類別編號,Tk為類別,Num為類別總數(shù),vk為預(yù)測值,m+和m-為類別閾值,λ是系數(shù)常量。
考慮到樂音主頻音符的高中低音之間的相似性,為了提高樂音主頻分類準確性,對傳統(tǒng)CapsNet的相似度計算方法進行了改進
(15)
同時需要修改sj的計算方法
(16)
高層膠囊的輸出和損失函數(shù)計算公式以傳統(tǒng)CapsNet一致。
首先對樂音信號進行噪聲濾除[12,13],然后采用LPCC法獲得樂音主頻系數(shù),構(gòu)建樂音主頻特征向量,接著建立CapsNet樂音主頻識別網(wǎng)絡(luò)模型,通過路由動態(tài)求解獲得CapsNet的網(wǎng)絡(luò)參數(shù),確定穩(wěn)定的CapsNet識別模型,最后采用該模型進行樂音主頻預(yù)測。
圖2 基于改進的CapsNet樂音主頻識別流程
為了驗證改進的CapsNet在樂音主頻識別方面的性能,進行實例仿真。本文選用的數(shù)據(jù)集來自于88鍵鋼琴,分別提取了單音數(shù)據(jù)集和曲譜數(shù)據(jù)集,數(shù)據(jù)集保存格式為.wav。實例仿真的過程分為3個部分:(1)分別對改進的CapsNet在樂音單音頻率和樂音曲譜主頻識別性能方面進行仿真;(2)對比CapsNet和改進的CapsNet識別性能,驗證特征相似度改進對識別性能的影響;(3)分別采用常用樂音識別算法和改進的CapsNet算法進行性能對比。
考慮到不同樂器樂音的主頻頻率分布范圍有差異,為了充分驗證改進的CapsNet算法在樂音識別中的性能,選擇了如表1所示的不同樂器的樂音信號,其采樣頻率均為22.05 kHz。
表1 樂音集
3.1.1 單音識別準確度
采用改進的CapsNet算法對單音集進行性能仿真,對比其頻率值,結(jié)果如表2所示。
表2 單音識別性能
從表2可得,經(jīng)過改進的CapsNet算法識別,單音的實際頻率和識別頻率非常接近,12個音符中,正向偏差為5個,負向偏差為7個,其中在b1音符獲得最大偏差為-0.19,而在#f1音符獲得最小偏差為-0.04,可見改進的CapsNet算法在單音中識別準確率高,基本保持了0.2%以下的識別誤差。
3.1.2 曲譜識別準確率
圖3至圖6展示了改進的CapsNet算法在4類樣本測試集的主頻識別中預(yù)測值與實際值的差距,大部分預(yù)測和實際主頻值都重合了,僅有少數(shù)幾個樣本的主頻出現(xiàn)了較小偏差,這表明改進的CapsNet算法對樂音主頻識別性能適用性強。橫向?qū)Ρ劝l(fā)現(xiàn),在小提琴集的主頻值較高時,其識別性能出現(xiàn)了較多的誤差,這可能是因為小提琴集的主頻上限值高,改進的CapsNet算法在對高頻率識別時有一定的不穩(wěn)定性,而在其他3類樣本集的主頻識別中,識別錯誤的樣本點頻率分布比較均勻,未出現(xiàn)明顯的高頻率識別錯誤的情況。
圖4 小提琴樂音主頻識別準確率
圖5 豎琴樂音主頻識別準確率
圖6 吉他樂音主頻識別準確率
為了驗證采用余弦相似改進的特征相似度對CapsNet算法樂音主頻識別性能的影響,分別采用CapsNet算法和改進的CapsNet算法對曲譜的主頻識別進行性能仿真。
從表3知,在樂音主頻識別準確度方面,CapsNet和改進CapsNet算法均能獲得0.9以上的準確率,其中在數(shù)據(jù)集4.wav中改進的CapsNet獲得了最高識別準確率0.964 1,而CapsNet算法在數(shù)據(jù)集2.wav中獲得了最高識別準確率0.916 8,但是兩者對比,經(jīng)過改進的CapsNet準確率均優(yōu)于改進CapsNet算法,這表明經(jīng)過余弦相似特征度計算后,相比于內(nèi)積計算,其對樂音頻率的類間相似具有更好的區(qū)分作用,所以其能夠在高中低音的樂音中獲得更佳的識別準確率。在RMSE性能方面,改進的CapsNet樂音主頻識別的穩(wěn)定性仍優(yōu)于CapsNet算法,這表明采用余弦相似進行特征差異比對更適合于樂音音符比對,這可能是因為樂音主頻頻率值較接近而不容易分類,而采用余弦相似相比內(nèi)積相似更能夠區(qū)分不同的主頻頻率,且穩(wěn)定性更高。
表3 CapsNet和改進CapsNet的準確率和RMSE
為了進一步驗證改進的CapsNet算法的樂音主頻識別性能,分別采用離散小波變換(Discrete wavelet transform,DWT)算法[14]、小波分析算法[15]、生成對抗網(wǎng)絡(luò)(Generative adversarial networks,GAN)[16]和改進的CapsNet算法對表1的4類不同樂器樣本集進行性能仿真,結(jié)果如圖7所示。
圖7 4種算法的樂音主頻識別準確率
從圖7得,對于4類樂音樣本集,其識別準確率差異較大,尤其是吉他集。對于同類數(shù)據(jù)集,改進的CapsNet算法樂音識別準確率最高,GAN算法次之,DWT算法最差,從識別時間方面來看,GAN算法最差,其他3種算法差距較小。
對上述仿真結(jié)果進行綜合性分析,可以得出:改進的CapsNet在樂音單音頻率和樂音曲譜主頻識別方面均具有較好的適用性。此外,由于特征相似度改進的影響,改進的CapsNet對樂音頻率的類間相似具有更好的區(qū)分作用。因此,對于4類樂器樂音主頻識別,相比現(xiàn)有多種類似算法,改進的CapsNet算法具有更高的識別準確率,最高可達到97%。
采用改進的CapsNet算法用于常用樂器的樂音主頻識別,可以獲得較高的樂音主頻識別準確率。本文主要創(chuàng)新點在于采用余弦相似度對傳統(tǒng)的內(nèi)積計算進行有效改進,優(yōu)化特征差異判斷策略。因此,相比現(xiàn)有多種類似算法,改進的CapsNet算法具有更高的識別準確率,最高可達到97%。后續(xù)研究將從兩個方面著手以進一步優(yōu)化樂音主頻識別性能,一方面是對樂音特征提取進行策略改進,另一方面是對CapsNet算法進一步優(yōu)化改進,以提高CapsNet算法在樂音主頻識別研究中的適用性。