王凱,李鳴鶴,黃志華,黃浩
(新疆大學(xué) 信息科學(xué)與工程學(xué)院,新疆 烏魯木齊 830017)
語音分離是語音識別、說話人分類、說話人識別等語音處理任務(wù)中必不可少的前端組成部分.與多通道語音分離任務(wù)相比,單通道語音分離由于其所提供的信息有限而更具挑戰(zhàn)性,也是當(dāng)前語音處理研究的熱點.近年來,語音分離的研究主要集中在基于深度學(xué)習(xí)的方法上,并取得了突破性的進展.根據(jù)對輸入混音的處理方式,可將語音分離技術(shù)分為兩類:基于時頻域的分離方法和基于時域的分離方法.前者的提出時間較早[1-6],其中深度聚類[1-2]和PIT[5-6]分別解決了語音分離中的排列問題[1],為后續(xù)的研究工作打下基礎(chǔ).
時頻域語音分離方法中通常首先用短時傅立葉變換(STFT)得到混音的幅度譜,然后將混音以幅度譜或?qū)?shù)幅度譜的形式作為輸入,用神經(jīng)網(wǎng)絡(luò)估計分離后的各說話人語音,在重構(gòu)估計語音的時域信號時采用混音相位.由于混音相位對于各個語音相位來說加入了干擾,會導(dǎo)致次優(yōu)的分離結(jié)果.為此,有研究提出了相位重建算法[7]和復(fù)數(shù)域的STFT表示[8],但這仍需要額外的模型或處理步驟.為了避免相位的問題,近期有文獻(xiàn)研究使用時域表示的語音分離方法[9-12].這種方法將時域中的混合波形轉(zhuǎn)換為非負(fù)的特定空間,在該空間中進行分離處理以計算估計的各語音.由于相位信息隱含在原始波形中,時域方法避免了相位重建的困難,其結(jié)果通常優(yōu)于基于時頻域的方法.
除了將混音作為輸入之外,一些研究試圖添加其他先驗信息來幫助改善分離結(jié)果[13-18].有些先驗知識與原始混音正交,即它們的信息之間互相獨立,例如預(yù)先收集說話人的音頻、視頻、圖片等信息(稱為預(yù)注冊信息)來幫助語音分離[13],以及記錄說話人基于位置的方位角特征,以備后續(xù)分離步驟[14].而另一些先驗信息是隱含在原始混音信號中的,例如時域混音信號的時頻域表示[16],以及各目標(biāo)語音的基頻信息[17].顯式地添加隱藏在原始信號中的信息可以提高性能,究其原因是由于訓(xùn)練數(shù)據(jù)集的有限性和神經(jīng)網(wǎng)絡(luò)能力的局限性,使得輸出結(jié)果無法完全與理想情況相同,而先驗知識可以幫助神經(jīng)網(wǎng)絡(luò)進一步提升語音分離性能.
基頻感知語音分離[17]是一種在時頻域利用基頻頻率輔助信息的語音分離方法,分為預(yù)分離和后分離兩個階段.預(yù)分離階段訓(xùn)練一個基于深度聚類(DC)的模型來預(yù)分離估計語音,過程中用前饋網(wǎng)絡(luò)代替DC中的Kmeans聚類過程來提升聚類效果.然后利用一個基頻提取神經(jīng)網(wǎng)絡(luò),從預(yù)先分離的語音中提取基頻.后分離階段將估計的基頻與原始混音進行拼接作為新的輸入,送入基于uPIT[6]的分離網(wǎng)絡(luò)來計算最終的目標(biāo)語音.
上述方法的不足在于DC和uPIT都是較早期的時頻域分離方法,因此模型不可避免地存在相位重構(gòu)問題,從而限制了其性能.基于這一原因,我們設(shè)計了一種新的時域語音分離框架,繼承了其附加基頻信息的特性.具體而言,我們采用的模型也分為預(yù)分離階段和后分離階段.預(yù)分離階段采用Conv-TasNet[10]進行分離,然后對分離后的語音分別用傳統(tǒng)算法RAPT[19]和基于深度學(xué)習(xí)的方法估計基頻.我們發(fā)現(xiàn)對于預(yù)分離后的語音,RAPT比基于深度學(xué)習(xí)的方法效果更好.后分離階段采用Conv-TasNet的變體訓(xùn)練一個新的分離模型,其輸入采用原始混音和相應(yīng)基頻的組合.我們首先將理想的基頻信息注入原始混音中,以確定基頻信息是否也有助于時域語音分離.結(jié)果表明,本文的研究方向是正確的:如果能夠提取到理想的基頻信息,時域語音分離的性能也可以得到改善.然后,我們研究了不同基頻跟蹤方法與后分離模塊的組合,以及聯(lián)合訓(xùn)練、預(yù)訓(xùn)練加微調(diào)[20]等不同訓(xùn)練方法的效果.實驗結(jié)果表明,如果后分離模塊先使用理想基頻輸入進行預(yù)訓(xùn)練,再使用RAPT算法得到的預(yù)分離語音基頻進行微調(diào),將取得最好的效果,比僅基于Conv-TasNet而沒有基頻信息的分離模型提高了0.5 dB.
所提出方法的框架如圖1所示,由三個模塊組成:預(yù)分離模塊、基頻跟蹤模塊和后分離模塊.預(yù)分離模塊用于將混合波形分離成預(yù)先分離的信號源,基頻跟蹤模塊從中提取估計的基頻.提取的基頻和原始混音進行拼接,然后輸入到后分離模塊進行最終分離.由于基頻頻率和混音采樣值之間的數(shù)量級差異較大,在拼接之前需要進行數(shù)量級的重新縮放操作.預(yù)分離模塊采用Conv-TasNet網(wǎng)絡(luò)結(jié)構(gòu),網(wǎng)絡(luò)配置與文獻(xiàn)[10]中描述的相同.對于基頻跟蹤模塊,參考文獻(xiàn)[17],我們提出新的基于深度學(xué)習(xí)的基頻跟蹤模型,另外也驗證了傳統(tǒng)的基于RAPT的基頻跟蹤方法.后續(xù)的實驗部分將對它們的結(jié)果進行比較.最后參考Conv-TasNet設(shè)計了后分離模塊.
圖1 本文所提出方法的架構(gòu)
本文在預(yù)分離和后分離階段采用Conv-TasNet[10]作為分離模塊,該網(wǎng)絡(luò)是一個基于時間卷積網(wǎng)絡(luò)TCN[21]的端到端訓(xùn)練的全卷積網(wǎng)絡(luò),其輸入是由時域采樣得到的混音波形信號,輸出為分離之后的各語音波形信號.其結(jié)構(gòu)包括三個部分:編碼器、分離模塊和解碼器.編碼器采用一維卷積層,將混音分段并轉(zhuǎn)換為非負(fù)的潛在空間的表示.分離模塊采用多個一維卷積塊堆疊的結(jié)構(gòu),為混音中每個語音的每個時間步估計掩蔽,然后將各掩蔽乘以混音得到潛在空間的估計語音.分離模塊中使用多層空洞卷積[21-22]和逐層增加的膨脹因子,可以得到較大的感受野,從而對長序列建模.解碼器采用轉(zhuǎn)置卷積操作,將潛在空間的語音特征轉(zhuǎn)換到時域,重建估計的語音信號.Conv-TasNet的目標(biāo)函數(shù)直接采用尺度不變信噪比SI-SNR,定義如下:
基頻是周期信號的固有特性,基頻跟蹤(又稱基頻估計)是估計基頻輪廓的任務(wù)[23].經(jīng)典的基頻估計方法包括RAPT[19]、PRAAT[24]、YIN[25]等,通過計算語音或音樂的局部極大值或極小值來估計基頻.其中RAPT方法針對語音的基頻跟蹤任務(wù)設(shè)計,對語音有特別的適用性.近年來,數(shù)據(jù)驅(qū)動的基于深度神經(jīng)網(wǎng)絡(luò)的基頻提取模型被提出,并顯示出良好的性能[26-29],受到了更多的關(guān)注,但會遇到缺乏基頻標(biāo)簽的問題.
對于預(yù)分離的語音,我們分別采用傳統(tǒng)方法RAPT和基于深度神經(jīng)網(wǎng)絡(luò)的方法提取基頻.對于后者,我們也分別嘗試了基于分類和基于回歸這兩種方法,如圖2所示.基于分類的模型有400個輸出,對應(yīng)的基頻頻率從1到400,基頻估計是一個分類任務(wù).基于回歸的模型的輸出是一維的,每一時間幀的基頻頻率通過回歸任務(wù)計算得到.本文的回歸模型可以看作文獻(xiàn)[17]的增強版本.所提出的兩個基頻跟蹤模型都采用前饋神經(jīng)網(wǎng)絡(luò)FNN和長短期記憶神經(jīng)網(wǎng)絡(luò)LSTM,然后分類模型后面是log-softmax和argmax操作,而回歸模型后面是一個ReLU激活函數(shù)層.對于濁音(V)和輕音(UV)標(biāo)志預(yù)測,考慮到VUV標(biāo)志在語音分離過程中沒有顯式的應(yīng)用,我們采用一個簡單的設(shè)定閾值方法,即:小于閾值的基頻為輕音(UV),大于閾值的基頻為濁音(V).
圖2 基于深度學(xué)習(xí)的基頻跟蹤模型的結(jié)構(gòu)
另外,對基頻跟蹤模型的輸入進行簡單的預(yù)處理.具體來說,在計算某時間幀的基頻時,相鄰時間幀可能含有有益的信息,我們將輸入幀向前后對稱地擴充,從而生成一個較長的輸入時間幀.
在后分離階段,我們將估計的基頻和原始混音進行拼接操作,以生成后分離模塊新的輸入.圖3展示了三種不同的拼接方法[17]:
圖3 估計基頻與原始混音的拼接方法
(1)Oracle:干凈語音的信息是已知的,具有最大SNR的干凈語音對應(yīng)的估計基頻首先與混音拼接.
(2)任意順序:估計基頻按任意順序與混音拼接.
(3)能量:具有最大能量的預(yù)分離語音對應(yīng)的估計基頻首先與混音拼接.
因為估計的語音和干凈語音較接近“,Oracle”和“能量”方法可以近似看作相同.事實上,文獻(xiàn)[17]中的結(jié)果顯示“,能量”方法稍微優(yōu)于“Oracle”方法,且兩者皆比“任意”方法好得多.因此,我們采用“能量”方法作為本文的拼接方法.又因估計基頻的長度與語音波形長度不匹配,需要對基頻序列長度進行成比例的縮放,使其與語音長度相同,便于拼接操作.
本文采用WSJ0-2mix數(shù)據(jù)集[1]驗證所提出方法的有效性.WSJ0-2mix數(shù)據(jù)集廣泛應(yīng)用于單通道語音分離模型的驗證.本文采用8 kHz采樣的版本,具體做法是在Wall Street Journal(WSJ0)數(shù)據(jù)集中的訓(xùn)練集中任選2個說話人的語音,按-5~5 dB中的任意SNR混合,以生成30小時的訓(xùn)練集混音和10小時的驗證集混音.從WSJ0開發(fā)集和驗證集的16個說話人中,任選2個說話人的語音,同樣按上述方式生成5小時的驗證集.這樣測試集的說話人與訓(xùn)練集和驗證集不同,即是一個開放數(shù)據(jù)集.
如前所述,Conv-TasNet在預(yù)分離模塊和后分離模塊中都有應(yīng)用,而且后者的輸入維度是基頻與混音拼接的新維度.在Conv-TasNet中,編碼器的濾波器長度設(shè)為16.文獻(xiàn)[10]和文獻(xiàn)[30]表明,編碼器濾波器的長度越短,語音分離的結(jié)果越好.因本文的目的是驗證基頻信息對時域語音分離系統(tǒng)的提高作用,而不是追求更高的分離結(jié)果,因此我們固定此濾波器長度為16.
實驗采用平均尺度不變信噪比提升(SI-SNRi)[10,31]作為語音分離的評價指標(biāo),使用Adam算法作為模型的優(yōu)化器.傳統(tǒng)訓(xùn)練時的學(xué)習(xí)率設(shè)置為1×10-3,調(diào)優(yōu)時訓(xùn)練的學(xué)習(xí)率設(shè)置為1×10-4.
本文使用傳統(tǒng)方法RAPT和基于深度神經(jīng)網(wǎng)絡(luò)的方法進行基頻估計任務(wù).其中后者包括2種方法,即分類方法和回歸方法,基頻跟蹤模型的輸入是預(yù)分離階段得到的估計語音.我們采用4個隱層的FNN,每層512個單元,后面連接一個雙向LSTM層,512個隱層單元.基于分類模型的訓(xùn)練目標(biāo)為傳統(tǒng)交叉熵,基于回歸模型的訓(xùn)練目標(biāo)為MSE.深度模型的輸入維度為3 600,即每一幀的窗長為400個采樣點,向兩邊各擴展4個幀.相鄰幀的移動距離為64個采樣點,即8 ms.另外,對于基于深度神經(jīng)網(wǎng)絡(luò)模型還有一個問題需要考慮,即監(jiān)督訓(xùn)練時的參考標(biāo)簽.因為對于WSJ0數(shù)據(jù)集來說沒有基頻的參考標(biāo)簽,參照文獻(xiàn)[17]的方法,我們采用RAPT結(jié)果作為參考標(biāo)簽.對于RAPT方法,輸入音頻為8 kHz采樣,每一幀的移動距離為8 ms;其最小和最大基頻頻率分別設(shè)置為30 Hz和400 Hz.對于預(yù)分離得到的估計語音,相比原干凈語音是有失真的,以上設(shè)置可以比較傳統(tǒng)RAPT和深度學(xué)習(xí)方法哪一個抗失真的能力更優(yōu).
結(jié)果如表1所示,其中CLS表示基于分類的基頻跟蹤模型,REG指基于回歸的基頻跟蹤模型.我們也展示了基頻感知系統(tǒng)[17]中的基頻跟蹤結(jié)果,標(biāo)記為PA.V UV Error表示濁音和清音標(biāo)志預(yù)測的錯誤率.MAEglobal和RMSEglobal分別指預(yù)分離語音基頻與干凈語音基頻的平均絕對誤差和均方根誤差,MAEF0和RMSEF0指對于VUV標(biāo)志預(yù)測正確的幀,預(yù)分離語音基頻與干凈語音基頻的平均絕對誤差和均方根誤差.
表1 不同基頻跟蹤方法的結(jié)果比較(對預(yù)分離語音)
由表1可知,RAPT的基頻預(yù)測結(jié)果普遍優(yōu)于基于深度學(xué)習(xí)的方法,也優(yōu)于文獻(xiàn)[17]的方法.原因在于,基于時域的預(yù)分離模塊可以達(dá)到足夠的分離精度,使通過RAPT方法估計的基頻相對失真誤差較少.還可以發(fā)現(xiàn)本文采用的三種方法,RAPT、CLS和REG都優(yōu)于PA[17],而且CLS和REG在不同的指標(biāo)上各有優(yōu)勢.在后續(xù)實驗中,我們將只使用RAPT、CLS和REG的基頻估計結(jié)果用于后分離模型.
2.3.1 使用理想基頻的語音分離
首先通過假設(shè)目標(biāo)語音已知,來評估添加理想基頻的結(jié)果.用RAPT方法計算出理想的基頻,并與原始混音拼接成后分離模塊的輸入.我們復(fù)現(xiàn)Conv-TasNet并將其作為基線,其分離結(jié)果為15.2 dB,比文獻(xiàn)[10]低0.1 dB.原因可能是參數(shù)初始化和生成的數(shù)據(jù)集的隨機性.
表2首先給出了利用理想基頻輔助信息進行時頻域分離的結(jié)果[17],說明了基頻感知方法在時頻域語音分離中的有效性.然后給出了本文的時域結(jié)果,結(jié)果表明,利用理想的基頻信息,可以獲得顯著的改善(2.4 dB).2.4 dB的改進可以看作理想情況下的值,或者說是要追求的上限.需要說明的是,文獻(xiàn)[17]中使用平均SDRi作為指標(biāo),而本文使用平均SI-SNRi.平均SDRi和平均SI-SNRi通常只相差一個常量[4,7,9,10,30],因此考查性能提升程度時,是可以互相比較的.
表2 使用理想基頻的語音分離結(jié)果
我們注意到時頻域的基頻感知系統(tǒng)[17]采用DC或uPIT作為分離模塊.由表2可知,加入基頻后,基于uPIT的分離模型可以得到更大的性能提升,即3.9 dB.這與表2中時域的分離方法相比(2.4 dB),可知時頻域的提升程度更大.原因可能是時頻域方法缺乏相位信息,加入基頻可帶來更多的信息補償;而時域的輸入已經(jīng)隱式地包含基頻信息,因此顯式加入基頻會帶來相對有限的增強.
2.3.2 使用非理想基頻的語音分離
與訓(xùn)練階段不同的是,在推理階段,我們沒有理想基頻提取的干凈語音,我們所掌握的只是預(yù)分離的估計語音.良好的預(yù)分離結(jié)果會得到精確的基頻跟蹤結(jié)果,反過來足夠接近理想情況的基頻跟蹤結(jié)果也會使后分離的語音質(zhì)量得到提升.這就導(dǎo)致了“雞和蛋”的問題.我們使用從預(yù)分離語音中提取的基頻來近似理想基頻,表示為非理想基頻.將非理想基頻與原始混合語音相結(jié)合作為后分離網(wǎng)絡(luò)的輸入.為了解決“雞和蛋”的問題,我們利用理想基頻的訓(xùn)練成果輔助非理想基頻網(wǎng)絡(luò)的訓(xùn)練.具體來說,對于后分離網(wǎng)絡(luò),我們不進行隨機的參數(shù)初始化,而是使用理想基頻訓(xùn)練的網(wǎng)絡(luò)參數(shù),在此基礎(chǔ)上,使用非理想基頻進行調(diào)優(yōu).
表3顯示了使用非理想基頻的分離結(jié)果.我們將文獻(xiàn)[17]中時頻域的基頻感知分離結(jié)果作為對比.其采用基于DC的模型作為預(yù)分離模塊,將聚類過程從原來的K-means替換為前饋網(wǎng)絡(luò).對于后分離,分別驗證了基于DC和uPIT的模型.可以發(fā)現(xiàn)預(yù)分離和后分離均采用DC方法,結(jié)果與只使用DC進行預(yù)分離結(jié)果相同;而將后分離改為uPIT方法后,結(jié)果有較大改善.
表3 使用非理想基頻的語音分離結(jié)果
對于時域的語音分離,我們復(fù)現(xiàn)Conv-TasNet作為預(yù)分離網(wǎng)絡(luò),其分離結(jié)果為15.2 dB.對于后分離,我們評估了多種基頻提取方法(RAPT,分類CLS和回歸REG),對應(yīng)的結(jié)果分別為15.3 dB、15.2 dB和15.2 dB,說明相比無基頻輔助信息的Conv-TasNet沒有明顯提升.我們也將CLS和REG的基頻提取模型與后分離網(wǎng)絡(luò)進行聯(lián)合訓(xùn)練,表示為CLS+POST+Joint和REG+POST+Joint,對應(yīng)的結(jié)果分別為14.8 dB和15.3 dB.由此可知聯(lián)合訓(xùn)練中基于分類的基頻提取方法失敗了.最后我們展示了使用理想基頻預(yù)訓(xùn)練的后分離網(wǎng)絡(luò)進行調(diào)優(yōu)的結(jié)果,表示為RAPT+POST+Tune、CLS+POST+Tune和REG+POST+Tune,對應(yīng)結(jié)果分別為15.7 dB、15.6 dB和15.6 dB,均優(yōu)于基線Conv-TasNet.而且,使用RAPT的調(diào)優(yōu)方法比其他兩個深度模型高0.1 dB,這與基頻跟蹤結(jié)果中,RAPT優(yōu)于其他兩個方法的情況相對應(yīng).
通過對時頻域和時域分離結(jié)果的比較,我們發(fā)現(xiàn)時域方法相對基線的提升小于時頻域的提升(0.5 dB對1.2 dB).原因在于:首先,基頻在時域上提供的信息增量有限;其次,基頻感知系統(tǒng)[17]使用基于DC的模型作為預(yù)分離模塊,uPIT作為后分離模塊(即DC+uPIT),這利用了它們之間的互補性.然而,本文中預(yù)分離模塊和后分離模塊本質(zhì)上是相同的,均為Conv-TasNet.
本文研究了在時域語音分離方法中,利用輔助基頻信息來改善語音分離的性能.實驗結(jié)果表明,輔助基頻信息對時域語音分離也有一定的幫助.在訓(xùn)練過程中,我們發(fā)現(xiàn)傳統(tǒng)的訓(xùn)練方法并不能明顯提高訓(xùn)練效果,而使用理想基頻進行預(yù)訓(xùn)練,再對預(yù)訓(xùn)練的模型進行微調(diào),可以獲得最佳性能.未來的工作包括擴展到其他先驗信息,如說話人表示等.我們還發(fā)現(xiàn),深度模型由于缺乏參考基頻而落后于傳統(tǒng)的RAPT算法,因此可以采用一種更精確的基頻跟蹤算法,或者創(chuàng)建帶有參考基頻的數(shù)據(jù)集,來進一步提高所提出方法的效果.