覃貴禮, 羅云芳, 潘澤鍇
(廣西職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)與電子信息工程系, 廣西 南寧 530226)
?
基于譜相減改進(jìn)算法的語(yǔ)音增強(qiáng)系統(tǒng)的實(shí)現(xiàn)研究
覃貴禮, 羅云芳, 潘澤鍇
(廣西職業(yè)技術(shù)學(xué)院計(jì)算機(jī)與電子信息工程系, 廣西南寧530226)
針對(duì)數(shù)字通信網(wǎng)絡(luò)中廣泛應(yīng)用的語(yǔ)音增強(qiáng)處理,在原有譜相減算法語(yǔ)音增強(qiáng)處理原理基礎(chǔ)上改進(jìn)該算法,并基于改進(jìn)的譜相減算法采用MATLAB軟件開(kāi)發(fā)設(shè)計(jì)語(yǔ)音增強(qiáng)處理系統(tǒng),經(jīng)過(guò)測(cè)試表明系統(tǒng)能很好地實(shí)現(xiàn)帶噪語(yǔ)音增強(qiáng)處理,聲音的質(zhì)量和可懂度提高效果顯著。
譜相減改進(jìn)算法;語(yǔ)音增強(qiáng);信噪比;MATLAB
隨著人類(lèi)制造出各種各樣的機(jī)器,人與機(jī)器的交流慢慢地變成一種迫切的需求,人們的語(yǔ)音交流方式移植到人與機(jī)器之間并成了一種主流技術(shù),也為人們提供了一種便利[1]。在數(shù)字技術(shù)發(fā)展和適應(yīng)人們隨時(shí)隨地辦公娛樂(lè)趨勢(shì)的影響下,語(yǔ)音技術(shù)也得到了長(zhǎng)足的發(fā)展,語(yǔ)音識(shí)別技術(shù)在人機(jī)交互的場(chǎng)合也得到了廣泛的應(yīng)用,在某些領(lǐng)域,機(jī)器已經(jīng)能很好地理解人類(lèi)語(yǔ)音的信息,準(zhǔn)確的識(shí)別出人類(lèi)語(yǔ)音的內(nèi)容,并且經(jīng)過(guò)數(shù)字信號(hào)處理的方式把獲取的信息返回給執(zhí)行機(jī)構(gòu)完成相應(yīng)的動(dòng)作,從而實(shí)現(xiàn)人機(jī)交互的自然語(yǔ)言通信功能[2]。但在某些實(shí)際的應(yīng)用中,傳輸距離和各種外界噪聲因素會(huì)對(duì)傳輸?shù)恼Z(yǔ)言信號(hào)的強(qiáng)度和清晰度造成嚴(yán)重的干擾,同時(shí)受接收時(shí)各類(lèi)硬件質(zhì)量的影響,很多語(yǔ)音信號(hào)不能很好地識(shí)別,造成人機(jī)不能很好地交互。因此,利用數(shù)字技術(shù)把語(yǔ)音進(jìn)行數(shù)字化處理以后,再利用語(yǔ)音處理算法對(duì)其進(jìn)行增強(qiáng)處理,可提高語(yǔ)音的抗干擾性和可讀性[3]。本文對(duì)語(yǔ)音信號(hào)的增強(qiáng)原理進(jìn)行分析,設(shè)計(jì)了基于譜相減改進(jìn)算法的語(yǔ)音增強(qiáng)系統(tǒng),并詳細(xì)闡述了系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)方法。
1.1經(jīng)典譜相語(yǔ)音增強(qiáng)減算法
經(jīng)典的譜相減算法是在頻域的范圍內(nèi),語(yǔ)音的功率譜估計(jì)值使用帶噪語(yǔ)音功率譜減去噪聲的功率譜得到,語(yǔ)音的幅度通過(guò)對(duì)語(yǔ)音的功率估計(jì)開(kāi)方得到,將其相位恢復(fù)后再采用逆傅立葉變換恢復(fù)時(shí)域信號(hào),而在相位恢復(fù)中的相位信息包含在帶噪語(yǔ)音當(dāng)中[4]。
在經(jīng)典譜相減算法數(shù)學(xué)建模中,s(m)、n(m)、和y(m)分別代表語(yǔ)音、噪聲和帶噪語(yǔ)音,Ss(ω)、Sn(ω)和Sy(ω)則表示短時(shí)譜,則帶噪語(yǔ)音信號(hào)可以表示為:
y(m)=s(m)+n(m)(1)
對(duì)式(1)進(jìn)行加窗處理并對(duì)其兩邊進(jìn)行傅里葉變換可以得到:
Yw(ω)=Sw(ω)+Nw(ω)(2)
在原來(lái)假設(shè)s(m)中和n(m)是相互獨(dú)立的個(gè)體,則根據(jù)式(2)可以得到原來(lái)的語(yǔ)音估值為:

