龔 杰,馮海泓,陳友元,方 義,2,3,牟宏宇
(1.中國科學(xué)院聲學(xué)研究所東海研究站,上海201815;2.中國科學(xué)院聲學(xué)研究所,北京100190;3.中國科學(xué)院大學(xué),北京100049)
目前,智能家居、智能交通、智能醫(yī)療等場景中越來越多地將語音端作為一個重要的現(xiàn)實場景信息入口,以實現(xiàn)智能化操作。盡管語音增強領(lǐng)域有著比較長的研究歷史,但是由于現(xiàn)實生活中的聲學(xué)場景非常復(fù)雜,如在語音增強領(lǐng)域一直未被解決的雞尾酒會問題(即當(dāng)前語音識別技術(shù)能以較高精度識別單個人講話,但是當(dāng)說話人數(shù)為兩人或多人時,語音識別率就會極大地降低),在實際生活場景下語音增強工作仍面臨著極大挑戰(zhàn)。本文致力于在房間存在混響和4個說話人的聲學(xué)場景下,利用陣列波束形成和神經(jīng)網(wǎng)絡(luò)來實現(xiàn)目標(biāo)語音增強。
用于目標(biāo)語音分離的其中一類方法是單通道目標(biāo)語音增強,目前在這一方向上已經(jīng)有一些效果較好的方法,如譜減法[1]、維納濾波法[2]、基于統(tǒng)計模型的方法[3]、計算聽覺場景分析(Computational Auditory Scene Analysis, CASA)和非負矩陣分解(Non-Negative Matrix Factorization, NMF)方法。近期也出現(xiàn)了一些基于深度學(xué)習(xí)的單通道語音增強方法,例如基于置換不變性的訓(xùn)練方法(Permutation Invariant Training, PIT)[4]、生成對抗網(wǎng)絡(luò)(Generative Adversarial Nets, GAN)[5]方法等。但是單通道語音增強的不足在于其實現(xiàn)語音增強的依據(jù)為目標(biāo)語音與干擾聲的頻譜結(jié)構(gòu)差異,若目標(biāo)語音與干擾聲頻譜結(jié)構(gòu)相似,其效果可能較差且單通道沒有利用空間信息。
另一類方法是利用空間信息實現(xiàn)多通道語音增強,主要方法是波束形成的方法。但是波束形成大多只利用了空間信息,未利用頻譜信息。
本文將接收的多通道信號形成4個方向的超指向波束,得到4個角度的頻譜信息,然后利用神經(jīng)網(wǎng)絡(luò)與目標(biāo)純凈語音頻譜信息進行映射。在此過程中頻譜信息和空間方位信息均得到利用。仿真和實驗結(jié)果表明,本文采用超指向波束形成結(jié)合神經(jīng)網(wǎng)絡(luò)以實現(xiàn)目標(biāo)語音增強的算法取得了較好的效果。
本文算法結(jié)構(gòu)如圖1所示。算法流程為待處理的信號在4個方向上進行超指向波束形成;提取每個波束的頻譜幅度特征;聯(lián)合后得到聯(lián)合特征,根據(jù)數(shù)據(jù)每個維度上特征值的平均值和標(biāo)準(zhǔn)差對聯(lián)合特征進行標(biāo)準(zhǔn)化;然后進入神經(jīng)網(wǎng)絡(luò)預(yù)測掩蔽值(Mask);根據(jù)掩蔽值得到目標(biāo)語音頻譜進而重構(gòu)時域信號,得到預(yù)測的目標(biāo)語音。
圖1 本文算法結(jié)構(gòu)圖Fig.1 The structure diagram of the algorithm proposed in this paper
延遲相加波束形成是波束形成方法中最基礎(chǔ)的一種,其原理是將多個傳聲器的時延差補齊,使它們與目標(biāo)方向的傳聲器一致然后進行累加。此方法應(yīng)用于非相關(guān)的空間白噪聲時效果較好,但是其對相干噪聲場的抑制效果不理想。超指向波束形成在低頻的指向性要強于延遲相加波束形成,因此能夠更好地抑制相干噪聲場[6],因此本文采用超指向波束形成算法。
假設(shè)空間噪聲各向同性分布,噪聲協(xié)方差矩陣的計算公式為[7]
其中:ΓVV為噪聲協(xié)方差矩陣;J0(?)為0階貝塞爾函數(shù);rmic為圓陣上按逆時針順序,每個陣元(包括參考陣元)與參考陣元之間的直線距離;f為頻率;c為空氣中聲速,取值為340.29 m·s-1。
利用最小方差無失真響應(yīng)(Minimum Variance Distortionless Response, MVDR)波束形成器的權(quán)重公式可以得出此時的濾波器權(quán)重為[8]
其中:d為導(dǎo)向向量。
由于實際環(huán)境中存在陣列誤差和空間白噪聲,因此可通過對角加載來提高超指向波束形成的穩(wěn)健性,此時濾波器權(quán)重為[9]
其中:μ表示對角加載量,I表示單位矩陣。
信號相位譜代表方位信息,由于原始信號來自多個方向,頻譜中相位信息和幅度信息相互關(guān)聯(lián),而神經(jīng)網(wǎng)絡(luò)一般都是實數(shù)型網(wǎng)絡(luò),故頻譜中的相位信息不便利用。進行超指向波束形成后,得到4個方向的超指向波束,這時可以只利用頻譜幅度信息估計目標(biāo)語音的掩蔽值,掩蔽值的表達式為
其中:M為目標(biāo)語音的掩蔽值;λs為目標(biāo)語音的特征值;λ0為參考波束的特征值。
1.3.1 長短時記憶神經(jīng)網(wǎng)絡(luò)
長短時記憶神經(jīng)網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)是一種時間遞歸神經(jīng)網(wǎng)絡(luò),適用于有用信息間隔和延遲相對較長或者間隔有大有小、長短不一的復(fù)雜語言場景[10]。本文將一條語音片段信息作為一個時間序列送入LSTM進行訓(xùn)練。
1.3.2 構(gòu)建神經(jīng)網(wǎng)絡(luò)
本文構(gòu)建的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。該結(jié)構(gòu)采用4層LSTM網(wǎng)絡(luò)和1層全連接層網(wǎng)絡(luò)相結(jié)合的形式,每層LSTM層有600個節(jié)點,全連接層有600個節(jié)點,全連接層的激活函數(shù)采用了LeakyReLU函數(shù)和sigmoid函數(shù),損失函數(shù)采用mean_squared_error函數(shù),損失函數(shù)的表達式為[11]
圖2 本文所用的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 The neural network framework used in this paper
其中:yi為訓(xùn)練集數(shù)據(jù)中的真實值,為神經(jīng)網(wǎng)絡(luò)的預(yù)測值,ferror為損失函數(shù),損失函數(shù)值越小,說明神經(jīng)網(wǎng)絡(luò)與訓(xùn)練集的匹配度越高。
2.1.1 利用TIMIT語料庫和image method構(gòu)造神經(jīng)網(wǎng)絡(luò)訓(xùn)練集
德州儀器和麻省理工學(xué)院(Texas Instruments and Massachu-setts Institute of Technology, TIMIT)語料庫,是由上述兩家機構(gòu)和斯坦福國際研究院合作構(gòu)建的聲學(xué)-音素連續(xù)英語語音語料庫。TIMIT語料庫的語音采樣頻率為16 kHz,包含6 300個句子,70%的說話人是男性,大多數(shù)說話人是成年白人,630個說話人來自美國8個主要方言地區(qū),每人說出給定的10個句子,所有句子在音素級別上進行了手動分割、標(biāo)記。
根據(jù)房間規(guī)格、混響時間T60、傳聲器位置、說話人位置,利用鏡象法(image method)可求得此時每個傳聲器的混響傳遞函數(shù)[12]。
假設(shè)一個房間,如圖3所示,4個傳聲器構(gòu)成圓陣,圓陣半徑為36.25 mm,與智能音箱的半徑近似。將圓陣中心置于房間正中央,離地高度設(shè)為1.3 m,與現(xiàn)實環(huán)境中的智能音箱擺放高度大致相同,所有傳聲器均位于同一水平面上。然后將從圖3中聲陣列的圓心到最右側(cè)陣元的連線方向作為0°方向,即目標(biāo)語音方向,逆時針規(guī)劃角度,將0°~360°以60°為間隔劃分角度,除0°以外,隨機挑選3個角度作為說話人方向,4個說話人在距離圓陣中心1~3 m內(nèi)隨機站位,陣列中心與四個說話人的距離均遠大于混響半徑?;祉憰r間T60在0.3~0.6 s內(nèi)隨機取值,該混響范圍對語音的清晰度影響較小[13]。
利用鏡象法可求得每個說話人到每個傳聲器的傳遞函數(shù)。在TIMIT語料庫中隨機挑選4條純凈語音片段,4個說話人的語言均為英語,男女比例、年齡均隨機。將語音片段裁剪成相同時長并對每條語音的幅度進行歸一化,再與傳遞函數(shù)進行卷積,然后將每個傳聲器接收的不同說話人的信號進行累加,之后將0°方向的歸一化后的純凈語音代入混響時間T60=0時的傳遞函數(shù)中,可以得到此場景下對應(yīng)的純凈語音,最后得到一組最終的訓(xùn)練集數(shù)據(jù)。本研究制作了18 000條數(shù)據(jù),總時長約為10 h。
2.1.2 數(shù)據(jù)預(yù)處理
輸入信號的采樣頻率為16 kHz,幀長為512點。在0°、90°、180°、270°這4個方向上對其進行超指向波束形成,每幀加漢寧窗,得到4個波束的頻譜幅度特征,聯(lián)合后得到聯(lián)合特征和與之對應(yīng)的目標(biāo)語音在特定方向的掩蔽值。因0°方向目標(biāo)語音的頻譜成分占超指向波束頻譜成分的比例大,避免了掩蔽值過小影響語音增強效果的情況,因此本文采用目標(biāo)語音在0°方向的掩蔽值。訓(xùn)練集中的聯(lián)合特征需要在每個維度上進行標(biāo)準(zhǔn)化[14],特征值標(biāo)準(zhǔn)化的公式為
式中,F(xiàn)nor為標(biāo)準(zhǔn)化后的特征值,F(xiàn)為原始的特征值,為整個訓(xùn)練集數(shù)據(jù)在某個維度上特征值的平均值,σ為標(biāo)準(zhǔn)差。利用根據(jù)式(6)得到的標(biāo)準(zhǔn)化的聯(lián)合特征和掩蔽值訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
通過訓(xùn)練集可得到特征值和掩蔽值,特征值送入神經(jīng)網(wǎng)絡(luò)后得到掩蔽值,神經(jīng)網(wǎng)絡(luò)具體結(jié)構(gòu)如圖2所示,包括1層掩蔽(masking)層,4層LSTM層和1層全連接層。設(shè)置好損失函數(shù)、優(yōu)化器、輸入、輸出,便可訓(xùn)練神經(jīng)網(wǎng)絡(luò)。訓(xùn)練集數(shù)據(jù)在訓(xùn)練過程中共訓(xùn)練25輪,每1輪都需要隨機打亂訓(xùn)練集數(shù)據(jù)的順序,之后送入神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練。訓(xùn)練過程中利用Python語言編寫的生成器,用中央處理器(Central Processing Unit, CPU)逐個生成數(shù)據(jù)批(batch),用圖形處理器(Graphics Processing Unit,GPU)訓(xùn)練神經(jīng)網(wǎng)絡(luò),生成器的運行與神經(jīng)網(wǎng)絡(luò)的訓(xùn)練兩者并行,提高了訓(xùn)練效率。
使用英文語料庫TIMIT制作本研究中神經(jīng)網(wǎng)絡(luò)的訓(xùn)練集,使用中文語料庫prime-words_md_218_set1制作神經(jīng)網(wǎng)絡(luò)的測試集。
3.1.1 語音分離客觀評價
使用源失真比(Signal To Distortion Ratio,SDR)[15]對本文算法進行語音分離效果客觀評價,具體公式為
式中:Si表示實際的理想信號,Sp表示經(jīng)算法處理后的信號;RSD為源失真比。
采用SDR對本文算法與超指向算法、譜減法進行語音分離效果評價,評價結(jié)果見表1。從表1可知,本文算法的RSD值大于超指向算法和譜減法,因此本文算法的語音分離效果優(yōu)于超指向算法和譜減法。
表1 3種算法的RSD值Table 1 The RSD values of three algorithms
3.1.2 混響抑制效果的客觀評價
混響抑制效果采用信混噪比(Signal Reverberation Noise Ratio, SRNR)的改善值ΔR進行客觀評價,計算每幀語音的ΔR的表達式為
式中:p(j)表示實際的理想信號,i(j)表示原始信號,o(j)表示經(jīng)算法處理后的信號,N表示當(dāng)前幀共有N個點,Rin表示原始信號的信混噪比,Rout表示經(jīng)算法處理后信號的信混噪比。
對所有幀的ΔR求均值,得到最終的ΔR值。本文算法、超指向算法和譜減法的ΔR值見表2。從表2中可知,本文算法的ΔR值大于超指向算法和譜減法,所以本文算法的混響抑制效果優(yōu)于這兩種對比算法。
表2 3種算法的ΔR值Table 2 The ΔR values of three algorithms
3.1.3 語音質(zhì)量的客觀評價
利用感知語音質(zhì)量評價(Perceptual Evaluation of Speech Quality, PESQ)法對語音質(zhì)量進行評價,經(jīng)3種算法處理后的語音的PESQ分數(shù)見表3,從表3中可知,本文算法提升語音質(zhì)量的效果優(yōu)于其他兩種算法。
由以上評價結(jié)果可知,本文算法在語音分離、混響抑制和提升語音質(zhì)量的能力上均優(yōu)于超指向算法和譜減法。以上分析驗證了在房間里存在多說話人場景時,本文算法對目標(biāo)語音進行增強的有效性。
表3 3種算法的PESQ分數(shù)Table 3 The PESQ scores of three algorithms
實驗采用多通道錄音采集卡采集4個說話人的語音數(shù)據(jù)。實驗布設(shè)場景和制作訓(xùn)練數(shù)據(jù)時的場景類似,目標(biāo)說話人的位置固定,陣元中心與目標(biāo)說話人的連線方向為0°方向,據(jù)此將0°~360°以60°為間隔劃分角度,其余說話人的位置從除0°方向以外的剩余5個角度(60°,120°,180°,240°,300°)中隨機挑選3個角度,然后錄制實驗數(shù)據(jù)。
圖4、圖5分別是測試集數(shù)據(jù)的時域信號對比圖和語譜對比圖。從圖4、圖5可知,采用測試集數(shù)據(jù)時,本文算法有明顯的語音增強效果。
圖4 測試集的時域波形對比圖Fig.4 Speech waveform diagrams of testing dataset
圖5 測試集語譜對比圖Fig.5 Spectrograms of testing dataset
利用實錄實驗采集數(shù)據(jù),實驗場景為有4個說話人的房間,說話人的性別為兩男兩女,均用普通話朗誦,實錄語音的信干比為-0.1 dB。對目標(biāo)語音進行增強,超指向波束形成算法使實錄信號信干比提高了4.59 dB,譜減法使實錄信號信干比降低了0.86 dB,本文算法使實錄信號信干比提高了12.16 dB。在實際場景下,本文算法語音增強的效果明顯優(yōu)于超指向波束形成算法和譜減法。
本文算法利用4個方向的超指向波束特征與掩蔽值之間的對應(yīng)關(guān)系實現(xiàn)了語音增強,空間信息和頻譜信息均得到了利用,而且神經(jīng)網(wǎng)絡(luò)將特征值與掩蔽值建立起了非線性映射關(guān)系。而超指向波束形成算法為線性濾波,只利用了空間信息,譜減法只利用了頻譜信息。基于上述原因,本文算法效果優(yōu)于超指向波束形成算法和譜減法。目前,“雞尾酒會”問題的難點為人聲在復(fù)雜聲學(xué)場景下的頻譜特征,尤其是同性之間的頻譜特征相似程度大,方位可能重疊。因此,在該場景下利用頻譜信息和空間方位信息分離目標(biāo)語音困難較大,而神經(jīng)網(wǎng)絡(luò)的優(yōu)勢在于能夠從大數(shù)據(jù)中學(xué)習(xí)到分類特征甚至學(xué)習(xí)到某些尚未定義的特征。本文算法致力于實現(xiàn)房間場景下的語音增強。
根據(jù)實驗可知,訓(xùn)練集數(shù)據(jù)需要達到一定的量級且生成數(shù)據(jù)的場景種類要豐富,本文訓(xùn)練集數(shù)據(jù)總時長達到了10 h。具備以上條件的神經(jīng)網(wǎng)絡(luò)具有較好的可推廣性。神經(jīng)網(wǎng)絡(luò)需要訓(xùn)練足夠的輪次且每一輪數(shù)據(jù)的順序需要隨機打亂,使損失函數(shù)值降到足夠低,此種狀況下,神經(jīng)網(wǎng)絡(luò)的擬合效果較好。
本文將超指向波束形成算法和神經(jīng)網(wǎng)絡(luò)算法相結(jié)合,在房間存在多說話人的聲學(xué)場景下,實現(xiàn)了目標(biāo)方向語音分離、混響抑制和語音質(zhì)量的提升。利用仿真數(shù)據(jù)集訓(xùn)練神經(jīng)網(wǎng)絡(luò),學(xué)習(xí)此場景下多波束聯(lián)合特征和目標(biāo)語音頻譜間的復(fù)雜關(guān)系。通過中文語料庫數(shù)據(jù)的測試評價和實錄數(shù)據(jù)的實驗表明,該方法在上述場景中具有明顯的語音增強效果。
在實際應(yīng)用本文算法中的神經(jīng)網(wǎng)絡(luò)時,可考慮將若干幀數(shù)據(jù)聯(lián)合作為一組輸入數(shù)據(jù)序列,經(jīng)過神經(jīng)網(wǎng)絡(luò)映射得到與之對應(yīng)的掩蔽值序列,訓(xùn)練和預(yù)測均如此處理,可以增強算法的實時性、降低硬件要求。此外,可通過在神經(jīng)網(wǎng)絡(luò)的層之間增加過渡層;把神經(jīng)網(wǎng)絡(luò)進行分類,與標(biāo)簽分別進行對應(yīng);壓縮神經(jīng)網(wǎng)絡(luò);先訓(xùn)練大的神經(jīng)網(wǎng)絡(luò),再用大網(wǎng)絡(luò)訓(xùn)練小網(wǎng)絡(luò);也可采用美爾譜、分頻帶等方法減少計算量。目前國內(nèi)已經(jīng)有單位將深度學(xué)習(xí)的降噪算法運行在高級精簡指令集計算器(Advanced Reduced Instruction Set Computer Machine, ARM)上。