王君堡,王 希,邊巴旺堆,2*
(1.西藏大學(xué) 信息科學(xué)技術(shù)學(xué)院,西藏 拉薩 850000;2.西藏大學(xué) 信息技術(shù)國家級實驗教學(xué)示范中心,西藏 拉薩 850000)
近年來,藏文信息類技術(shù)越來越多,而專門關(guān)于藏語語音信息的研究成果還比較少,關(guān)于藏語語音去噪技術(shù)的研究成果更少。因此,對于藏語語音去噪算法的針對性研發(fā)是有價值的。隨著人工智能和深度學(xué)習(xí)算法的飛速發(fā)展,被用于語音去噪的神經(jīng)網(wǎng)絡(luò)算法研究逐漸火熱起來。在國外,1989 年,TAMURA 首次提出將神經(jīng)網(wǎng)絡(luò)用于語音去噪,但因為映射關(guān)系很難被網(wǎng)絡(luò)學(xué)習(xí)到,所以去噪效果不甚理想[1]。2015 年,SIVASANKARAN S 等人提出基于深度神經(jīng)網(wǎng)絡(luò)的多通道語音去噪算法,以該算法為基準,提高了語音識別的魯棒性[2]。2020 年,SALEEM N 等人提出基于循環(huán)神經(jīng)網(wǎng)絡(luò)的語音去噪算法,該算法在去噪過程中使用的是頻譜掩蔽的方法,其效果是短時客觀可懂度提高了17.6%,信號失真比提高了5.22 dB,可感知語音質(zhì)量提高了19%[3]。
神經(jīng)網(wǎng)絡(luò)在語音去噪方面的應(yīng)用在國內(nèi)起步較晚。2014 年,戴禮榮和張仕良首次在文章中提到深度學(xué)習(xí)可以用于語音去噪這個問題[4]。2020 年,袁文浩提出基于卷積門控循環(huán)網(wǎng)絡(luò)的語音去噪算法,該算法在語音成分保留和噪聲成分抑制上有很好的效果[5]。2022 年,藍天等人提出端到端的基于RefineNet 網(wǎng)絡(luò)的語音去噪算法,該算法在低信噪比和未知噪聲上的表現(xiàn)較好[6]。
針對藏語的去噪算法的研究目前較少。2017年,代龍翔等人將譜減法用于藏語語音降噪[7]。2018 年,都格草等人也研究了基于譜減法的降噪算法,他們的實驗結(jié)果得出,使用譜減法能夠明顯提升語音質(zhì)量[8]。同年,代龍翔針對傳統(tǒng)方法存在的一些問題,展開了基于神經(jīng)網(wǎng)絡(luò)的語音去噪算法研究,將深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNN)用于語音去噪[9]。2021 年,陳丹提出基于注意力機制級聯(lián)卷積神經(jīng)網(wǎng)絡(luò)的藏語語音去噪方法,該方法可以自動學(xué)習(xí)帶噪語音與純凈語音的映射關(guān)系,能有效提高語音的質(zhì)量[10]。
綜上,目前專門針對藏語語音去噪算法的研究較少,而利用深度學(xué)習(xí)實現(xiàn)藏語語音去噪的更是寥寥無幾。所以,研究針對藏語語音的去噪算法具有可行性。在深度學(xué)習(xí)飛速發(fā)展的今天,研究深度學(xué)習(xí)方法在藏語語音去噪方面的應(yīng)用勢在必行。
本研究采用藏語中的拉薩語作為研究對象。本文使用特征映射的方法,將提取到的特征送入卷積長短期記憶網(wǎng)絡(luò),使得帶噪語音的功率譜與純凈語音的功率譜在網(wǎng)絡(luò)學(xué)習(xí)過程中形成映射,從而達到去噪的目的。整個算法主要包含4 個功能模塊,分別是數(shù)據(jù)準備模塊、特征提取模塊、網(wǎng)絡(luò)模塊以及音頻還原模塊。
本文使用的數(shù)據(jù)集是在拉薩、山南、日喀則等地,共尋找18 個人錄制的,包括12 個男生和6 個女生。錄制的藏語語音頻率為44 100 Hz。噪聲選擇的是NOISE-92 數(shù)據(jù)集中的其中六條,分別為babble,buccaneer2,destory,factory2,volvo,white。噪音頻率也處理成44 100 Hz。
將上述噪聲分別按照信噪比(Signal-Noise Ratio,SNR)-5 dB,0 dB,5 dB,10 dB,15 dB,20 dB 與純凈語音混合得到帶噪語音。其中信噪比的計算方式為:
式中:SNR 表示信噪比,單位為分貝(dB),Ps為信號功率,Pn為噪聲功率,As為信號幅度值,An為噪聲幅度值。
通過信噪比公式可以推算出所加噪聲的計算方式為:
式中:n+表示所加噪聲,nin表示原始噪聲,sin表示原始語音。
然后將按照信噪比計算得出的噪音與原始純凈語音混合,混合方式為:
式中:s+表示帶噪語音。
通過上述數(shù)據(jù)準備,可以得到一系列帶噪語音和純凈語音對。
本研究采用頻譜映射的方式進行語音去噪。采用該方式會遇到兩個主要的問題。首先,直接將語音進行傅里葉變換所生成的頻譜會使得出現(xiàn)的數(shù)據(jù)差距很大,不利于網(wǎng)絡(luò)模型訓(xùn)練;其次,如果訓(xùn)練過程直接采用一對一映射的方式,會使得網(wǎng)絡(luò)訓(xùn)練速度較慢且映射關(guān)系過于復(fù)雜,不利于網(wǎng)絡(luò)自行學(xué)習(xí)。為了解決這兩個問題,首先選用對數(shù)功率譜代替頻譜,其次利用拼幀的方法代替一對一映射。
1.2.1 特征提取
將帶噪語音和純凈語音做傅里葉變換,變換公式如下:
式中:N表示序列長度,n表示第n點,k表示第k點,s+(n)表示帶噪語音序列,S+(k)表示帶噪語音的頻譜,sin(n)表示純凈語音序列,Sin(k)表示純凈語音頻譜。將式(4)和式(5)得到的頻譜取對數(shù),具體計算方式如下:
式(6)和式(7)得到的S+LPS(k)和SinLPS(k)分別為帶噪語音和純凈語音的對數(shù)功率譜(Logarithmic Power Spectrum,LPS)。
1.2.2 拼 幀
拼幀操作的基本原理是,利用連續(xù)的幾幀來預(yù)測中間的一幀,如圖1 所示。
圖1 拼幀原理圖
圖1 以連續(xù)的六幀作為范例展示,更長的幀原理與之一樣。
本研究采用的網(wǎng)絡(luò)是卷積長短期記憶網(wǎng)絡(luò)(Convolutional Long Short-Term Memory Networks,CLSTM)。研究表明,卷積網(wǎng)絡(luò)和長短期記憶網(wǎng)絡(luò)的結(jié)合,有利于處理時間預(yù)測序列,比如語音序列。
經(jīng)過試驗,搭建了適用于藏語語音去噪的網(wǎng)絡(luò)模型,其模型結(jié)構(gòu)如圖2 所示。
圖2 網(wǎng)絡(luò)模型圖
在該模型中,將加噪后語音的對數(shù)功率譜和純凈語音的對數(shù)功率譜均做歸一化處理,這樣使得網(wǎng)絡(luò)收斂的速度更快;然后將帶噪語音的對數(shù)功率譜送入由四層一維卷積神經(jīng)網(wǎng)絡(luò)和一層長短期記憶網(wǎng)絡(luò)組成的網(wǎng)絡(luò)中進行訓(xùn)練。這里選用一維卷積神經(jīng)網(wǎng)絡(luò)是因為一維卷積神經(jīng)網(wǎng)絡(luò)相對于二維卷積神經(jīng)網(wǎng)絡(luò)具備反映語音信號時變性的特征[11]。選用長短期記憶網(wǎng)絡(luò)而不選用循環(huán)神經(jīng)網(wǎng)絡(luò),是為了預(yù)防梯度消失問題[12]。
音頻還原模塊主要實現(xiàn)的是將預(yù)測到的純凈語音還原為時序信號,并生成.wav 文件。在本研究中,數(shù)據(jù)還原主要進行如下步驟。
(1)根據(jù)Bachnormal 將訓(xùn)練后的數(shù)據(jù)還原到對數(shù)功率譜數(shù)據(jù)。前文有說過,為了使網(wǎng)絡(luò)收斂得更快,對數(shù)據(jù)進行了歸一化。因此首先要將去噪后的語音還原為對數(shù)功率譜形式。歸一化的計算方式為:
式中:x和y分別表示歸一化前的數(shù)據(jù)和歸一化后的數(shù)據(jù),E(x)表示x的均值,Var(x)表示x的方差,γ和β分別表示訓(xùn)練的權(quán)重和偏移。
由式(8)可以推出原本數(shù)據(jù)x的計算方式為:
(2)得到去噪后語音的幅度值A(chǔ)enh。其計算方式為:
(3)得到去噪后的相位φ。去噪后語音的相位與噪音的相位一致。
(4)還原去噪后藏語語音的頻譜Fenh。其計算方式為:
(5)進行傅里葉反變換,得到時域信號。其計算方式為:
式中:N,n和k的含義見式(5)的介紹,senh(n)表示去噪后的時域信號,F(xiàn)enh(k)表示去噪后的頻譜。
根據(jù)上述步驟,就可以得到去噪后的語音。
綜上,整個算法模塊的流程如圖3 所示。
圖3 算法流程圖
在信噪比為-5 dB 情況下,去噪后的語譜如圖4 和圖5 所示。在信噪比為0 dB 的情況下,去噪后的語譜如圖6 和圖7 所示。在信噪比為5 dB 情況下,去噪后的語譜如圖8 和圖9 所示。在信噪比為10 dB的情況下,去噪后的語譜如圖10和圖11所示。在信噪比為15 dB 的情況下,去噪后的語譜如圖12和圖13 所示。在信噪比為20 dB 的情況下,去噪后的語譜如圖14 和圖15 所示。
圖4 -5 dB 時babble 噪聲去噪圖
圖5 -5 dB 時white 噪聲去噪圖
圖6 0 dB 時babble 噪聲去噪圖
圖7 0 dB 時white 噪聲去噪圖
圖8 5 dB 時babble 噪聲去噪圖
圖9 5 dB 時white 噪聲去噪圖
圖10 10 dB 時babble 噪聲去噪圖
圖11 10 dB 時white 噪聲去噪圖
圖12 15 dB 時babble 噪聲去噪圖
圖13 15 dB 時white 噪聲去噪圖
圖14 20 dB 時babble 噪聲去噪圖
圖15 20 dB 時white 噪聲去噪圖
這些圖中,最上面的是純凈語音的語譜圖,中間的是帶噪聲的語譜圖,最下面的是去噪之后的語譜圖。由于空間有限,因此只放了人聲為噪音和白噪聲為噪音兩種情況下的去噪圖譜。
本文主要使用可感知語音質(zhì)量(Perceptual Estimation of Speech Quality,PESQ)和短時客觀可懂度(Short-Time Objective Intelligibility,STOI)兩個指標來評判模型的好壞。在同一信噪比情況下,不同噪聲的兩個指標值如表1 所示。
從表1 可以看出,在同一種信噪比情況下,除了5 dB 時,其他信噪比情況下平穩(wěn)噪聲去噪后的可感知語音質(zhì)量均沒有非平穩(wěn)噪聲的高,即在該算法下,去噪后的語音質(zhì)量非平穩(wěn)噪聲要高于平穩(wěn)噪聲。同樣可以看出,非平穩(wěn)噪聲去噪后的短時客觀可懂度要高于平穩(wěn)噪聲,即在該算法下,去噪后語音的可懂性非平穩(wěn)噪聲要高于平穩(wěn)噪聲。
表1 同一信噪比時各噪聲評價表
在同一噪聲情況下,不同信噪比的兩個指標如表2 和表3 所示。從表2 和表3 可以看出,不論在非平穩(wěn)噪聲還是在平穩(wěn)噪聲條件下,信噪比越大,去噪效果越好,即去噪后語音質(zhì)量越高,語音可懂性也越高。
表2 babble 噪聲時各信噪比評價表
表3 white 噪聲時各信噪比評價表
在低信噪比(-5 dB 和0 dB)條件下,使用同一測試集測試卷積長短期記憶網(wǎng)絡(luò)方法、譜減法和最小均方誤差法,所得兩個指標的均值如表4 所示。為了更加直觀地觀察表4 中的數(shù)據(jù),將表4 中的數(shù)據(jù)以圖16 表示。
從表4 和圖16 可以觀察出,在低信噪比條件下,與譜減法和最小均方誤差法相比,卷積長短期記憶網(wǎng)絡(luò)方法在非平穩(wěn)噪聲去噪方面的可感知語音質(zhì)量和短時客觀可懂度得分更高,而在平穩(wěn)噪聲下可感知語音質(zhì)量得分更高,短時客觀可懂度得分只在-5 dB 時更高。可以得出,在低信噪比條件下,卷積長短期記憶網(wǎng)絡(luò)方法在非平穩(wěn)噪聲的去噪方面要優(yōu)于譜減法和最小均方誤差法;在平穩(wěn)噪聲的去噪方面,其去噪后語音的質(zhì)量更好。
圖16 不同方法評價柱狀圖
表4 不同方法的評價表
通過同一信噪比條件下不同噪聲的對比和同一噪聲下不同信噪比的指標對比得出,在該算法下,加了非平穩(wěn)噪聲藏語語音的去噪效果要比加了平穩(wěn)噪音藏語語音的去噪效果好,且信噪比越大,去噪效果越好;通過與譜減法和最小均方誤差方法去噪效果對比得出,低信噪比條件下,卷積長短期記憶網(wǎng)絡(luò)方法在非平穩(wěn)噪聲的去噪方面要優(yōu)于譜減法和最小均方誤差法;在平穩(wěn)噪聲的去噪方面,其去噪后語音的質(zhì)量更好。
語音去噪算法的研究是語音研究工作的重要一環(huán)。本文主要針對藏語中拉薩語語音的去噪算法進行研究,提出了一種基于頻譜映射的卷積長短期記憶去噪算法,并用可感知語音質(zhì)量和短時客觀可懂度指標對去噪后語音的質(zhì)量和語音的可懂性進行了對比分析。
本文所用語料庫僅有拉薩語,以后的研究可以拓寬語料庫的種類,加入其他藏語的方言進行研究。本文在加噪時只選用了單一噪聲添加,在以后的研究中可以考慮選擇多種噪聲進行添加。在本研究中,算法的兩個指標的值多數(shù)都在1.1 和0.6 左右,還有提高的空間,后面考慮再對該算法進行改進,以提高去噪效果。本研究采用的是頻譜映射的方式進行語音去噪,在后面的研究中會嘗試采用時頻掩膜的方式進行去噪。