因?yàn)樵肼暿蔷植科椒€(wěn)的,故可以認(rèn)為發(fā)音前的噪聲與發(fā)音期間的噪聲功率譜相同,因而可以利用發(fā)語(yǔ)音前的“寂靜幀”來(lái)估計(jì)噪聲。在語(yǔ)音的頻域中,使用式(3)可以純凈語(yǔ)音的譜估計(jì),實(shí)現(xiàn)簡(jiǎn)單的語(yǔ)音增強(qiáng)功能,但是實(shí)現(xiàn)的語(yǔ)音增強(qiáng)效果不是很明顯,對(duì)于復(fù)雜的噪聲無(wú)能為力。
1.2改進(jìn)譜相減語(yǔ)音增強(qiáng)算法
根據(jù)譜相減算法實(shí)現(xiàn)語(yǔ)音增強(qiáng)的原理,其實(shí)現(xiàn)語(yǔ)音增強(qiáng)的數(shù)學(xué)表達(dá)式為:


式中,m表示x的平均值,σ表示標(biāo)準(zhǔn)偏差。噪聲的幀功率譜是在很寬的范圍內(nèi)隨機(jī)變化的,變化頻域幀功率譜中的最大值與最小值的比值很大,可以達(dá)到幾個(gè)數(shù)量級(jí),最大值與平均值之間的比值也很大,有倍。因此,在語(yǔ)音增強(qiáng)處理去噪時(shí),會(huì)殘留較大功率譜相關(guān)分量的一些剩余部分,這些剩余殘留在頻譜上會(huì)出現(xiàn)隨機(jī)的尖峰,形成聽(tīng)覺(jué)上的殘留噪聲。


圖1 譜相減改進(jìn)算法實(shí)現(xiàn)語(yǔ)音增強(qiáng)原理圖
結(jié)合式(4)和式(5)得到譜相減改進(jìn)算法語(yǔ)音增強(qiáng)的計(jì)算式:

