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