李菁菁, 黃孝建, 李 敬
(①北京郵電大學(xué) 信息與通信工程學(xué)院,北京 100876;②清華大學(xué) 電子工程系,北京 100084)
VoIP是指利用因特網(wǎng)實(shí)現(xiàn)語(yǔ)音和各種數(shù)據(jù)業(yè)務(wù)集成傳輸?shù)囊环N新興網(wǎng)絡(luò)技術(shù)[1]。語(yǔ)音在采集和傳輸過(guò)程中,由于語(yǔ)音源的差異、信道的衰減、噪聲干擾以及遠(yuǎn)近效應(yīng),導(dǎo)致信號(hào)幅度相差較大,利用AGC可以優(yōu)化信號(hào)電平,提高通信質(zhì)量[2]。本文提出的算法是根據(jù)VAD對(duì)話音與非話音的判別,僅對(duì)有效語(yǔ)音進(jìn)行增益控制,抑制非話音信號(hào),保證語(yǔ)音通信質(zhì)量。
如圖1所示,經(jīng)過(guò)加窗和FFT變換的話音傳入VAD和AGC模塊,兩者配合實(shí)現(xiàn)自動(dòng)電平控制。其中VAD用于判斷信號(hào)是否為純語(yǔ)音段,AGC根據(jù)VAD的結(jié)果,僅對(duì)檢測(cè)到的純語(yǔ)音作增益控制,而對(duì)非語(yǔ)音信號(hào)輸出0,不進(jìn)行編碼與發(fā)送,從而節(jié)省帶寬[3-4]。下面具體分析VAD和AGC模塊的處理算法。
圖1 基于VAD的AGC算法原理
采用的是基于統(tǒng)計(jì)模型的話音激活檢測(cè)(STATVAD)[4-5]。首先假設(shè)2個(gè)事件:
H0:無(wú)話音 即:X=N,
H1:有話音 即:X=N+S,
S,N和X分別表示話音、噪聲和帶噪語(yǔ)音,其第k個(gè)分量為 kS, kN和 kX,話音和噪聲的頻譜分量都服從高斯分布,且加性噪聲與話音不相關(guān),則帶噪語(yǔ)音譜在 0H 和 1H下的條件概率分別為:和分別表示加性噪聲和話音譜的方差,第k個(gè)分量的似然比定義為:
第n幀的kε用直接判決方法的估計(jì):
存在話音的判決準(zhǔn)則由貝葉斯準(zhǔn)則建立,帶噪語(yǔ)音中存在話音的概率為:
采用的是一種基于能量比較的AGC算法,首先AGC對(duì)每幀語(yǔ)音各樣點(diǎn)作能量估計(jì):
當(dāng)滿足該條件的樣點(diǎn)數(shù)的百分比大于0.2時(shí)進(jìn)行增益調(diào)整,否則保持前一幀的值不變。
增益調(diào)整時(shí),設(shè)定兩個(gè)平滑因子rate和2rate:
其中rate初值為1,隨著處理幀數(shù)增加而減小;rate2為0.2;(k)表示第k幀語(yǔ)音能量和;gain(k)表示第k幀的增益系數(shù)。計(jì)算出增益系數(shù)后,將當(dāng)前幀各樣點(diǎn)幅值與增益系數(shù)相乘,進(jìn)行IFFT后輸出。
在Palmmicro公司開(kāi)發(fā)的PalmAdsp仿真器中運(yùn)行Speex中定點(diǎn)化的VAD和AGC程序,需6887個(gè)PM(程序儲(chǔ)存區(qū))和1920個(gè)DM(數(shù)據(jù)儲(chǔ)存區(qū)),運(yùn)算量需20MIPS。
選擇一段較平穩(wěn)的語(yǔ)音來(lái)測(cè)試AGC的性能。圖2是平穩(wěn)的原始語(yǔ)音,圖3是設(shè)定的每幀的增益值,將對(duì)應(yīng)幀的語(yǔ)音信號(hào)與之相乘,得到圖4。將該信號(hào)通過(guò)AGC模塊,得到各幀增益值如圖5所示。分析得出:
圖2 平穩(wěn)的原始語(yǔ)音
圖3 設(shè)定的增益值
圖4 原始語(yǔ)音與增益值相乘
圖5 AGC模塊得到的增益值
0~100幀,設(shè)定的增益值由0.5逐漸增大,語(yǔ)音剛開(kāi)始較小,隨著其值先增后減,AGC增益值先減后增;100~300幀,設(shè)定的增益值不變,AGC增益值基本保持與原始語(yǔ)音對(duì)應(yīng),語(yǔ)音減時(shí),增益增,語(yǔ)音增時(shí),增益減;300~345幀,設(shè)定的增益值劇增,最大為6.0,語(yǔ)音先減后增,AGC增益值先增后減至最小值;345~700幀,設(shè)定的增益值逐漸減小,AGC增益值呈上升趨勢(shì);700~900幀,設(shè)定的增益值漸增,初始語(yǔ)音較小,AGC增益值增大,接著語(yǔ)音信號(hào)增大,AGC增益值呈下降趨勢(shì)。
經(jīng)過(guò)以上分析可以得出,該AGC程序達(dá)到了自動(dòng)增益控制的目的。
選擇一段斷續(xù)的語(yǔ)音來(lái)測(cè)試該程序的性能。圖 7是斷續(xù)的原始無(wú)噪語(yǔ)音;圖8是經(jīng)過(guò)AGC模塊處理后的語(yǔ)音輸出波形,圖9是同時(shí)使用VAD和AGC模塊處理后的語(yǔ)音輸出波形??梢钥闯?,只使用AGC模塊時(shí),語(yǔ)音輸出電平得到調(diào)整,且保持在一定范圍內(nèi),但靜音信號(hào)同樣被增強(qiáng);同時(shí)使用VAD和AGC模塊時(shí),在放大語(yǔ)音的同時(shí)保持了原有的信號(hào)波形,失真小并具有一定的魯棒性,靜音信號(hào)段輸出0,很好地實(shí)現(xiàn)了自動(dòng)電平控制功能。
圖7 原始無(wú)噪語(yǔ)音
圖8 經(jīng)AGC處理后的語(yǔ)音
圖9 經(jīng)VAD和AGC處理后的語(yǔ)音
隨著Internet的飛速發(fā)展與普及應(yīng)用,發(fā)展和完善VoIP技術(shù)全面取代PSTN已成為當(dāng)前的一個(gè)研究熱點(diǎn),而語(yǔ)音質(zhì)量問(wèn)題是 VoIP要解決的主要問(wèn)題,也是其難點(diǎn)問(wèn)題之一。Speex編碼算法是一種隨著網(wǎng)絡(luò)質(zhì)量變化而提供不同傳輸速率的變速率的編碼算法,本文深入分析了Speex語(yǔ)音編碼算法中基于VAD的AGC算法的原理,并通過(guò)進(jìn)行仿真和分析,得知通過(guò)自動(dòng)增益控制處理后的語(yǔ)音失真小,清晰度高,達(dá)到了電平控制的效果。
[1] 劉艷,付慧生,李雪峰.現(xiàn)代通信技術(shù)與 VoIP[J].通信技術(shù),2007,40(04):49-50.
[2] 汪安民,陳明欣.基于客戶端DSP的數(shù)字電話系統(tǒng)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2005(07):47-48.
[3] ChuP L.Voice-activated AGC for Teleconferencing[J]. Acoustics,Speech, and Signal processing, ICASSP-96.Conference Proceedings, IEEE International Conference,1996(02):929-932.
[4] 郭莉,殷南,王炳錫.語(yǔ)音業(yè)務(wù)中魯棒性VAD算法分析[J].電聲技術(shù),2005(09):42-44.
[5] Sohn J, Sung W. A Stati-tical Model-Based Voice Activity Det-ction[J].IEEE Signal Processing Letters,1999(01):1-3.
[6] 方建,蘇建元.基于 DSP和譜熵的語(yǔ)音檢測(cè)[J].通信技術(shù),2008,41(02):76-77.