在譜相減語(yǔ)音增強(qiáng)算法計(jì)算模型中,通過(guò)改變a和β兩個(gè)參數(shù),能使算法在實(shí)現(xiàn)上具有很好的靈活性,通過(guò)靈活改變a和β參數(shù)的值正是譜相減語(yǔ)音增強(qiáng)處理算法改進(jìn)的一種有效實(shí)現(xiàn)方式。本文即通過(guò)改變和參數(shù)的值進(jìn)行譜相減語(yǔ)音增強(qiáng)處理算法的改進(jìn),并將改進(jìn)后的算法用于語(yǔ)音增強(qiáng)處理[6]。算法模型中的參數(shù)表示譜減功率修正系數(shù),取值越大,進(jìn)行語(yǔ)音增強(qiáng)處理時(shí),信噪比值越高,但同時(shí)也會(huì)加大原始語(yǔ)音信號(hào)的失真率。參數(shù)表示譜減噪聲系數(shù),它的取值會(huì)影響被減噪聲功率譜值,β取值越大,增強(qiáng)處理后的語(yǔ)音音樂(lè)噪聲越少,能在一定程度上更好的突出語(yǔ)音頻譜,但同時(shí)也會(huì)加大原始語(yǔ)音信號(hào)的失真率。
計(jì)算模型中,當(dāng)確定參數(shù)a和β的取值后,在利用算法模型進(jìn)行語(yǔ)音增強(qiáng)處理過(guò)程中就一直不會(huì)改變,這與實(shí)際的語(yǔ)音增強(qiáng)處理不符,因?yàn)樵谡Z(yǔ)音增強(qiáng)處理過(guò)程中,需要在噪聲頻段中減去功率較大的噪聲,實(shí)現(xiàn)提高信噪比的目的,而為了保證原始帶噪語(yǔ)音中更多的清音,往往在帶噪語(yǔ)音段中減去的噪聲功率譜較小,實(shí)現(xiàn)提高增強(qiáng)處理后語(yǔ)音的可懂度。所以在實(shí)際的語(yǔ)音增強(qiáng)處理過(guò)程中應(yīng)根據(jù)處理語(yǔ)音的頻率段和語(yǔ)音幀動(dòng)態(tài)調(diào)整a和β參數(shù)的取值。在處理的語(yǔ)音信噪比較低時(shí),根據(jù)原始帶噪語(yǔ)音幀頻譜功率與噪聲幀頻譜功率的比值進(jìn)行動(dòng)態(tài)改變參數(shù)和值,語(yǔ)音處理后能較大程度的提高信噪比,同時(shí)又能最大程度的去除音樂(lè)噪聲和減少語(yǔ)音的失真度,使增強(qiáng)處理后的語(yǔ)音更符合人耳聽(tīng)覺(jué)范圍,保證語(yǔ)音增強(qiáng)處理的可懂度和清晰度。
系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)主要分為原始語(yǔ)音和噪聲的準(zhǔn)備,語(yǔ)音信號(hào)增強(qiáng)處理時(shí)輸入語(yǔ)音信號(hào)的確定,對(duì)輸入的語(yǔ)音信號(hào)進(jìn)行增強(qiáng)處理程序功能實(shí)現(xiàn)等幾部分。系統(tǒng)用于測(cè)試的原始語(yǔ)音采用格式8 kHz,16 bit,選取相對(duì)安靜不帶噪音的環(huán)境,利用單聲道錄制的一段純凈語(yǔ)音,時(shí)間大約5 s。系統(tǒng)設(shè)計(jì)利用MATLAB軟件實(shí)現(xiàn),語(yǔ)音讀取使用wvaerda()函數(shù)完成,在語(yǔ)音開(kāi)始之初截留一段純凈語(yǔ)言作為計(jì)算信噪比參考,其余部分加入由軟件自帶函數(shù)產(chǎn)生高斯白噪聲,噪聲頻譜值取噪聲幀中對(duì)應(yīng)每一點(diǎn)的最小值作為被減噪聲頻譜值輸入語(yǔ)音信號(hào),取原始語(yǔ)言與倍的噪聲之和,信噪比的隨著值變化而發(fā)生變化[7]。
在整個(gè)系統(tǒng)設(shè)計(jì)包括兩個(gè)部分:經(jīng)典譜相減語(yǔ)音增強(qiáng)算法和改進(jìn)譜相減語(yǔ)音增強(qiáng)算法處理,通過(guò)對(duì)比兩個(gè)處理效果得出改進(jìn)后算法的優(yōu)越性。在經(jīng)典譜相減語(yǔ)音增強(qiáng)算法中,利用原帶噪語(yǔ)音的相位恢復(fù)到時(shí)域語(yǔ)音信號(hào),從而得到處理后的語(yǔ)音信號(hào),完成整個(gè)基于譜減法的語(yǔ)音增強(qiáng)過(guò)程,在系統(tǒng)處理中,經(jīng)典譜相減發(fā)的工作流程圖如圖2所示。

圖2 經(jīng)典譜相減算法語(yǔ)音處理設(shè)計(jì)流程圖
改進(jìn)譜相減語(yǔ)音增強(qiáng)算法語(yǔ)音信號(hào)的增強(qiáng)處理使用漢明窗函數(shù)實(shí)現(xiàn),根據(jù)輸入的語(yǔ)音的長(zhǎng)度確定漢明窗的長(zhǎng)度和平滑速度,由語(yǔ)言長(zhǎng)度和每幀長(zhǎng)確定程序最大循環(huán)次數(shù)M;而后進(jìn)行傅里葉變換,由時(shí)域轉(zhuǎn)換為頻域以獲得相角、幅值的變化,需要對(duì)每幀數(shù)據(jù)進(jìn)行功率譜計(jì)算,而后對(duì)臨近的幾幀進(jìn)行平滑處理,獲取改進(jìn)后的譜相減閥值a,β,確定功率因素補(bǔ)償閥值,利用得到譜相減改進(jìn)算法語(yǔ)音增強(qiáng)的乘積形式進(jìn)行語(yǔ)音增強(qiáng)[8],使用傅里葉反變換獲取閥值賦給序列相應(yīng)段,經(jīng)過(guò)M次循環(huán)處理,得到處理以后的聲音,可以試聽(tīng)經(jīng)過(guò)該算法改進(jìn)以后的語(yǔ)音,基于譜相減改進(jìn)算法的語(yǔ)音增強(qiáng)處理實(shí)現(xiàn)流程如圖3所示。

