摘? 要:針對(duì)傳統(tǒng)音樂流派分類模型性能不穩(wěn)定、音樂信號(hào)特征單一導(dǎo)致分類準(zhǔn)確率低的問題,提出了改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network)音樂流派分類模型,通過Python的Librosa庫提取了音樂的均方根能量、過零率、頻譜質(zhì)心、頻譜對(duì)比度等多種特征,并使用PCA(Principal Component Analysis)和LDA(Linear Discriminant Analysis)數(shù)據(jù)降維方法對(duì)特征數(shù)據(jù)進(jìn)行可視化分析,證明了特征選取的合理性。最后對(duì)四類音樂流派進(jìn)行仿真實(shí)驗(yàn),并與傳統(tǒng)的分類模型對(duì)比。實(shí)驗(yàn)證明,提出的模型10 折交叉驗(yàn)證的準(zhǔn)確率為93.12%,優(yōu)于KNN(K-Nearest Neighbor)、SVM(Support Vector Machine)等傳統(tǒng)的分類模型。
關(guān)鍵詞:機(jī)器學(xué)習(xí);特征提取;支持向量機(jī);梅爾頻率倒譜系數(shù)
中圖分類號(hào):TP39? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):2096-1472(2021)-09-17-04
Abstract: Classification models of traditional music genre have problems of unstable performance and low classification accuracy caused by single characteristics of music signals. In view of these problems, this paper proposes an improved BP (Back Propagation) Neural Network music genre classification model. Various features such as root mean square energy, zero crossing rate, spectral centroid, and spectral contrast of music are extracted through the Librosa library of Python. Then, visual analysis of the feature data using PCA (Principal Component Analysis) and LDA (Linear Discriminant Analysis) data dimensionality reduction methods has proved the rationality of feature selection. Finally, simulation experiments are conducted on four types of music genres, and compared with the traditional classification model. The experiment proves that the accuracy of the 10-fold cross-validation of the model proposed in this paper is 93.12%, which is better than traditional classification models such as KNN (K-Nearest Neighbor) and SVM (Support Vector Machine).
Keywords: machine learning; feature extraction; SVM; MFCC
1? ?引言(Introduction)
隨著多媒體技術(shù)的發(fā)展,音樂以各種方式出現(xiàn)在人們身邊,面對(duì)網(wǎng)絡(luò)上海量的音樂,不同的人喜好差異較大,為方便檢索,對(duì)音樂流派進(jìn)行分類尤為重要。莊嚴(yán)[1]等人提出了一種基于譜圖分離的音樂流派分類算法,通過對(duì)音樂信號(hào)的譜圖濾波,分離出音樂的打擊與和聲部分,對(duì)特征進(jìn)行優(yōu)化,通過SVM分類器對(duì)8 種音樂流派進(jìn)行仿真實(shí)驗(yàn),最終達(dá)到73%的準(zhǔn)確率。陸歡[2]則采用梅爾頻率倒譜系數(shù)(Mel-Frequency Cepstral Coefficients, MFCC)特征矩陣作為音樂信號(hào)的特征,訓(xùn)練了卷積神經(jīng)網(wǎng)絡(luò)作為分類器,在4 種音樂流派上得到88%的結(jié)果。本文借助于Python的Librosa庫,研究了音樂信號(hào)的某些時(shí)域特征和頻域特征,選取了過零率、均方根能量、頻譜質(zhì)心、滾降截止頻率、頻譜對(duì)比度、梅爾頻率倒譜系數(shù)作為音樂數(shù)據(jù)集的特征,有效解決了單一特征造成的分類準(zhǔn)確率低的問題。最后借助機(jī)器學(xué)習(xí)的工具,建立了一個(gè)4層的BP神經(jīng)網(wǎng)絡(luò)模型,實(shí)現(xiàn)了有效分類。音樂流派分類主要流程如圖1所示。
2? 數(shù)據(jù)處理和特征提?。―ata processing and feature extraction)
2.1? ?數(shù)據(jù)集
本文中使用的數(shù)據(jù)集是公開的GTZAN數(shù)據(jù)集[3],該數(shù)據(jù)集包含10 種音樂流派,每種流派各有100 段時(shí)長為30 秒,采樣頻率為22.05 kHz的16 bit的數(shù)字信號(hào)。本文選取了布魯斯(bules)、古典(classical)、鄉(xiāng)村(country)、金屬(metal)共4 種音樂流派,共400 個(gè)樣本。
2.2? ?特征提取
語音信號(hào)具有短時(shí)平穩(wěn)性,即在一個(gè)短時(shí)間范圍(10 ms—30 ms)內(nèi),其特性基本保持不變,因此,對(duì)于語音信號(hào)的分析都是建立在“短時(shí)”的基礎(chǔ)上[4]。在提取語音信號(hào)的特征時(shí),首先對(duì)信號(hào)進(jìn)行分幀加窗處理,特征提取函數(shù)的返回值是每一幀上的結(jié)果,選取每個(gè)特征在所有幀上的平均值和方差作為該文件的特征,這樣,對(duì)于一個(gè)音頻文件,提取出來的特征向量的維度是46。特征提取在音樂流派分類中占有非常重要的地位,針對(duì)單一特征導(dǎo)致分類準(zhǔn)確率低的問題,本文基于Python中的Librosa庫提取了過零率、均方根能量等多種特征[5],特征名稱及其維度如表1所示。
(1)過零率是信號(hào)相鄰兩個(gè)采樣點(diǎn)取值為異號(hào)的次數(shù),它可以對(duì)敲打的聲音進(jìn)行區(qū)分[6]。
(2)均方根能量是每一幀內(nèi)采樣點(diǎn)能量的標(biāo)準(zhǔn)差,可以用來區(qū)分有聲和無聲,輕音和濁音[1]。
(3)頻譜質(zhì)心是用來表征頻譜的度量,表示“質(zhì)心”的位置,與聲音的亮度有關(guān),值越小,說明越多的能量集中在了低頻的范圍內(nèi)。圖2(a)和圖2(b)分別展示了blues和metal兩種不同流派的音樂頻譜質(zhì)心的位置,可以看到,相比于metal,blues的頻譜質(zhì)心“更低”,且能量主要在低頻范圍。
(4)滾降截止頻率是譜形狀的重要測(cè)度,85%的幅度分布低于該頻率[6],表示能量大幅上升(或大幅下降)、失去“阻止”(或失去“通過”)信號(hào)效果的位置。
(5)頻譜對(duì)比度是信號(hào)的幅度譜在每個(gè)子波段上峰值與峰谷平均能量的差,高對(duì)比度值通常對(duì)應(yīng)于清晰的窄帶信號(hào),而低對(duì)比度值對(duì)應(yīng)于寬帶噪聲。
(6)梅爾頻率倒譜系數(shù)是語音信號(hào)處理中被廣泛使用的
特征,由于人耳聽到聲音的高低與聲音的頻率之間的關(guān)系并不是線性關(guān)系,頻率尺度更符合人耳的聽覺特性[4],頻率與實(shí)際頻率之間的關(guān)系可以表示為:它的計(jì)算方式在文獻(xiàn)[4]中都有詳細(xì)描述,這里不再贅述。
2.3? ?特征數(shù)據(jù)的降維分析
數(shù)據(jù)降維方法有多種,線性降維算法因其實(shí)現(xiàn)簡(jiǎn)單快速的特點(diǎn)應(yīng)用廣泛,主成分分析(PCA)和線性判別分析(LDA)是線性降維中兩種經(jīng)典的算法。實(shí)驗(yàn)中,分別使用PCA和LDA對(duì)提取的46維特征數(shù)據(jù)進(jìn)行降維分析,并將其可視化,圖3為PCA降維的結(jié)果,圖4為LDA降維的結(jié)果。
從圖3中可以看到,通過PCA算法將46 維特征降為2 維后,classical和metal可以被很好的分開。與PCA不同的是,LDA在計(jì)算類內(nèi)散度和類間散度時(shí)應(yīng)用了數(shù)據(jù)的標(biāo)簽[7],因此LDA是一種有監(jiān)督的降維方法。從圖4中可以看到,經(jīng)過LDA降維,特征數(shù)據(jù)被分成了較為明顯的四類,其中,classical、country和metal分類效果較好,從而反映出本文特征選取的合理性。
3? 基于正則化的BP神經(jīng)網(wǎng)絡(luò)(BP neural network based on? regularization)
3.1? ?神經(jīng)網(wǎng)絡(luò)基礎(chǔ)
BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)是1986 年由Rumelhart和McClelland為首的科學(xué)家提出的,它是基礎(chǔ)的也是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)之一。圖5展示了具有兩個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖。
信號(hào)通過輸入層、隱藏層、輸出層前向傳播得到預(yù)測(cè)值,利用損失函數(shù)衡量預(yù)測(cè)值與真實(shí)值之間的誤差,從最后一層反向傳播誤差[8],通過適當(dāng)?shù)膬?yōu)化器,比如梯度下降,隨機(jī)梯度下降等更新權(quán)重參數(shù)和偏置參參數(shù),最小化誤差,從而使預(yù)測(cè)值與真實(shí)值更接近。神經(jīng)網(wǎng)絡(luò)中前向傳播和反向傳播的偽代碼如表2和表3所示。
其中,是由樣本數(shù)據(jù)為行向量組成的輸入矩陣,代表神經(jīng)網(wǎng)絡(luò)的層數(shù),表示第層神經(jīng)網(wǎng)絡(luò)的輸出,是激活函數(shù),是層到層的權(quán)重矩陣,,表示樣本的真實(shí)標(biāo)簽組成的向量,表示梯度下降的學(xué)習(xí)率,表示哈達(dá)瑪積(Hadamard Product),即對(duì)于向量,
3.2? ?網(wǎng)絡(luò)結(jié)構(gòu)
本文設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)包含3 個(gè)隱藏層,神經(jīng)元的個(gè)數(shù)分別為128、64、32。ReLU激活函數(shù)又稱為修正線性單元,表達(dá)式為,由于其具有單側(cè)抑制,稀疏激活等優(yōu)點(diǎn),故選其作為隱藏層的激活函數(shù)。選擇多分類對(duì)數(shù)損失作為損失函數(shù),如果目標(biāo)值為時(shí)預(yù)測(cè)結(jié)果為,分類的交叉熵為:。優(yōu)化器則選擇隨機(jī)梯度下降,這是因?yàn)橄啾扔谄胀ǖ奶荻认陆邓惴?,隨機(jī)梯度下降的收斂速度更快。本文研究的是四分類問題,所以輸出層的神經(jīng)元個(gè)數(shù)為4,輸出層的激活函數(shù)為Softmax函數(shù)。由于本文的數(shù)據(jù)量較少,并且樣本的特征差異不大,為了防止過擬合,在設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)時(shí)加入正則項(xiàng),因此優(yōu)化模型可以表示為:
其中,是損失函數(shù),是權(quán)重矩陣的列向量,為正則項(xiàng),為正則化系數(shù)。經(jīng)過多次調(diào)試,最終確定正則化系數(shù)為0.004。圖6展示了增加正則項(xiàng)與未增加正則項(xiàng)時(shí)模型在訓(xùn)練集和測(cè)試集上準(zhǔn)確率和損失值隨著每期訓(xùn)練的變化曲線(圖6(a)和圖6(c)為增加正則項(xiàng)后曲線圖,圖6(b)和圖6(d)為未增加正則項(xiàng)曲線圖)。從圖6(a)和圖6(b)中可以看出,模型在訓(xùn)練集上表現(xiàn)較好,準(zhǔn)確率達(dá)到1,而增加正則項(xiàng)后,無論是測(cè)試集上的準(zhǔn)確率還是損失值變化曲線都更貼近訓(xùn)練集,且經(jīng)過300 期訓(xùn)練后準(zhǔn)確率略微有些提高。
4? 實(shí)驗(yàn)結(jié)果與分析(Experimental results and analysis)
本文按照4∶1的比例劃分訓(xùn)練集和測(cè)試集,從總樣本中選取80 個(gè)樣本組成測(cè)試集,其中每種音樂流派各20 個(gè)。剩余320 個(gè)樣本作為訓(xùn)練集,在訓(xùn)練集上進(jìn)行10 折交叉驗(yàn)證,即將訓(xùn)練集分成10 個(gè)非重疊的部分,每次選其中一部分作為驗(yàn)證集,其余9 部分作為訓(xùn)練集。共進(jìn)行10 次訓(xùn)練,選取模型在驗(yàn)證集上10 次準(zhǔn)確率的平均值為模型最終得分。具體分類結(jié)果如表4所示,可以看到,除決策樹外,其他模型的準(zhǔn)確率均在80%左右,本文建立的神經(jīng)網(wǎng)絡(luò)模型(NN)得到的準(zhǔn)確率最高,達(dá)到93.12%。
接下來分析模型對(duì)每種音樂流派具體的分類結(jié)果,我們繪制出模型在測(cè)試集上的混淆矩陣如圖7所示,其中0代表blues,1代表classical,2代表country,3代表metal。橫坐標(biāo)軸表示的是預(yù)測(cè)類別的標(biāo)簽,縱坐標(biāo)軸代表的是真實(shí)類別的標(biāo)簽。該模型對(duì)blues、classical和metal三種流派能做到精準(zhǔn)分類,對(duì)于country的區(qū)分效果相對(duì)較差,誤將3 個(gè)country類別的文件識(shí)別成了blues,我們猜想原因與所提取的特征不能有效將這兩種音樂類別區(qū)分有關(guān),圖3和圖4可視化的結(jié)果也驗(yàn)證了這一點(diǎn)。
5? ?結(jié)論(Conclusion)
音樂流派分類作為音樂信息檢索領(lǐng)域比較熱門的方向,涉及信號(hào)處理、模式識(shí)別、計(jì)算機(jī)、數(shù)學(xué)等多門學(xué)科,引起眾多學(xué)者的研究,無論是在特征提取還是分類器的選擇上都提出了許多新方法。本文選取的音樂特征雖能夠?qū)Σ煌髋傻囊魳愤M(jìn)行區(qū)分,但也存在一定的不足,需要尋求更多特征以保證分類的準(zhǔn)確率。其次,本文建立的神經(jīng)網(wǎng)絡(luò)分類模型在四分類上有不錯(cuò)的表現(xiàn),但是當(dāng)音樂種類增多時(shí),分類效果會(huì)有一定程度的下降,需要在模型上做進(jìn)一步的優(yōu)化。
參考文獻(xiàn)(References)
[1] 莊嚴(yán),于鳳芹.基于節(jié)奏和韻律調(diào)制譜特征的音樂流派分類[J].計(jì)算機(jī)工程,2015,41(1):186-189.
[2] 陸歡.基于卷積神經(jīng)網(wǎng)絡(luò)的音樂流派分類[J].電子測(cè)量技術(shù),2019,42(21):149-152.
[3] TZANETAKIS G, COOK P. Musical genre classification of audio signals[J]. IEEE Transactions on Speech and Audio Processing, 2002, 10(5):293-302.
[4] 趙力.語音信號(hào)處理[M].北京:機(jī)械工業(yè)出版社,2016:6-84.
[5] 張俊生,郭彩萍,樓國紅,等.Python在數(shù)字信號(hào)處理中的應(yīng)用[J].電氣電子教學(xué)學(xué)報(bào),2015,37(04):115-117.
[6] 黃琦星.基于卷積神經(jīng)網(wǎng)絡(luò)的音樂流派分類模型研究[D].長春:吉林大學(xué),2019.
[7] 趙玉娟.數(shù)據(jù)降維的常用方法分析[J].科技創(chuàng)新導(dǎo)報(bào),2019,32(16):118-119.
[8] NIELSEN M. Neural networks and deep learning[M]. San Francisco: Determination Press,2015:34-109.
作者簡(jiǎn)介:
樊思含(1995-),女,碩士生.研究領(lǐng)域:機(jī)器學(xué)習(xí),計(jì)算數(shù)學(xué).