陳志高, 張旭龍, 肖寒, 肖川,2
(復(fù)旦大學(xué) 1.計算機(jī)科學(xué)技術(shù)學(xué)院, 上海 201203;復(fù)旦大學(xué) 2.計算中心, 上海 200433)
歌聲檢測任務(wù)是指在一段音樂或者混合音頻信號中檢測出包含人聲的部分。近年來在音樂信息檢索(Music Information Retrieval, MIR)領(lǐng)域中,歌聲檢測得到了越來越多的關(guān)注,因其在許多歌手相關(guān)的檢索任務(wù)如歌手識別[1]、旋律提取[2]、哼唱檢索中能夠起到關(guān)鍵的作用。
在[3]中,作者使用HPSS方法把單聲道音頻給分解成諧波部分和沖擊波部分,然后提取相應(yīng)的特征來進(jìn)行實(shí)驗(yàn),取得了顯著的效果提升。HPSS方法實(shí)際上是歌聲分離的方法,引入歌聲分離作為前處理可以將混合信號聚焦于歌聲部分。深度卷積網(wǎng)絡(luò)[4]在歌聲分離中表現(xiàn)出良好的性能,將U-Net作為前處理可以獲得更加干凈的歌聲片段。
為簡化特征選擇,本文直接組合了四個經(jīng)典的特征,來自于語音處理領(lǐng)域的MFCC、Mel-filter Bank[3]和LPCC,以及來自音樂信息檢索領(lǐng)域的Chroma[5]。以上的這些特征可以較為全面地刻畫音頻的特性,剩下的工作交給神經(jīng)網(wǎng)絡(luò)分類器來完成,生成歌聲檢測中所需的d-vector。
最近的研究中,文獻(xiàn)[3,6]使用了LSTM-RNN作為分類器,取得了良好的效果。GRU與LSTM比較類似,其提出都是為了解決RNN的梯度消失問題。但 GRU結(jié)構(gòu)更簡單,更適合用來進(jìn)行實(shí)時計算,實(shí)驗(yàn)[7]顯示GRU的收斂速度往往比LSTM要快。與GRU相比,BGRU可以在時序上雙向處理信息,這樣可以充分利用上下文信息以做出決策。
綜上所述,本文提出了一個可實(shí)用的三步走的歌聲檢測方法。首先使用深度U-Net卷積網(wǎng)絡(luò)來進(jìn)行歌聲分離。其次提取MFCC、Mel-filter Bank、LPCC和Chroma作為混合特征。最后使用BGRU-RNN網(wǎng)絡(luò)作為分類器。
本文的結(jié)構(gòu)如下。第2節(jié)是相關(guān)工作,第3節(jié)簡要闡述本文用到的方法,第4節(jié)為實(shí)驗(yàn)部分,第5節(jié)為結(jié)論。
較早的研究中,Rocamora和Herrera[8]在統(tǒng)計分類器上做了特征對比的實(shí)驗(yàn)。實(shí)驗(yàn)顯示,MFCC效果最好,正確率為78.5%。
Ramona[9]使用支持向量機(jī)(support vector machine, SVM)作為分類器,用隱馬爾可夫模型(Hidden Markov Model, HMM)來做時域平滑。實(shí)驗(yàn)正確率為82%。
Mauch等人[10]使用了四種音色和旋律特征與SVM-HMM分類器,正確率為87.2%。其發(fā)布了102首歌曲的數(shù)據(jù)標(biāo)注,其中100首歌來自RWC數(shù)據(jù)集的流行音樂部分。
Lehner[11]使用了MFCC特征,用隨機(jī)森林作為分類器,用中值濾波做了時域平滑。經(jīng)過一系列手動調(diào)優(yōu),其獲得了82.36%的正確率。
Eyben等人[12]提出了基于LSTM-RNN和RASTA-PLP特征的模型。LSTM-RNN的主要優(yōu)點(diǎn)在于它能夠模擬出輸入數(shù)據(jù)之間的長期依賴關(guān)系。實(shí)驗(yàn)顯示,LSTM-RNN的效果好于所有統(tǒng)計方法。
Lehner在[6]中引入了LSTM-RNN。其使用了包括30維MFCC及其差分以及其他一些頻譜特征在內(nèi)的共111維特征。實(shí)驗(yàn)在RWC-Pop音樂數(shù)據(jù)集上取得了業(yè)界最高水平。
Leglaive[3]使用BLSTM-RNN作為分類器,BLSTM-RNN能夠同時考慮過去和未來的時域信息來對歌聲的存在與否進(jìn)行決策。使用了通過HPSS方法處理得到的Mel-filter Bank特征。其在Jamendo數(shù)據(jù)集上正確率為91.5%。
Schlüter[13]的研究首先使用了音高偏移、時序拉伸和隨機(jī)頻率過濾來增加訓(xùn)練數(shù)據(jù)量。然后使用梅爾頻譜作為輸入特征、CNN作為分類器來組成歌聲檢測系統(tǒng)。在RWC-Pop上錯誤率約為9%,與業(yè)界最高水平相當(dāng)。
本文提出的方法包括三個步驟,分別為歌聲分離、特征提取和模式識別。音頻信號首先經(jīng)過歌聲分離的預(yù)處理,然后提取一定的特征,最后輸入到分類器中去。系統(tǒng)框架如圖1所示。
圖1 系統(tǒng)框架
2.1.1 U-Net
在[4]中,Jansson等人使用深度U-Net卷積網(wǎng)絡(luò)來進(jìn)行歌聲分離,取得了很好的效果。此處使用了[4]中的深度U-Net卷積網(wǎng)絡(luò),用iKala[14]和MedleyDB[15]進(jìn)行訓(xùn)練,然后將訓(xùn)練好的U-Net網(wǎng)絡(luò)應(yīng)用到需要分離的音頻中去。
主要步驟如下。首先分別針對歌聲和伴奏訓(xùn)練兩個U-Net網(wǎng)絡(luò),處理信號頻譜的幅值。其次使用訓(xùn)練好的U-Net來對原信號的頻譜進(jìn)行掩蔽得到新的幅值。最后使用新的幅值和原相位重建信號。
2.1.2 NMF
非負(fù)矩陣分解(Non-negative Matrix Factorization, NMF),也被稱為非負(fù)矩陣近似,是多元數(shù)據(jù)分析的一種算法。
使用NMF算法進(jìn)行歌聲分離步驟如下。首先把原信號從時域轉(zhuǎn)換到頻域,這樣以后才可以被NMF進(jìn)行分解。其次在成分選擇之前進(jìn)行NMF操作。再次為成分選擇,即如果選中的成分包含從伴奏中提取出來的頻率,就用濾波器來消除這些成分。最后,重建信號。
2.1.3 RPCA
魯棒主成分分析(Robust Principal Component Analysis, RPCA)是廣泛使用的統(tǒng)計方法主成分分析的改進(jìn)版本。RPCA由Candes[16]提出,并且被認(rèn)為是恢復(fù)少部分?jǐn)?shù)據(jù)被損壞的低秩矩陣的凸規(guī)劃。
使用RPCA的歌聲分離步驟如下。首先用短時傅里葉變換來計算音樂信號的頻譜,表示為矩陣X。然后進(jìn)行RPCA操作,得到低秩矩陣A和稀疏矩陣E。其中E對應(yīng)于語音,A對應(yīng)于伴奏。最終加上原始信號的相位信息,通過短時傅里葉逆變換來得到時域信號波形。
本文選擇了來自語音領(lǐng)域和音樂領(lǐng)域的四個經(jīng)典特征。它們分別是MFCC, Mel-filter Bank, LPCC和Chroma。以上四種特征可以較為全面地刻畫出音頻的特性,然后通過神經(jīng)網(wǎng)絡(luò)分類器來生成歌聲檢測中所需的d-vector。
實(shí)驗(yàn)中,幀長設(shè)為40 ms,幀移設(shè)為20 ms。最后的對比實(shí)驗(yàn)中,提取了20維的MFCC特征、20維的Mel-filter Bank特征、12維的LPCC特征以及12維的Chroma特征,組成了64維的混合特征。
LSTM[18]和GRU[19]單元的提出都是為了解決循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)難以訓(xùn)練、難以捕獲長期依賴[20]的問題,結(jié)構(gòu)如圖2所示。
(a)
(b)
最近的研究工作中,使用了LSTM-RNN作為歌聲檢測任務(wù)的分類器。
GRU和LSTM共同點(diǎn)在于,它們都會將t到t+1時刻的更新保留下來,而傳統(tǒng)的單元則會用新值替換舊值。不同點(diǎn)在于,GRU并未如LSTM一般使用單獨(dú)的記憶單元。
LSTM控制著記憶單元,而GRU則把對單元內(nèi)部的操作全部暴露出去。LSTM中信息流添加到記憶單元獨(dú)立于遺忘門,而GRU信息流的更新則與更新門綁定在一起完成。因此GRU相比于LSTM,結(jié)構(gòu)更簡單透明,矩陣乘法更少,運(yùn)算效率就更高。
根據(jù)[7]的研究,很難對GRU和LSTM哪個更好下定論,但其實(shí)驗(yàn)表明結(jié)構(gòu)更簡單的GRU收斂速度往往更快,實(shí)驗(yàn)結(jié)果也傾向于更優(yōu)。這是將GRU應(yīng)用到歌聲檢測上面來的主要動機(jī)。為了更好的利用上下文信息,最終選取BGRU-RNN作為分類器。
本文使用了一個包含120個GRU單元的雙向RNN網(wǎng)絡(luò)作為分類器,其中包含一個隱層。輸入數(shù)據(jù)的結(jié)構(gòu)是特征的維度乘上幀塊時長,幀塊時長的調(diào)整會在實(shí)驗(yàn)部分詳細(xì)介紹。輸出層是一個sigmoid函數(shù),輸出的類別是1或0,其中1代表歌聲,0代表非歌聲。Dropout被設(shè)為0.2。使用Early Stopping策略,如果驗(yàn)證集上的實(shí)驗(yàn)效果在10次之后沒有得到改進(jìn),模型就會停止。
本文選擇了使用較多的RWC-Pop數(shù)據(jù)集。RWC-Pop數(shù)據(jù)集包含100首流行音樂,Mauch等人在[10]中對其進(jìn)行了標(biāo)注。包括80首日文歌曲和20首英文歌曲。數(shù)據(jù)集分布比較均衡,其中歌聲片段的長度約占51.2%,非歌聲片段約占48.8%。
本文進(jìn)行了五折交叉驗(yàn)證實(shí)驗(yàn),數(shù)據(jù)被分成五份,一份用來測試,其余的四份用來訓(xùn)練。驗(yàn)證數(shù)據(jù)從訓(xùn)練數(shù)據(jù)中取,占比為20%。以上3個部分相互獨(dú)立。
本文使用4個常用的評價指標(biāo)[21],基于幀的正確率(Accuracy)、準(zhǔn)確率(Precision)、召回率(Recall)和F1-measure。
3.3.1 歌聲分離前后效果對比實(shí)驗(yàn)
此處使用U-Net來做歌聲分離,如圖3所示。
圖3 RWC-Pop上歌聲分離前后效果對比
由圖3看出,歌聲分離后實(shí)驗(yàn)效果得到了大幅度的提升。在正確率和F1-measure兩個關(guān)鍵指標(biāo)上,提升了約10%。因此證明,歌聲分離能夠切實(shí)提高歌聲檢測任務(wù)的表現(xiàn)。
3.3.2 不同歌聲分離方法對比實(shí)驗(yàn)
此處使用U-Net、NMF和RPCA分別進(jìn)行了歌聲分離。選取20維MFCC特征,模型采取BGRU-RNN,幀塊時長為25幀,即520 ms。如圖4所示。
圖4 RWC-Pop數(shù)據(jù)集上不同歌聲分離算法的對比
此處主要比較正確率和F1-measure這兩個核心指標(biāo)。由圖4可以看出,U-Net表現(xiàn)最好,后續(xù)將會使用U-Net作為歌聲分離的方法。
3.3.3 幀塊時長的調(diào)整對比實(shí)驗(yàn)
先前的研究工作中所使用的幀塊時長不盡相同,實(shí)驗(yàn)中發(fā)現(xiàn)不同的幀塊時長對實(shí)驗(yàn)效果的影響很大,因此對這個參數(shù)的確定進(jìn)行了實(shí)驗(yàn)對比,如表1所示。
表1 RWC-Pop數(shù)據(jù)集上的幀塊時長
結(jié)果顯示,實(shí)驗(yàn)表現(xiàn)和幀塊時長有顯著的關(guān)聯(lián)性。幀塊時長越長,實(shí)驗(yàn)表現(xiàn)就越好。最佳的幀塊長度為95幀,該影響可能的原因如下。
第一,幀塊時長越長,模型得到的上下文信息就越多,判斷就更為準(zhǔn)確。第二,由于模型的輸入為連續(xù)的幀塊,且這些幀必須為同樣的標(biāo)注,如果有混雜的數(shù)據(jù),就無法給出其確定的標(biāo)簽。因此模型的輸入要不都是連續(xù)的歌聲,要不都是連續(xù)的非歌聲,其他零碎的幀就會被丟棄。幀塊時長越大,被丟棄的幀就越多,實(shí)驗(yàn)的精度也就會相應(yīng)降低。另外,標(biāo)注精度隨著幀塊時長的增加而減小,幀塊時長越大,標(biāo)注的結(jié)果就越粗糙。業(yè)界對于標(biāo)注精度并沒有明確的規(guī)定,一般按照經(jīng)驗(yàn)來確定。
[6]在RWC-Pop上得到了最好的實(shí)驗(yàn)結(jié)果,[3]在Jamendo上得到了最好的實(shí)驗(yàn)結(jié)果。[6]的幀塊時長為140 ms,[3]的幀塊時長為800 ms。根據(jù)本文實(shí)驗(yàn)的情況,選取了兩個比較接近且略小的情形,分別是120 ms和720 ms。
3.3.4 與其他研究的對比
歌聲分離使用深度U-Net網(wǎng)絡(luò),特征為前文所述的64維混合特征,模型方面采取BGRU-RNN,結(jié)構(gòu)依照前文闡述。模型中幀塊時長分別為120 ms和720 ms,用BGRU-RNN-1和BGRU-RNN-2如表2所示。
表2 RWC-Pop上的實(shí)驗(yàn)對比
表2給出了RWC-Pop上的實(shí)驗(yàn)結(jié)果。在RWC-Pop數(shù)據(jù)集上,BGRU-RNN-2比業(yè)界最高水平大約高出2%。且所使用的GRU在結(jié)構(gòu)上要比LSTM更加簡單,有著更高的運(yùn)算效率,因此提出的方法比Lehner[6]更適合用來做實(shí)時計算。
本文提出了一個基于U-Net和BGRU-RNN的實(shí)用的三步走的歌聲檢測方法,在RWC-Pop數(shù)據(jù)集上得到了與業(yè)界最高水平相當(dāng)或者更好的表現(xiàn)。
三個步驟分別是歌聲分離、特征提取和模式識別。使用深度U-Net神經(jīng)網(wǎng)絡(luò)進(jìn)行歌聲分離。使用了四種經(jīng)典特征進(jìn)行組合,對音頻信號的特征做出了全面的刻畫。BGRU能夠更好地利用上下文信息,且比LSTM結(jié)構(gòu)更簡單運(yùn)算效率更高??傮w來說,實(shí)驗(yàn)表現(xiàn)更好、結(jié)構(gòu)更簡單、運(yùn)算效率更高,因此更為實(shí)用。
[13]中使用音高偏移、時序拉伸和隨機(jī)頻率過濾來增加訓(xùn)練數(shù)據(jù)量,然后用簡單的梅爾頻譜特征加CNN分類器也取得了非常好的實(shí)驗(yàn)效果。鑒于數(shù)據(jù)量多少對深度學(xué)習(xí)的影響很大,因此亦可在本文實(shí)驗(yàn)基礎(chǔ)上借鑒該思路做嘗試,可作為未來的一個研究方向。
本項目由國家自然科學(xué)基金NSFC 61671156資助。