覃貴禮, 羅云芳, 潘澤鍇
(廣西職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)與電子信息工程系, 廣西 南寧 530226)
?
基于譜相減改進(jìn)算法的語音增強(qiáng)系統(tǒng)的實(shí)現(xiàn)研究
覃貴禮, 羅云芳, 潘澤鍇
(廣西職業(yè)技術(shù)學(xué)院計(jì)算機(jī)與電子信息工程系, 廣西南寧530226)
針對數(shù)字通信網(wǎng)絡(luò)中廣泛應(yīng)用的語音增強(qiáng)處理,在原有譜相減算法語音增強(qiáng)處理原理基礎(chǔ)上改進(jìn)該算法,并基于改進(jìn)的譜相減算法采用MATLAB軟件開發(fā)設(shè)計(jì)語音增強(qiáng)處理系統(tǒng),經(jīng)過測試表明系統(tǒng)能很好地實(shí)現(xiàn)帶噪語音增強(qiáng)處理,聲音的質(zhì)量和可懂度提高效果顯著。
譜相減改進(jìn)算法;語音增強(qiáng);信噪比;MATLAB
隨著人類制造出各種各樣的機(jī)器,人與機(jī)器的交流慢慢地變成一種迫切的需求,人們的語音交流方式移植到人與機(jī)器之間并成了一種主流技術(shù),也為人們提供了一種便利[1]。在數(shù)字技術(shù)發(fā)展和適應(yīng)人們隨時隨地辦公娛樂趨勢的影響下,語音技術(shù)也得到了長足的發(fā)展,語音識別技術(shù)在人機(jī)交互的場合也得到了廣泛的應(yīng)用,在某些領(lǐng)域,機(jī)器已經(jīng)能很好地理解人類語音的信息,準(zhǔn)確的識別出人類語音的內(nèi)容,并且經(jīng)過數(shù)字信號處理的方式把獲取的信息返回給執(zhí)行機(jī)構(gòu)完成相應(yīng)的動作,從而實(shí)現(xiàn)人機(jī)交互的自然語言通信功能[2]。但在某些實(shí)際的應(yīng)用中,傳輸距離和各種外界噪聲因素會對傳輸?shù)恼Z言信號的強(qiáng)度和清晰度造成嚴(yán)重的干擾,同時受接收時各類硬件質(zhì)量的影響,很多語音信號不能很好地識別,造成人機(jī)不能很好地交互。因此,利用數(shù)字技術(shù)把語音進(jìn)行數(shù)字化處理以后,再利用語音處理算法對其進(jìn)行增強(qiáng)處理,可提高語音的抗干擾性和可讀性[3]。本文對語音信號的增強(qiáng)原理進(jìn)行分析,設(shè)計(jì)了基于譜相減改進(jìn)算法的語音增強(qiáng)系統(tǒng),并詳細(xì)闡述了系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)方法。
1.1經(jīng)典譜相語音增強(qiáng)減算法
經(jīng)典的譜相減算法是在頻域的范圍內(nèi),語音的功率譜估計(jì)值使用帶噪語音功率譜減去噪聲的功率譜得到,語音的幅度通過對語音的功率估計(jì)開方得到,將其相位恢復(fù)后再采用逆傅立葉變換恢復(fù)時域信號,而在相位恢復(fù)中的相位信息包含在帶噪語音當(dāng)中[4]。
在經(jīng)典譜相減算法數(shù)學(xué)建模中,s(m)、n(m)、和y(m)分別代表語音、噪聲和帶噪語音,Ss(ω)、Sn(ω)和Sy(ω)則表示短時譜,則帶噪語音信號可以表示為:
y(m)=s(m)+n(m)(1)
對式(1)進(jìn)行加窗處理并對其兩邊進(jìn)行傅里葉變換可以得到:
Yw(ω)=Sw(ω)+Nw(ω)(2)
在原來假設(shè)s(m)中和n(m)是相互獨(dú)立的個體,則根據(jù)式(2)可以得到原來的語音估值為:
因?yàn)樵肼暿蔷植科椒€(wěn)的,故可以認(rèn)為發(fā)音前的噪聲與發(fā)音期間的噪聲功率譜相同,因而可以利用發(fā)語音前的“寂靜幀”來估計(jì)噪聲。在語音的頻域中,使用式(3)可以純凈語音的譜估計(jì),實(shí)現(xiàn)簡單的語音增強(qiáng)功能,但是實(shí)現(xiàn)的語音增強(qiáng)效果不是很明顯,對于復(fù)雜的噪聲無能為力。
1.2改進(jìn)譜相減語音增強(qiáng)算法
根據(jù)譜相減算法實(shí)現(xiàn)語音增強(qiáng)的原理,其實(shí)現(xiàn)語音增強(qiáng)的數(shù)學(xué)表達(dá)式為:
式中,m表示x的平均值,σ表示標(biāo)準(zhǔn)偏差。噪聲的幀功率譜是在很寬的范圍內(nèi)隨機(jī)變化的,變化頻域幀功率譜中的最大值與最小值的比值很大,可以達(dá)到幾個數(shù)量級,最大值與平均值之間的比值也很大,有倍。因此,在語音增強(qiáng)處理去噪時,會殘留較大功率譜相關(guān)分量的一些剩余部分,這些剩余殘留在頻譜上會出現(xiàn)隨機(jī)的尖峰,形成聽覺上的殘留噪聲。
圖1 譜相減改進(jìn)算法實(shí)現(xiàn)語音增強(qiáng)原理圖
結(jié)合式(4)和式(5)得到譜相減改進(jìn)算法語音增強(qiáng)的計(jì)算式:
在譜相減語音增強(qiáng)算法計(jì)算模型中,通過改變a和β兩個參數(shù),能使算法在實(shí)現(xiàn)上具有很好的靈活性,通過靈活改變a和β參數(shù)的值正是譜相減語音增強(qiáng)處理算法改進(jìn)的一種有效實(shí)現(xiàn)方式。本文即通過改變和參數(shù)的值進(jìn)行譜相減語音增強(qiáng)處理算法的改進(jìn),并將改進(jìn)后的算法用于語音增強(qiáng)處理[6]。算法模型中的參數(shù)表示譜減功率修正系數(shù),取值越大,進(jìn)行語音增強(qiáng)處理時,信噪比值越高,但同時也會加大原始語音信號的失真率。參數(shù)表示譜減噪聲系數(shù),它的取值會影響被減噪聲功率譜值,β取值越大,增強(qiáng)處理后的語音音樂噪聲越少,能在一定程度上更好的突出語音頻譜,但同時也會加大原始語音信號的失真率。
計(jì)算模型中,當(dāng)確定參數(shù)a和β的取值后,在利用算法模型進(jìn)行語音增強(qiáng)處理過程中就一直不會改變,這與實(shí)際的語音增強(qiáng)處理不符,因?yàn)樵谡Z音增強(qiáng)處理過程中,需要在噪聲頻段中減去功率較大的噪聲,實(shí)現(xiàn)提高信噪比的目的,而為了保證原始帶噪語音中更多的清音,往往在帶噪語音段中減去的噪聲功率譜較小,實(shí)現(xiàn)提高增強(qiáng)處理后語音的可懂度。所以在實(shí)際的語音增強(qiáng)處理過程中應(yīng)根據(jù)處理語音的頻率段和語音幀動態(tài)調(diào)整a和β參數(shù)的取值。在處理的語音信噪比較低時,根據(jù)原始帶噪語音幀頻譜功率與噪聲幀頻譜功率的比值進(jìn)行動態(tài)改變參數(shù)和值,語音處理后能較大程度的提高信噪比,同時又能最大程度的去除音樂噪聲和減少語音的失真度,使增強(qiáng)處理后的語音更符合人耳聽覺范圍,保證語音增強(qiáng)處理的可懂度和清晰度。
系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)主要分為原始語音和噪聲的準(zhǔn)備,語音信號增強(qiáng)處理時輸入語音信號的確定,對輸入的語音信號進(jìn)行增強(qiáng)處理程序功能實(shí)現(xiàn)等幾部分。系統(tǒng)用于測試的原始語音采用格式8 kHz,16 bit,選取相對安靜不帶噪音的環(huán)境,利用單聲道錄制的一段純凈語音,時間大約5 s。系統(tǒng)設(shè)計(jì)利用MATLAB軟件實(shí)現(xiàn),語音讀取使用wvaerda()函數(shù)完成,在語音開始之初截留一段純凈語言作為計(jì)算信噪比參考,其余部分加入由軟件自帶函數(shù)產(chǎn)生高斯白噪聲,噪聲頻譜值取噪聲幀中對應(yīng)每一點(diǎn)的最小值作為被減噪聲頻譜值輸入語音信號,取原始語言與倍的噪聲之和,信噪比的隨著值變化而發(fā)生變化[7]。
在整個系統(tǒng)設(shè)計(jì)包括兩個部分:經(jīng)典譜相減語音增強(qiáng)算法和改進(jìn)譜相減語音增強(qiáng)算法處理,通過對比兩個處理效果得出改進(jìn)后算法的優(yōu)越性。在經(jīng)典譜相減語音增強(qiáng)算法中,利用原帶噪語音的相位恢復(fù)到時域語音信號,從而得到處理后的語音信號,完成整個基于譜減法的語音增強(qiáng)過程,在系統(tǒng)處理中,經(jīng)典譜相減發(fā)的工作流程圖如圖2所示。
圖2 經(jīng)典譜相減算法語音處理設(shè)計(jì)流程圖
改進(jìn)譜相減語音增強(qiáng)算法語音信號的增強(qiáng)處理使用漢明窗函數(shù)實(shí)現(xiàn),根據(jù)輸入的語音的長度確定漢明窗的長度和平滑速度,由語言長度和每幀長確定程序最大循環(huán)次數(shù)M;而后進(jìn)行傅里葉變換,由時域轉(zhuǎn)換為頻域以獲得相角、幅值的變化,需要對每幀數(shù)據(jù)進(jìn)行功率譜計(jì)算,而后對臨近的幾幀進(jìn)行平滑處理,獲取改進(jìn)后的譜相減閥值a,β,確定功率因素補(bǔ)償閥值,利用得到譜相減改進(jìn)算法語音增強(qiáng)的乘積形式進(jìn)行語音增強(qiáng)[8],使用傅里葉反變換獲取閥值賦給序列相應(yīng)段,經(jīng)過M次循環(huán)處理,得到處理以后的聲音,可以試聽經(jīng)過該算法改進(jìn)以后的語音,基于譜相減改進(jìn)算法的語音增強(qiáng)處理實(shí)現(xiàn)流程如圖3所示。
圖3 譜相減改進(jìn)算法語音增強(qiáng)處理實(shí)現(xiàn)流程
實(shí)現(xiàn)語音增強(qiáng)處理的程序功能以GUI界面設(shè)計(jì),系統(tǒng)功能可以直觀的演示原始語音波形和基于譜相減改進(jìn)算法增強(qiáng)后語音波形情況對比,并且可以直接播放語音,對比語音前后變化情況。
完成基于譜相減改進(jìn)算法的語音增強(qiáng)系統(tǒng)開發(fā)后,為了測試系統(tǒng)實(shí)現(xiàn)的功能和性能,進(jìn)行測試實(shí)驗(yàn)。測試輸入帶噪語音樣本由上述系統(tǒng)錄制的時長大約為5 s的原始語音與產(chǎn)生m的倍高斯白噪聲之和組成,將準(zhǔn)備好的輸入原始帶噪語音樣本在本系統(tǒng)進(jìn)行播放,播放的語音波形如圖4所示。
圖4 原始語音波形
在系統(tǒng)測試中,輸入時選取輸入信噪比為15.6 dB,分別使用經(jīng)典譜相減語音增強(qiáng)算法和改進(jìn)譜相減語音增強(qiáng)算法對同樣的帶噪語音進(jìn)行處理,處理的效果如圖5所示。
圖5 同樣信噪比語音增強(qiáng)算法效果對比
對同樣的樣本,系統(tǒng)將原始帶噪語音樣本利用譜相減改進(jìn)算法進(jìn)行語音增強(qiáng)處理,根據(jù)不同的增強(qiáng)處理信噪比對語音增強(qiáng)處理后,設(shè)計(jì)選取信噪比為22.7 dB、43.4 dB對樣本進(jìn)行處理,語音播放的波形如圖6所示。
圖6 改變信噪比語音增強(qiáng)后效果對比
通過對比經(jīng)典譜相減語音增強(qiáng)算法和改進(jìn)譜相減語音增強(qiáng)算法語音處理效果和不同信噪比的語音增強(qiáng)處理效果的圖像,并且分別試聽處理前后的語音,改進(jìn)譜相減語音增強(qiáng)算法語音處理效果比經(jīng)典譜相減語音增強(qiáng)算法有所改進(jìn),通過不斷調(diào)整系數(shù)的方法,使得該改進(jìn)算法獲得更高的信噪比,經(jīng)主觀試聽噪聲減弱到不影響正常聲音可以接受的范圍,噪聲得到了明顯的抑制,噪聲由原來的刺耳感覺變成柔和易于使人接受的聲音。
在不斷地測試中也發(fā)現(xiàn),當(dāng)信噪比取值過大,原始聲音減幅值也顯著下降,在噪聲被濾波處理的同時,原來聲音效果也會出現(xiàn)明顯走樣的情況,所以要多次測試,對比不同的效果,取得濾波效果最好,同時原始聲音損失最小的信噪比取值。對比其他的處理方式,該算法在輸入信噪比較低的情況下,增強(qiáng)處理后的語音輸出信噪比明顯提高,噪聲濾波處理的效果已經(jīng)凸顯,原始的語音可較快的達(dá)到可讀懂的范圍。提高系數(shù)增大信噪比,語音濾波處理響應(yīng)速度提高,語音增強(qiáng)處理的效果顯著。
適應(yīng)數(shù)字化社會的不斷發(fā)展,用數(shù)字化的方法對語音進(jìn)行識別和增強(qiáng)的處理,這樣的做法在很多領(lǐng)域得到應(yīng)用,也是數(shù)字化通信網(wǎng)絡(luò)通用的處理方式。本文在原有譜相減算法語音增強(qiáng)處理原理基礎(chǔ)上改進(jìn)該算法,并以此算法為基礎(chǔ),詳細(xì)闡述利用MATLAB軟件設(shè)計(jì)開發(fā)語音增強(qiáng)處理系統(tǒng)的實(shí)現(xiàn)方式。系統(tǒng)經(jīng)過測試表明,能對輸入的帶噪語音樣本,以不同的輸入信噪比進(jìn)行增強(qiáng)處理,處理后的語音噪聲明顯減少,同時語音可懂度得到了一定程序的提高。如果輸入的原始噪聲樣本語音信噪比比較高,語音增強(qiáng)處理的效果更好,利用譜相減改進(jìn)算法的語音增強(qiáng)系統(tǒng),對帶有噪聲的語音完成數(shù)字處理從而實(shí)現(xiàn)增強(qiáng)的效果,有很好的現(xiàn)實(shí)作用。
[1]張雄偉,陳亮,楊吉斌.現(xiàn)代語音處理技術(shù)及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2003:34-78.
[2]張勇,劉軼,劉宏.結(jié)合人耳聽覺感知的兩級語音增強(qiáng)算法[J].信號處理,2014,30(4):363-373.
[3]戴紅霞,趙力.基于麥克風(fēng)陣列的數(shù)字助聽器語音增強(qiáng)技術(shù)[J].電子器件,2015,38(3):606-610.
[4]隋璐瑛,張雄偉,黃建軍,等.基于碼本學(xué)習(xí)的改進(jìn)譜減語音增強(qiáng)算法[J].計(jì)算機(jī)工程與應(yīng)用,2013,49(16):216-220.
[5]張賀,沈天飛,滕秋霞.基于級聯(lián)式改進(jìn)型譜減算法的語音去噪技術(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ù)字語音處理及MATLAB仿真[M].北京:電子工業(yè)出版社,2010:154-178.
[8]徐寧,何晨.語音信號增強(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ù)和電氣自動化技術(shù)。
2015-12-01