何 麗,袁 斌
(北方工業(yè)大學 計算機學院,北京 100144)
隨著計算機與手機的普及,越來越多的人選擇在互聯(lián)網(wǎng)上聽音樂。面對互聯(lián)網(wǎng)上海量的音樂,快速、精準地檢索出用戶想要的音樂已經(jīng)變得越來越重要。近年來,越來越多的研究者開始進入音樂信息檢索領(lǐng)域。目前音樂信息檢索[1]主要的研究領(lǐng)域包括音樂流派的識別分類、作曲家識別分類、樂器識別分類、歌手識別分類、情感識別分類、人聲分離、音樂自動生成等。音樂分類是音樂信息檢索的一個重要分支,正確的音樂分類對于提高音樂信息檢索效率具有重要的意義。目前,音樂分類主要包括文本分類和基于音樂內(nèi)容[2]的分類。文本分類主要是根據(jù)音樂的元數(shù)據(jù)信息,如音樂名稱,歌手,歌詞,詞曲作者,年代等標注的文本信息進行分類。這種分類方式的優(yōu)點是易于實現(xiàn),操作簡單,檢索速度快,但缺陷也很明顯,首先,這種方式依賴于人工標注[3]的音樂數(shù)據(jù),需要耗費大量的人力,并且人工標注很難避免音樂信息標注錯誤的問題。其次,這種文本方式并沒有涉及到音樂本身的音頻數(shù)據(jù),音頻數(shù)據(jù)包括音樂的很多關(guān)鍵特性,比如音高、音色、旋律等,這些特性用文本是很難標注的;而基于內(nèi)容的分類正是對音樂的原始數(shù)據(jù)進行特征抽取,用抽取的特征數(shù)據(jù)訓練一個分類器,從而達到音樂分類的目的。因此,基于內(nèi)容的音樂分類也成為近年來研究的熱點。
音樂流派識別[4]作為音樂信息檢索領(lǐng)域中非常重要的組成部分,已經(jīng)受到越來越多的關(guān)注??焖贉蚀_的分類將有助于音樂推薦系統(tǒng)進行更精準的推薦。例如,國外的音樂巨頭公司Spotify,有一個全職的“數(shù)據(jù)煉金”團隊,他們致力于將6 000萬首歌曲分為大約1 000個子類型。歌曲流派分類傳統(tǒng)上依賴于特征工程,這些特征工程可以分為三大類,即音色紋理特征、節(jié)奏特征和音高內(nèi)容特征。近年來,在基于音樂內(nèi)容的研究中,使用頻率最高的特征是梅爾頻率倒譜系數(shù)[5](Mel frequency cepstral coefficient,MFCC),研究者們通常使用的是傳統(tǒng)的機器學習方法,通過特征工程將提取的特征數(shù)據(jù)輸入到分類器中(如支持向量機[6](support vector machine)、高斯混合模型[7](Gaussian mixture model)、決策樹[8](decision tree))進行訓練,輸出分類結(jié)果。而關(guān)于深度學習在音樂分類中的進展,F(xiàn)eng Tao[9]將玻爾茲曼機運用到音樂流派分類中,但是只能對四種流派進行分類。Dong M[10]將卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)作為分類器,將原始音樂數(shù)據(jù)降維轉(zhuǎn)換為聲譜圖,利用CNN在圖片處理上的優(yōu)勢,讓CNN自動學習聲譜圖上的特征。這種方法雖然可以進行10種流派的音樂分類,但分類的準確度不高,只有61%左右。鑒于此,文中在前人研究的基礎(chǔ)上,提出將深度學習中的LSTM網(wǎng)絡(luò)應用到音樂流派的識別上。這種方法不僅能進行10種音樂流派的分類,而且在準確率上也有所提高。
由于該數(shù)據(jù)集是原始的音頻數(shù)據(jù),需要手動提取特征,所以在整個音樂流派識別過程中,采用的方法可以分為兩部分。第一部分是特征工程,即特征抽取,從音頻的原始數(shù)據(jù)中抽取出三個最能代表音頻內(nèi)容的特征,它們分別是梅爾倒譜系數(shù)、頻譜質(zhì)心[11]、頻譜對比度[12],然后將抽取的特征數(shù)據(jù)輸入到設(shè)計的LSTM網(wǎng)絡(luò)模型中進行訓練學習,最后輸出分類結(jié)果。在整個過程中,首先會將梅爾倒譜系數(shù)、頻譜對比度分別與頻譜質(zhì)心進行融合一起輸入到LSTM中,觀測實驗結(jié)果,然后再將三個特征融合到一起,作為輸入數(shù)據(jù)輸入到LSTM網(wǎng)絡(luò)中,將得到的結(jié)果與只有兩個特征作為輸入數(shù)據(jù)的分類結(jié)果進行比較,從而得出最佳特征的組合。整個過程如圖1所示。
圖1 音樂流派識別過程
(1)梅爾倒譜系數(shù)。
在聲音處理中,梅爾頻率倒譜是基于聲音頻率的非線性梅爾刻度(Mel scale)的對數(shù)能量頻譜的線性變換,而梅爾倒譜系數(shù)是組成梅爾頻率倒譜的系數(shù)。梅爾頻率倒譜系數(shù)是語音識別領(lǐng)域中最重要的特征,所以在用音頻數(shù)據(jù)對音樂進行分類中也是非常重要的一個特征,不容忽視。關(guān)于梅爾頻率倒譜系數(shù),很多文獻中都有提及,比如文獻[5,13],這里不在贅述。重點是從音頻數(shù)據(jù)中抽取MFCC,采用Python中的Librosa這個專門用于音頻數(shù)據(jù)處理的庫從音頻數(shù)據(jù)中抽取MFCC特征。從抽取結(jié)果來看,MFCC是一個二維數(shù)組,一個維度代表時間,另外一個維度代表不同的頻率。
(2)頻譜質(zhì)心。
頻譜質(zhì)心在數(shù)字信號處理中是用來表征頻譜的度量,表示頻譜的“質(zhì)心”位于何處,是聲音信號的頻率分布和能量分布的重要信息。在主觀感知領(lǐng)域,頻譜質(zhì)心描述了聲音的明亮度,具有陰暗,低沉品質(zhì)的聲音傾向有較多的低頻內(nèi)容,頻譜質(zhì)心相對較低,具有明亮,歡快品質(zhì)的聲音多數(shù)集中在高頻,頻譜質(zhì)心相對較高。
(3)頻譜對比度。
頻譜對比度是Jiang Danning[12]在2002年提出來的用于音樂流派分類的特征。頻譜對比度表示為頻譜中頻峰與頻谷之間的分貝差異,能夠代表音樂的相對光譜特性,對于大部分音樂來說,強大的頻峰差值幾乎與諧波部分一致,而非諧波部分或者噪音,一般在頻譜的谷值出現(xiàn)。因此頻譜對比度可以大致反映出諧波和非諧波在頻譜中的分布。另外,從文獻[13]中可以看出,頻譜對比度對音樂的流派具有良好的辨別能力。
在深度學習中,卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)是使用頻率最高的兩種神經(jīng)網(wǎng)絡(luò)。CNN一般用于處理圖片類型的數(shù)據(jù),RNN一般用來處理有連續(xù)時間序列的數(shù)據(jù)。LSTM是一種特殊類型的RNN,用來解決RNN不能長期依賴的問題。LSTM由Hochreiter & Schmidhuber[14](1997)提出,并在近期被Alex Graves[15]進行了改良和推廣。LSTM的具體設(shè)計細節(jié)可以參考文獻[14]。一個典型的LSTM網(wǎng)絡(luò)模型的結(jié)構(gòu)如圖2所示。
根據(jù)原始訓練數(shù)據(jù)的特點,文中設(shè)計的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖2 LSTM網(wǎng)絡(luò)模型
圖3 網(wǎng)絡(luò)結(jié)構(gòu)
模型的輸入層是提取的特征數(shù)據(jù)MFCC(0-13),頻譜質(zhì)心(14-26),頻譜對比度(27-33),第一個LSTM隱藏層的神經(jīng)元個數(shù)為128,第二個LSTM隱藏層的神經(jīng)元個數(shù)為32,最后輸出層是10個神經(jīng)元,代表音樂10種流派的概率。
使用的數(shù)據(jù)集是公開數(shù)據(jù)集GTZAN,該數(shù)據(jù)集包含10種音樂流派,如表1所示。
每種流派的音樂包含100首,時長為30 s的音樂文件,文件格式以.au為后綴名。隨機將數(shù)據(jù)集分成三份,分別作為訓練集、驗證集和測試集,所占比例分別為70%、20%、10%。
表1 GTZAN數(shù)據(jù)集流派中英文對照
由于GTZAN數(shù)據(jù)集中包含的數(shù)據(jù)都是音頻原始數(shù)據(jù),而音頻所包含的數(shù)據(jù)信息太多,無法直接將原始數(shù)據(jù)作為訓練數(shù)據(jù)使用。因此,從音頻數(shù)據(jù)中提取出具有代表性的音樂特征,分別是MFCC、頻譜質(zhì)心和頻譜對比度。利用Librosa這個工具庫,從每個音頻文件中抽取出13個MFCC,1個頻譜質(zhì)心,7個頻譜對比度作為特征數(shù)據(jù)輸入到設(shè)計的LSTM網(wǎng)絡(luò)模型中進行訓練。
將整個實驗分成三個實驗進行。實驗一是實驗數(shù)據(jù)只選擇MFCC和頻譜質(zhì)心,實驗二是數(shù)據(jù)特征只選擇頻譜對比度和頻譜質(zhì)心,為了進行實驗對比,實驗三選擇了MFCC、頻譜質(zhì)心、頻譜對比度三種特征,將三種特征融合在一起,作為輸入數(shù)據(jù)輸入到LSTM網(wǎng)絡(luò)中。由于頻譜質(zhì)心中包含的數(shù)據(jù)信息太少,不適合作為單一的特征輸入到LSTM中,所以選擇將其作為MFCC和頻譜對比度這兩個特征的增強數(shù)據(jù)。三次實驗中,LSTM網(wǎng)絡(luò)模型中的損失函數(shù)(loss function)采用的是categorical_crossentropy,優(yōu)化器(optimizer)采用的是Adam,學習率(learning rate)為0.001,批尺寸(batch_size)為35,而epoch為400,分類概率的輸出采用的使softmax函數(shù)。三種實驗分別進行了5次,每次實驗測試集的誤差和準確率如表2~表4所示。
表2 實驗一中測試集的誤差和準確率
表3 實驗二中測試集的誤差和準確率
表4 實驗三中測試集的誤差和準確率
從實驗結(jié)果中可以得出,實驗一、實驗二、實驗三的平均正確率分別為0.60,0.50,0.68。從實驗一、實驗二、實驗三的5次實驗中隨機抽取1次,其在訓練集的準確率和測試集上的準確率隨epoch的變化如圖4~圖6所示。
圖4 實驗一訓練集與測試集準確率隨epoch的變化
圖5 實驗二訓練集與測試集準確率隨epoch的變化
可以看出,實驗一在訓練集上的準確率很高,但是在測試集上的準確率卻很低,說明模型出現(xiàn)過擬合,泛化能力太差。實驗二在訓練集上與測試集上的準確率相差不大,說明模型的泛化能力很強。而對比實驗一和實驗三可以發(fā)現(xiàn),在訓練數(shù)據(jù)中有MFCC特征的時候,訓練集上的準確率都很高,測試集上的準確率卻不是很高,說明MFCC是三種特征中最能描述音頻內(nèi)容的特征,但由于訓練的數(shù)據(jù)太少,導致模型過擬合。綜合以上結(jié)果分析不難得出,當使用MFCC、頻譜質(zhì)心、頻譜對比度三種特征數(shù)據(jù)作為輸入數(shù)據(jù)時,模型的泛化效果最好,分類的準確率最高。
圖6 實驗三訓練集與測試集準確率隨epoch的變化
針對傳統(tǒng)的機器學習方法在音樂分類中隨分類類別增多,分類準確率不斷下降的問題,提出一種將深度學習中的LSTM網(wǎng)絡(luò)應用到音樂流派分類中的方法。從GTZAN數(shù)據(jù)集的1 000首歌曲中,抽取出MFCC、頻譜質(zhì)心、頻譜對比度三種特征數(shù)據(jù),將這些特征數(shù)據(jù)輸入到LSTM中進行訓練,從而得出音樂屬于每種音樂流派的概率。從實驗結(jié)果可以看出,對10種流派的音樂進行分類,在分類的準確率上比用卷積神經(jīng)網(wǎng)絡(luò)的方法要提高不少。