圖3 譜相減改進(jìn)算法語(yǔ)音增強(qiáng)處理實(shí)現(xiàn)流程
實(shí)現(xiàn)語(yǔ)音增強(qiáng)處理的程序功能以GUI界面設(shè)計(jì),系統(tǒng)功能可以直觀的演示原始語(yǔ)音波形和基于譜相減改進(jìn)算法增強(qiáng)后語(yǔ)音波形情況對(duì)比,并且可以直接播放語(yǔ)音,對(duì)比語(yǔ)音前后變化情況。
完成基于譜相減改進(jìn)算法的語(yǔ)音增強(qiáng)系統(tǒng)開(kāi)發(fā)后,為了測(cè)試系統(tǒng)實(shí)現(xiàn)的功能和性能,進(jìn)行測(cè)試實(shí)驗(yàn)。測(cè)試輸入帶噪語(yǔ)音樣本由上述系統(tǒng)錄制的時(shí)長(zhǎng)大約為5 s的原始語(yǔ)音與產(chǎn)生m的倍高斯白噪聲之和組成,將準(zhǔn)備好的輸入原始帶噪語(yǔ)音樣本在本系統(tǒng)進(jìn)行播放,播放的語(yǔ)音波形如圖4所示。

圖4 原始語(yǔ)音波形
在系統(tǒng)測(cè)試中,輸入時(shí)選取輸入信噪比為15.6 dB,分別使用經(jīng)典譜相減語(yǔ)音增強(qiáng)算法和改進(jìn)譜相減語(yǔ)音增強(qiáng)算法對(duì)同樣的帶噪語(yǔ)音進(jìn)行處理,處理的效果如圖5所示。

圖5 同樣信噪比語(yǔ)音增強(qiáng)算法效果對(duì)比
對(duì)同樣的樣本,系統(tǒng)將原始帶噪語(yǔ)音樣本利用譜相減改進(jìn)算法進(jìn)行語(yǔ)音增強(qiáng)處理,根據(jù)不同的增強(qiáng)處理信噪比對(duì)語(yǔ)音增強(qiáng)處理后,設(shè)計(jì)選取信噪比為22.7 dB、43.4 dB對(duì)樣本進(jìn)行處理,語(yǔ)音播放的波形如圖6所示。

