王永彪,張文喜*,王亞慧,孔新新,呂 彤
(1. 中國科學院光電研究院計算光學成像技術(shù)重點實驗室,北京100094; 2. 中國科學院大學電子電氣與通信工程學院,北京100049)
(*通信作者電子郵箱zhangwenxi@aoe.ac.cn)
語音信號的采集過程中,會受到外界噪聲的干擾,噪聲的干擾會降低語音質(zhì)量,使人耳的聽覺體驗和計算機對語音的處理效果變差。使用語音增強算法,能夠改善帶噪語音的質(zhì)量。語音增強算法主要包括譜減算法[1]、基于統(tǒng)計模型的語音增強算法[2]、基于子空間分解的語音增強算法[3]以及有監(jiān)督的語音增強算法,如基于神經(jīng)網(wǎng)絡(luò)的方法[4]、基于非負矩陣分解的方法[5]等。
譜減算法由于其原理直觀,復(fù)雜度小,具有易于實現(xiàn)和實時性強的特點,被廣泛研究與應(yīng)用,許多有效的改進算法被提出。譜減過程中會出現(xiàn)負值,一般的方法是將負值整流為0,該方法會導(dǎo)致音樂噪聲加劇。將頻點的譜下限設(shè)置為相鄰兩幀中該頻點的最小值,一定程度上減小了音樂噪聲;同時,檢測相鄰幀的最小值會用到未來的信息,不能滿足實時應(yīng)用的要求。針對此問題,文獻[6]中使用過減技術(shù),令帶噪信號譜減去噪聲譜的過估計,同時將譜下限設(shè)為本幀估計噪聲譜的極小權(quán)值,從而避免使用未來幀的信息,該算法通過調(diào)整過減因子與譜下限參數(shù),有效地抑制了噪聲,并且減小了音樂噪聲產(chǎn)生。過減技術(shù)中假定噪聲對所有頻點有相同大小的影響,因而在整個頻譜上使用相同大小的過減因子,但大部分的噪聲不具有此性質(zhì)。文獻[7]出非線性譜減算法,令過減因子是頻率的函數(shù),對不同頻點處的噪聲使用不同的增益過減因子,在低信噪比頻點處減去較大權(quán)重,在高信噪比頻點處減去較小權(quán)重,該方法中,過減因子是通過實驗和擬合函數(shù)確定的,這種方式獲得的參數(shù)不是最優(yōu)的選擇。文獻[8]提出最小均方誤差(Minimum Mean Square Error,MMSE)譜減算法,在最佳準則下求得最優(yōu)的過減參數(shù),有較好的語音增強效果,但是仍存在語音失真和殘留噪聲的問題。
該問題的出現(xiàn)有兩個原因:1)MMSE 譜減法使用過減因子,是噪聲和語音信號離散傅里葉變換(Discrete-time Fourier Transform,DFT)系數(shù)為高斯分布的假設(shè)下求得的,而在短時語音幀內(nèi),語音信號DFT系數(shù)的分布與高斯分布的誤差較大,而更加符合拉普拉斯分布[9];2)該算法基于語音活動檢測進行噪聲估計,將靜音幀判決為噪聲,即假定語音間隙為噪聲,進而對噪聲進行迭代更新,當信噪比低時,聲音幀容易被誤判為噪聲幀,譜減后該幀“清零”,導(dǎo)致語音失真,并且該方法更新噪聲估計的能力差,當噪聲發(fā)生變化時,不能追蹤到噪聲的變化,會使得語音中殘留噪聲。
根據(jù)存在的問題,本文對MMSE譜減算法進行改進,在語音DFT 系數(shù)為拉普拉斯分布的假設(shè)下,重新推導(dǎo)過減因子的最優(yōu)估計,并使用短時對數(shù)譜結(jié)合譜平坦度的方法進行的噪聲估計,在語音不失真的前提下抑制噪聲,實現(xiàn)對語音信號的增強。
MMSE 譜減法是對譜減算法一種改進。譜減算法是基于短時傅里葉變換的頻域語音增強算法,需通過傅里葉變換,將時域信號變換到頻域進行處理。然而語音信號整體上是非平穩(wěn)信號,不能直接進行傅里葉變換,但是短時間內(nèi)語音信號變化較為緩慢,可認為是平穩(wěn)信號。所以,需要首先對語音信號進行分幀處理,每幀長度約為10~30 ms,譜減算法都是在短時幀的基礎(chǔ)上進行的。
譜減的基本思想是:在噪聲為加性噪聲的假設(shè)下,使用帶噪語音幅度減去噪聲幅度,可得到增強語音的幅度。第m幀的帶噪信號表示為語音信號與噪聲之和:
其中:ym(n)、xm(n)和dm(n)分別表示第m幀的帶噪信號、純凈語音信號和噪聲信號的時域表達式。將式(1)進行傅里葉變換,轉(zhuǎn)換到頻域:
注意到Y(jié)m(ωk)、Xm(ωk)和Dm(ωk)是復(fù)數(shù),分別表示第m幀的帶噪語音、純凈語音和噪聲的頻域DFT 系數(shù),ωk表示第k個頻率單元。
當噪聲與語音信號不相關(guān)時,式(2)帶噪信號、語音信號和噪聲有以下關(guān)系[10]:
其中:Ym,k、Xm,k和Dm,k分別為Ym(ωk)、Xm(ωk)和Dm(ωk)的模值,表示第m幀的第k個頻率分量的帶噪語音幅度值、純凈語音幅度值和噪聲幅度值,p表示冪指數(shù)。
高斯分布下MMSE譜減參數(shù)的最佳估計如下。
譜減因子的設(shè)置,會很大程度上影響到算法的性能,譜減因子的值過小,對噪聲的抑制能力較差;過大會導(dǎo)致語音失真??赏ㄟ^計算信號DFT系數(shù)的分布,在MMSE準則下,求得譜減參數(shù)的最優(yōu)估計[11]。假設(shè)純凈語音信號進行離散傅里葉變換之后,其DFT系數(shù)的實部和虛部是統(tǒng)計無關(guān)的,服從高斯分布。即:
其中:XR(k)= Re{X(ωk)},XI(k)= Im{X(ωk)},表示第m幀虛部和實部的方差。
譜減法的一般表達式為:
其中,αm(ωk)和γm(ωk)表示譜減參數(shù)。當p= 1時是幅度譜減算法,p= 2代表功率譜減算法,p表示譜減算法的階數(shù)。
在MMSE 準則下,基于語音信號服從高斯分布的條件,式(5)中譜減參數(shù)的最佳估計為:
其中:
表示本幀帶噪語音信號的先驗信噪比。
語音信號DFT 系數(shù)服從高斯分布的假設(shè),對長時間的語音DFT 系數(shù)統(tǒng)計結(jié)果是成立的,而譜減算法是在短時語音幀內(nèi)進行的。在短時幀內(nèi),高斯分布的模型與語音DFT 系數(shù)的實際分布相差較大,拉普拉斯分布更符合語音的DFT 系數(shù)分布。圖1 所示分別為長時和短時語音DFT 系數(shù)的實際統(tǒng)計分布,以及用統(tǒng)計數(shù)據(jù)的均值和方差生成的高斯分布和拉普拉斯分布。
圖1 不同時長的語音信號DFT系數(shù)統(tǒng)計分布Fig. 1 Statistical distribution of DFT coefficients of speech signals with different time lengths
由圖1(a)可以看出,對短時語音幀DFT 系數(shù)的統(tǒng)計分布進行近似,拉普拉斯分布的近似效果比高斯分布效果更佳。因此,MMSE 譜減算法中,在計算譜減參數(shù)時,運用語音DFT系數(shù)服從拉普拉斯分布的假設(shè)更為合理,運用高斯分布的假設(shè),會導(dǎo)致譜減參數(shù)出現(xiàn)較大的偏差,使用拉普拉斯分布更加合理。
該部分基于語音和噪聲DFT系數(shù)的實部和虛部服從拉普拉斯分布,推導(dǎo)在MMSE準則下的最佳譜減因子。
圖2 噪聲估計算法框圖Fig. 2 Block diagram of noise estimation algorithm
根據(jù)噪聲的幅度譜估計可以得到先驗信噪比估計,使用判決引導(dǎo)法進行先驗信噪比估計:
其中:表示先驗信噪比估計,α1是權(quán)重因子,α1= 0.98 時效果較好。根據(jù)拉普拉斯分布的性質(zhì),使用先驗信噪比估計表示尺度參數(shù)平方之比:
通過上述的噪聲檢測算法,可以實現(xiàn)對噪聲的迭代更新。結(jié)合對譜減參數(shù)的最佳估計,最終得到增強語音。語音增強算法的整體流程如圖3所示。
圖3 語音增強算法的整體流程Fig. 3 Flow chart of speech enhancement algorithm
通過仿真實驗對算法的增強效果進行驗證。選用來源于數(shù)據(jù)庫NOIZEUS 中的純凈語音信號sp01 文件,以及相應(yīng)的在babble、car和train三種噪聲類型下的帶噪語音信號,每種類型的帶噪信號有四種不同的信噪比,分別為0 dB、5 dB、10 dB 和15 dB。信號的采樣頻率為8 kHz,量化精度為16 bit。在實驗中,語音的幀長為20 ms,使用hamming窗對語音幀進行加窗,幀重疊為50%,算法的冪指數(shù)均設(shè)為2,即在功率譜下進行譜減。
實驗采用信噪比(Signal-to-Noise Ratio,SNR)和語音質(zhì)量感知評估(Perceptual Evaluation of Speech Quality,PESQ)[16]兩種標準對增強語音進行客觀評價。PESQ 是2001 年國際電信聯(lián) 盟(International Telegraph and Telephone Consultative Committee,ITU-T)推出的P.862 標準,PESQ 得分與主觀評測相關(guān)度較高,是評估語音主觀試聽感受的客觀計算方法,分值區(qū)間為-0.5~4.5,得分越高說明語音質(zhì)量越好。
對帶噪語音信號,使用本算法進行增強處理。實驗中選用信噪比為5 dB 的Babble 帶噪語音信號,時長為3 s。圖4 對比了增強前后的語音信號與純凈語音的波形圖和語譜圖。通過對比可以看出,本文算法能抑制帶噪信號中的噪聲,對高頻處的噪聲抑制作用更加明顯。
圖4 帶噪語音、增強語音和純凈語音的波形圖與語譜圖Fig. 4 Waveforms and spectrograms of noisy,enhanced speech and clear speeches
表1 對比了三種算法處理的增強語音的信噪比。在三種噪聲種類下,針對不同信噪比的帶噪語音信號使用過減法、MMSE 譜減算法以及本文算法進行增強處理,計算處理后的增強語音信噪比。通過對比可以看出,三種算均能夠提高信號的信噪比,可以看出,在信噪比提升能力上,改進算法優(yōu)于過減法和基于高斯分布的MMSE 譜減算法,說明改進算法對噪聲的抑制能力更好。比較算法對不同類型噪聲的抑制能力:過減法對不同類型噪聲抑制的穩(wěn)定性差于后兩種算法,在Babble 噪聲和Train 噪聲下,該算法性能較好;而在Car 噪聲下,性能較差。對比算法對不同信噪比下的噪聲抑制能力:高斯分布下的MMSE譜減法對低信噪比信號的噪聲抑制能力差于改進算法。改進算法通過改進的噪聲估計方法,能較好地跟蹤噪聲的變化,對不同類型噪聲下的不同信噪比的信號均能提供穩(wěn)定的噪聲抑制能力,能適應(yīng)不同的噪聲環(huán)境。
表1 三種算法的輸出信噪比對比 單位:dBTab. 1 Comparison of output SNR of three algorithms unit:dB
表2對比了三種算法的PESQ 得分,對于不同噪聲類型和不同信噪比的信號,改進算法優(yōu)于過減法,和高斯分布的MMSE 譜減法性能相當,說明改進算法增強的語音質(zhì)量更好,造成的語音失真更小。改進算法通過兩方面減小語音失真:1)譜減因子的求解是語音信號服從拉普拉斯分布下的假設(shè)下求得的MMSE準則下的最佳參數(shù),更加符合真實的語音分布,減小了譜減參數(shù)的偏差;2)結(jié)合基于對數(shù)能量和譜平坦度的噪聲估計方法,盡可能避免了語音幀被判別為噪聲幀,從而減小增強語音的失真。
表2 三種算法的PESQ得分對比Tab. 2 Comparison of PESQ score of three algorithms
從增強語音信噪比和PESQ 得分整體來看,過減法可通過增大譜減因子,盡可能地減小噪聲,提高增強語音的信噪比,同時由于該譜減參數(shù)選擇不恰當,導(dǎo)致增強語音出現(xiàn)語音失真。而高斯分布下的MMSE 譜減算法雖然PESQ 得分上優(yōu)于過減法,和改進算法相當,但是該算法對噪聲抑制能力較弱并且對不同噪聲抑制的穩(wěn)定性較差。相比于以上兩種算法,本文的改進算法能夠在不降低語音質(zhì)量的前提下,提供更優(yōu)的噪聲抑制能力,實現(xiàn)對帶噪語音的增強處理。
本文對MMSE譜減法進行改進,將高斯分布的假設(shè)改為更加符合實際的拉普拉斯分布,在該假設(shè)下求解MMSE準則下最優(yōu)的譜減系數(shù),并使用短時對數(shù)能量結(jié)合譜平坦度的方法進行噪聲估計,實驗結(jié)果表明,相比于過減法和高斯分布的MMSE譜減法,改進算法能在語音不失真的前提下,提供更優(yōu)噪聲抑制能力,實現(xiàn)對語音信號的增強處理。語音DFT系數(shù)并沒有明確的分布,任何分布都是對其的近似,不可避免地出現(xiàn)誤差,并且在推導(dǎo)過程中,假設(shè)語音DFT 系數(shù)的虛部與實部是不相關(guān)的,因而兩者的相關(guān)項為零。而實際中,相關(guān)項的期望并不是嚴格為零的,需要進一步地研究該假設(shè)對算法性能的影響。