盧 勇 舒 濤
(中國(guó)民用航空飛行學(xué)院空管中心 四川 廣漢 618307)
隨著科學(xué)技術(shù)的發(fā)展,語音增強(qiáng)算法在眾多領(lǐng)域都有廣泛應(yīng)用。移動(dòng)電話在進(jìn)行語音通話時(shí),發(fā)送端往往帶有背景噪聲,這些噪聲會(huì)嚴(yán)重影響通話質(zhì)量,為了改善語音質(zhì)量,需要在聲碼器對(duì)語音進(jìn)行壓縮之前用語音增強(qiáng)算法作預(yù)處理[1]。在民航系統(tǒng)中,地空通信顯得尤為重要,但是在通信時(shí),飛機(jī)發(fā)動(dòng)機(jī)周期性的噪聲和機(jī)械振動(dòng)引起的噪聲會(huì)對(duì)飛行員的通話形成嚴(yán)重干擾,這時(shí)需要在帶噪語音被放大之前用語音增強(qiáng)算法對(duì)其進(jìn)行預(yù)處理,以改善語音質(zhì)量及可懂度[2]。語音增強(qiáng)算法的目的就是去除含噪語音中的噪聲,提高語音的質(zhì)量和可懂度。
傳統(tǒng)的語音增強(qiáng)算法有維納濾波法、譜減法、基于統(tǒng)計(jì)模型的方法和子空間算法等一系列算法,但是這些算法只適用于平穩(wěn)的噪聲環(huán)境中,對(duì)于非平穩(wěn)噪聲信號(hào)不能進(jìn)行有效抑制,而且在去噪過程中還會(huì)引入音樂噪聲導(dǎo)致語音失真[3]。近些年來,基于深度學(xué)習(xí)的語音處理技術(shù)逐漸興起,它不需要假設(shè)語音與噪聲相互獨(dú)立,而且可以有效抑制非平穩(wěn)噪聲[4],在改善語音質(zhì)量方面取得了不錯(cuò)效果,但并沒有提高語音的可懂度。語音增強(qiáng)算法在降噪過程中,對(duì)噪聲譜的估計(jì)非常重要,如果估計(jì)太小,可能還會(huì)有殘留噪聲;如果估計(jì)太大,可能會(huì)去除有效成分,導(dǎo)致語音失真,造成語音可懂度的損傷。估計(jì)噪聲最簡(jiǎn)單的方法是話音活動(dòng)檢測(cè)(Voice Activity Detection,VAD)算法,它是利用從輸入信號(hào)提取的一些特征與無語音段得到的某個(gè)閾值進(jìn)行比較來估計(jì)和更新噪聲功率,但是在非平穩(wěn)的信號(hào)中難以達(dá)到理想結(jié)果[5]。最小值統(tǒng)計(jì)(Minimum Statistics,MS)噪聲估計(jì)算法是在一個(gè)有限長(zhǎng)窗內(nèi)對(duì)帶噪語音功率譜的最小值進(jìn)行跟蹤,并將最小值作為噪聲的估計(jì)值[6]。最小值控制的遞歸平均(Minima-Controlled Recursive Averaging,MCRA)算法是利用噪聲譜估計(jì)的最小值來控制語音存在的條件概率和噪聲估計(jì)中使用的時(shí)間平滑因子[7]。改進(jìn)的最小值控制的遞歸平均(Improved Minima-Controlled Recursive Averaging,IMCRA)算法在計(jì)算語音存在的概率時(shí)是通過語音不存在的先驗(yàn)估計(jì)概率得到的[8]。此外,很多學(xué)者在這些算法的基礎(chǔ)之上進(jìn)行了改進(jìn),如在IMCRA算法中加入了最優(yōu)平滑因子,用連續(xù)最小值跟蹤取代在固定窗內(nèi)的最小值搜索,這些改進(jìn)在改善語音質(zhì)量方面取得了一定效果,但是并沒有提高語音的可懂度,反而在語音去噪時(shí)引入了失真,進(jìn)一步損傷了語音的可懂度,因此需要設(shè)計(jì)一種算法,在改善語音質(zhì)量的同時(shí)又能提高語音的可懂度。
為了解決以上問題,本文提出基于SNRESI信道選擇的改進(jìn)IMCRA語音增強(qiáng)算法,該算法首先利用基于統(tǒng)計(jì)模型的方法結(jié)合IMCRA估計(jì)的噪聲功率譜對(duì)帶噪語音進(jìn)行降噪,然后再根據(jù)SNRESI準(zhǔn)則保留衰減失真的有用信號(hào),進(jìn)而提高整個(gè)頻帶的信噪比和可懂度。
大部分語音增強(qiáng)算法無法準(zhǔn)確估計(jì)背景噪聲頻譜,并且在降噪過程中引入了失真導(dǎo)致無法提高語音的可懂度。在某些情況下,引入的語音失真可能比背景噪聲更具破壞性[9]。為了分析由降噪算法引入的失真對(duì)可懂度的影響,需要建立失真與可懂度之間的關(guān)系,頻率加權(quán)分段信噪比(fwSNRseg)與噪聲抑制語音的可懂度高度相關(guān)[10],具體公式如下:
式中:W(k,t)表示第k個(gè)頻帶的權(quán)重值;K表示頻帶數(shù)量;M表示信號(hào)的總幀數(shù)。
將式(2)中分子分母同除以X2(k,t),得到:
圖1 SNRESI度量圖
區(qū)域I和區(qū)域II的并集(稱為區(qū)域I+II),有以下約束:
假定帶噪語音信號(hào)y(n)由純凈信號(hào)x(n)和噪聲信號(hào)d(n)組成,即:
y(n)=x(n)+d(n)
(6)
兩邊進(jìn)行分幀加窗和傅里葉變換得到:
Y(λ,k)=X(λ,k)+D(λ,k)
(7)
式中:λ表示幀數(shù);k表示頻點(diǎn)。
IMCRA算法是基于時(shí)間遞歸平均來對(duì)噪聲譜進(jìn)行估計(jì),噪聲估計(jì)形式如下:
在IMCRA算法中,平滑因子αd(λ,k)由語音存在概率決定,語音存在概率需要通過兩次迭代計(jì)算得到。第一次迭代主要是對(duì)各頻點(diǎn)進(jìn)行粗略的話音活動(dòng)檢測(cè)以此來判決語音活性,第二次迭代是通過時(shí)頻平滑去除相對(duì)較強(qiáng)的語音分量,得出更準(zhǔn)確的語音存在概率。
第一次迭代:
首先對(duì)帶噪語音的功率譜做平滑估計(jì),估計(jì)方式如下:
S(λ,k)=αsS(λ-1,k)+(1-αs)Sf(λ,k)
(9)
式中:αs為平滑因子。
式中:w(i)為窗函數(shù),窗長(zhǎng)為2Lw+1。當(dāng)前幀的最小值Smin(λ,k)采用在D幀的固定窗長(zhǎng)內(nèi)進(jìn)行最小值統(tǒng)計(jì)得到。
通過搜索得到Smin(λ,k)后,然后判決語音的存在性,判決規(guī)則如下:
第二次迭代:
這次迭代主要針對(duì)已經(jīng)被判斷為噪聲的頻率分量,平滑過程如下:
(12)
(14)
計(jì)算出不存在概率q(λ,k)后,可以通過以下計(jì)算得出語音存在概率p(λ,k):
式中:v(λ,k)=γk(λ)ξk(λ)/(1+ξk(λ)),γk(λ)和ξk(λ)分別為頻點(diǎn)k的后驗(yàn)和先驗(yàn)SNR。計(jì)算出p(λ,k)之后,就可以更新本幀的噪聲功率譜估計(jì)值。此外,為了最小化語音失真,引入了一個(gè)偏差補(bǔ)償因子:
式中:β為常數(shù)1.47。
在IMCRA算法中,計(jì)算平滑功率密度譜的最小值Smin(λ,k)都是在固定窗內(nèi)進(jìn)行搜索,這種方法容易延遲,不能快速響應(yīng)噪聲譜的變換,因此在改進(jìn)的IMCRA算法中使用連續(xù)最小值跟蹤算法來計(jì)算Smin(λ,k)[12],定義如下:
ifSmin(λ-1,k)
βS(λ-1,k))
(17)
else
Smin(λ,k)=S(λ,k)
end
式中:β=0.96;γ=0.998。
式中:β=1.47;θ為經(jīng)驗(yàn)函數(shù)。
本文首先利用基于統(tǒng)計(jì)模型的方法結(jié)合估計(jì)的噪聲功率譜對(duì)帶噪語音進(jìn)行降噪,然后再根據(jù)SNRESI準(zhǔn)則,保留衰減失真的有用信道,消除放大失真的不利信道,最后對(duì)通過有用信道的信號(hào)進(jìn)行合成得到增強(qiáng)的語音信號(hào)。整體算法的一般步驟如下:
(1) 頻譜分解:帶噪語音信號(hào)通過短時(shí)幀加窗和傅里葉變換得到Y(jié)(k,t),Y(k,t)表示第t幀第k個(gè)頻帶的帶噪信號(hào)頻譜。
(3) 信道選擇:通過SNRESI準(zhǔn)則,只允許SNRESI>1的信道通過,消除放大失真的信道,得到通過選定信道的語音增強(qiáng)信號(hào)頻譜XC(k,t)。
(4) 信號(hào)合成:對(duì)通過選定信道的信號(hào)頻譜XC(k,t)進(jìn)行傅里葉逆變換重構(gòu)信號(hào),最終得到增強(qiáng)語音信號(hào)。
整體算法的流程如圖2所示。
圖2 基于SNRESI信道選擇的改進(jìn)IMCRA語音增強(qiáng)算法流程
語音質(zhì)量評(píng)估標(biāo)準(zhǔn)有主觀音質(zhì)測(cè)度和客觀音質(zhì)測(cè)度兩種方法。主觀測(cè)度是比較原始純凈語音和處理后增強(qiáng)語音的音質(zhì),并按照預(yù)設(shè)好的等級(jí)標(biāo)準(zhǔn)對(duì)增強(qiáng)后語音的音質(zhì)進(jìn)行評(píng)分;客觀測(cè)度是用數(shù)值對(duì)原始純凈語音和處理后增強(qiáng)語音的音質(zhì)進(jìn)行量化對(duì)比[13]。本文客觀測(cè)度采用分段信噪比(SNRseg)和感知語音質(zhì)量評(píng)估(PESQ)標(biāo)準(zhǔn),主觀測(cè)度采用ITU-T P.835[14]評(píng)價(jià)標(biāo)準(zhǔn)。ITU-T P.835評(píng)價(jià)增強(qiáng)語音信號(hào)有如下方面:
(1) 僅語音信號(hào),使用五分制信號(hào)失真(SIG)量表,1代表嚴(yán)重失真,2代表明顯失真,3代表有些失真,4代表幾乎不失真,5代表無失真。
(2) 僅背景噪聲,使用五分制背景失真(BAK)量表,1代表十分明顯且十分煩擾,2代表明顯且煩擾,3代表可覺察但不煩擾,4代表有些覺察,5代表不可覺察。
(3) 整體效果,采用平均意見得分(OVL)量表,1代表很差,2代表差,3代表一般,4代表好,5代表非常好。
本文采用的實(shí)驗(yàn)數(shù)據(jù)來自NOIZEUS噪聲語音庫(kù)[15],該語音庫(kù)中包含30個(gè)由不同人員發(fā)音的純凈語句,噪聲信號(hào)包括來自人群、機(jī)場(chǎng)、餐廳、汽車、街道等不同地方的錄音。仿真實(shí)驗(yàn)時(shí),噪聲分別按照0 dB、5 dB、10 dB、15 dB的不同信噪比添加到純凈語音中,然后再利用語音增強(qiáng)算法進(jìn)行去噪。為了驗(yàn)證在非平穩(wěn)噪聲環(huán)境中的去噪效果,本文隨機(jī)選擇了三段純凈語音sp01.wav、sp07.wav和sp10.wav,分別疊加人群、機(jī)場(chǎng)、餐廳、汽車、街道等不同類型的噪聲,然后再利用改進(jìn)的IMCRA算法、基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的語音增強(qiáng)算法和本文算法對(duì)其進(jìn)行去噪處理。通過主客觀測(cè)度來評(píng)價(jià)三種算法的去噪效果。去噪處理時(shí),語音采樣頻率為8 kHz,短時(shí)幀為320個(gè)樣本點(diǎn),使用漢明窗加窗處理,F(xiàn)FT的分析點(diǎn)數(shù)為640。
圖3表示純凈語音sp01.wav疊加0 dB、5 dB、10 dB、15 dB四種不同信噪比的人群背景噪聲,分別采用改進(jìn)的IMCRA算法、基于CNN的語音增強(qiáng)算法和本文算法得到的SIG、BAK、OVL評(píng)分等級(jí)??梢钥闯?,對(duì)于四種不同信噪比的人群背景噪聲,三種算法都有一定的去噪效果,但采用本文算法后得到的SIG、BAK、OVL評(píng)分最高,其次是基于CNN的語音增強(qiáng)算法,最后是改進(jìn)的IMCRA算法,說明本文算法在降噪和引入失真方面效果更好,進(jìn)一步提高了語音的質(zhì)量和可懂度。
(a) 0 dB人群噪聲
(b) 5 dB人群噪聲
(c) 10 dB人群噪聲
(d) 15 dB人群噪聲圖3 不同信噪比的人群背景噪聲下采用三種算法得到的SIG、BAK、OVL評(píng)分
為了驗(yàn)證本文算法在各種非平穩(wěn)環(huán)境下的去噪效果,進(jìn)一步選取純凈語音sp07.wav,分別疊加0 dB、5 dB、10 dB、15 dB四種不同信噪比的機(jī)場(chǎng)、餐廳、汽車三種背景噪聲,分別采用改進(jìn)的IMCRA算法、基于CNN的語音增強(qiáng)算法和本文算法進(jìn)行語音去噪處理,去噪后得到的SNRseg和PESQ得分情況如表1所示。
表1 不同信噪比輸入下的不同類型噪聲語音增強(qiáng)后的SNRseg和PESQ得分情況
可以看出,在不同信噪比的不同背景噪聲下,針對(duì)同一類型的噪聲輸入,相比其他兩種算法,本文算法在SNRseg和PESQ得分方面均最高,說明本文算法在語音增強(qiáng)方面更好,進(jìn)一步提高了語音的質(zhì)量和可懂度。另外,在低信噪比的機(jī)場(chǎng)、餐廳背景噪聲下,基于CNN的語音增強(qiáng)算法在PESQ方面要好于改進(jìn)的IMCRA算法,但是在SNRseg方面要低于改進(jìn)的IMCRA算法;在高信噪比的機(jī)場(chǎng)、餐廳背景噪聲下和在汽車背景噪聲下,改進(jìn)的IMCRA算法要好于基于CNN的語音增強(qiáng)算法。以上說明,改進(jìn)的IMCRA算法和基于CNN的算法在語音增強(qiáng)方面各有利弊,本文算法效果最好。
圖4表示純凈語音sp10.wav受到輸入信噪比為0 dB的非平穩(wěn)街道噪聲干擾時(shí),分別使用改進(jìn)的IMCRA算法、基于CNN的算法和本文算法后得到的增強(qiáng)語音時(shí)域波形圖??梢钥闯?,純凈語音受到噪聲干擾后,出現(xiàn)了許多毛刺,通過三種語音增強(qiáng)算法后,波形都有明顯改善,但是采用本文算法得到的波形和純凈語音波形最接近,說明本文算法的去噪效果最好。相比本文算法,改進(jìn)的IMCRA算法和基于CNN的算法在去噪過程中引入了失真,去除了部分有用信息,而且在末尾階段還殘留了部分噪聲,使語音質(zhì)量和可懂度受到影響。通過增強(qiáng)語音時(shí)域波形圖對(duì)比,進(jìn)一步說明了本文算法對(duì)語音的質(zhì)量和可懂度均有所提高。
(a) 純凈語音波形
(b) 帶噪語音波形
(c) 改進(jìn)的IMCRA算法語音波形
(d) 基于CNN算法語音波形
(e) 本文算法語音波形圖4 純凈語音、帶噪語音和增強(qiáng)語音時(shí)域波形圖
傳統(tǒng)的語音增強(qiáng)算法主要對(duì)語音質(zhì)量進(jìn)行改善,但是在改善質(zhì)量的同時(shí)引入了失真,使語音可懂度受到影響,為了能提高語音的質(zhì)量和可懂度,本文提出基于SNRESI信道選擇的改進(jìn)IMCRA語音增強(qiáng)算法。該算法首先利用基于統(tǒng)計(jì)模型的方法結(jié)合估計(jì)的噪聲功率譜對(duì)帶噪語音進(jìn)行降噪,然后再根據(jù)SNRESI準(zhǔn)則保留衰減失真的有用信道,最終對(duì)通過有用信道的信號(hào)進(jìn)行合成得到增強(qiáng)的語音信號(hào)。本文對(duì)比分析了在不同信噪比、不同噪聲環(huán)境下采用不同語音增強(qiáng)算法后得到的SIG、BAK、OVL評(píng)分和分段信噪比SNRseg、PESQ得分,結(jié)果表明本文算法在語音增強(qiáng)方面有更好的效果,進(jìn)一步提高了語音的質(zhì)量和可懂度。