圖6 改變信噪比語(yǔ)音增強(qiáng)后效果對(duì)比
通過(guò)對(duì)比經(jīng)典譜相減語(yǔ)音增強(qiáng)算法和改進(jìn)譜相減語(yǔ)音增強(qiáng)算法語(yǔ)音處理效果和不同信噪比的語(yǔ)音增強(qiáng)處理效果的圖像,并且分別試聽(tīng)處理前后的語(yǔ)音,改進(jìn)譜相減語(yǔ)音增強(qiáng)算法語(yǔ)音處理效果比經(jīng)典譜相減語(yǔ)音增強(qiáng)算法有所改進(jìn),通過(guò)不斷調(diào)整系數(shù)的方法,使得該改進(jìn)算法獲得更高的信噪比,經(jīng)主觀試聽(tīng)噪聲減弱到不影響正常聲音可以接受的范圍,噪聲得到了明顯的抑制,噪聲由原來(lái)的刺耳感覺(jué)變成柔和易于使人接受的聲音。
在不斷地測(cè)試中也發(fā)現(xiàn),當(dāng)信噪比取值過(guò)大,原始聲音減幅值也顯著下降,在噪聲被濾波處理的同時(shí),原來(lái)聲音效果也會(huì)出現(xiàn)明顯走樣的情況,所以要多次測(cè)試,對(duì)比不同的效果,取得濾波效果最好,同時(shí)原始聲音損失最小的信噪比取值。對(duì)比其他的處理方式,該算法在輸入信噪比較低的情況下,增強(qiáng)處理后的語(yǔ)音輸出信噪比明顯提高,噪聲濾波處理的效果已經(jīng)凸顯,原始的語(yǔ)音可較快的達(dá)到可讀懂的范圍。提高系數(shù)增大信噪比,語(yǔ)音濾波處理響應(yīng)速度提高,語(yǔ)音增強(qiáng)處理的效果顯著。
適應(yīng)數(shù)字化社會(huì)的不斷發(fā)展,用數(shù)字化的方法對(duì)語(yǔ)音進(jìn)行識(shí)別和增強(qiáng)的處理,這樣的做法在很多領(lǐng)域得到應(yīng)用,也是數(shù)字化通信網(wǎng)絡(luò)通用的處理方式。本文在原有譜相減算法語(yǔ)音增強(qiáng)處理原理基礎(chǔ)上改進(jìn)該算法,并以此算法為基礎(chǔ),詳細(xì)闡述利用MATLAB軟件設(shè)計(jì)開(kāi)發(fā)語(yǔ)音增強(qiáng)處理系統(tǒng)的實(shí)現(xiàn)方式。系統(tǒng)經(jīng)過(guò)測(cè)試表明,能對(duì)輸入的帶噪語(yǔ)音樣本,以不同的輸入信噪比進(jìn)行增強(qiáng)處理,處理后的語(yǔ)音噪聲明顯減少,同時(shí)語(yǔ)音可懂度得到了一定程序的提高。如果輸入的原始噪聲樣本語(yǔ)音信噪比比較高,語(yǔ)音增強(qiáng)處理的效果更好,利用譜相減改進(jìn)算法的語(yǔ)音增強(qiáng)系統(tǒng),對(duì)帶有噪聲的語(yǔ)音完成數(shù)字處理從而實(shí)現(xiàn)增強(qiáng)的效果,有很好的現(xiàn)實(shí)作用。
[1]張雄偉,陳亮,楊吉斌.現(xiàn)代語(yǔ)音處理技術(shù)及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2003:34-78.
[2]張勇,劉軼,劉宏.結(jié)合人耳聽(tīng)覺(jué)感知的兩級(jí)語(yǔ)音增強(qiáng)算法[J].信號(hào)處理,2014,30(4):363-373.
[3]戴紅霞,趙力.基于麥克風(fēng)陣列的數(shù)字助聽(tīng)器語(yǔ)音增強(qiáng)技術(shù)[J].電子器件,2015,38(3):606-610.
[4]隋璐瑛,張雄偉,黃建軍,等.基于碼本學(xué)習(xí)的改進(jìn)譜減語(yǔ)音增強(qiáng)算法[J].計(jì)算機(jī)工程與應(yīng)用,2013,49(16):216-220.
[5]張賀,沈天飛,滕秋霞.基于級(jí)聯(lián)式改進(jìn)型譜減算法的語(yǔ)音去噪技術(shù)研究[J].工業(yè)控制計(jì)算機(jī),2014,27(7):119-120,123.
[6]Wang Jizeng,Wang Chanfei.A New Speech Enhancement Method Based On Wavelet Packet Transform[J].2008International Congress on Image and Signal Processing,27-30May2008,Sanya,Hainan,China,be published by the IEEE and indexed in both EI and ISTP:317-321.
[7]張雪英.數(shù)字語(yǔ)音處理及MATLAB仿真[M].北京:電子工業(yè)出版社,2010:154-178.
[8]徐寧,何晨.語(yǔ)音信號(hào)增強(qiáng)算法研究與實(shí)現(xiàn)[J].儀表技術(shù),2015(6):24-26,3.
[Key words]The improved spectral subtraction algorithm; speech enhancement; signal to noise ratio; MATLAB
[責(zé)任編輯劉景平]
Research and Implementation of the System of Speech Enhancement Based on the Improved Spectral Subtraction Algorithm
QIN Gui-li, LUO Yun-fang, PAN Ze-kai
(Department of Computer and Electronic Information Engineering, Guangxi Polytechnic,Nanning, Guangxi 530226, China)
Speech enhancement is widely applied in the digital communication network. An improved spectral subtraction algorithm of speech enhancement is proposed and a speech enhancement system is designed by the MATLAB based on this improved algorithm. Experimental results show that the system can well achieve speech enhancement with noise. The quality and intelligibility of sounds are all improved effectively.
TP391
A
1672-9021(2016)02-0073-06
覃貴禮(1976-),男,廣西鹿寨人,廣西職業(yè)技術(shù)學(xué)院計(jì)算機(jī)與電子信息工程系副教授,主要研究方向:電子技術(shù)和電氣自動(dòng)化技術(shù)。
2015-12-01