夏曉峰
(韶關學院 韶州師范分院計算機系,廣東 韶關 512009)
當語音信號在實際傳輸過程中不可避免地要受到來自周圍環境和傳輸媒介引入的噪聲、通訊設備內部噪聲、乃至其它語音的干擾時,不可能完全消除干擾信號,語音增強的主要任務就是從噪聲背景中提取有用的語音信號,抑制、降低噪音干撓,提高語音質量。[1]
目前的語音識別系統大多工作在安靜環境下,背景噪聲的引入會嚴重影響識別系統的性能,判定一個語音識別系統好壞有兩個指標,分別是改善語音質量和提高語音可懂度,但是兩個指標難以同時達到,需要根據語音增強的具體應用場合做出不同的選擇。[2]基于進一步提高語音質量和實用化、降低碼率的考慮,本文對SMV算法進行改進。
SMV由四種編解碼器組成,分別是全速率(Rate 1)、半速率(Rate 1/2)、1/4速率(Rate 1/4)和1/8速率(Rate 1/8)編解碼器,編碼率分別為8.5kbps、4.0 kbps、2.0kbps和0.8 kbps;[3]SMV有6種可選工作模式,分別記為模式0—模式5,不同模式在ADR(平均碼率)和語音質量之間的側重點略有不同,SMV編碼器原理框圖如圖1所示。

圖1 SMV編碼器原理框圖
其中預處理模塊包括靜音增強、高通濾波、噪聲抑制和自適應傾斜補償濾波。幀處理模塊包括LPC分析、LSP平滑和量化、開環基音周期搜索、信號修正和語音分類。對每一語音幀(20ms),速率判決模塊根據語音參數和模式信息對輸入語音進行分類,并選擇適當的編碼類型和編碼速率,再根據選擇的類型和編碼速率對語音參數進行量化和編碼。
本文從降低碼率和提高語音質量出發,對SMV 算法進行優化與改進。依次采用調整模式/碼率,幀長和采樣率方式進行優化,每一次優化都在前一次的基礎上進行。
選用四種碼率全速率、半速率、1/4速率和1/8速率中的兩種全速率和1/8速率。全速率是SMV 算法中碼率最高的編碼方式,編碼的語音質量最好,在VAD判決出有語音的情況下用它進行編碼,較之原來的SMV 算法,碼率提高,同時語音質量也提高,因而語音質量得以保證; 1/8速率是SMV 算法中碼率最低的編碼方式,在VAD判決出沒有語音的情況下用它進行編碼,語音質量不會降低很多;總的來說,由于碼率全速率的使用概率增加,碼率提高,語音質量有所改善。[4]對定點C語音的改動包括兩方面:一是刪除不需要的另外兩種碼率的程序,二是全速率的VAD檢測的門限值改為1/4速率的門限值,這樣原先判決用1/2速率、1/4速率編碼的幀用全速率編碼,編碼程序簡化,解碼程序相對應的得到簡化。
從降低碼率的角度出發,增加編碼幀的長度,編碼時只需增加少數的比特來表示增加的脈沖,而其它的參數比特數不變,按比例總體比特數減少,從而可以達到降低碼率的目的。[5]這里把語音幀20ms (60個樣點)長度增加到32ms (56個樣點)一幀,沒有超過50ms的語音準平穩時間范圍。對定點C語音的改進主要是對固定碼本脈沖軌道的修改,增加的脈沖數要確保能體現增加的語音長度,同時增加的量化比特數不能太多,否則就達不到降低碼率的作用。本文每個子幀增加1個脈沖,7個量化比特數,四個子幀一共增加28個比特數,下面的表1就是最后一個Rate1/Type1幀子碼本單個8脈沖軌道。

表1 Rate1/Type1幀子碼本單個8脈沖軌道
從提高語音質量的角度出發,采樣率提高,輸入語音質量提高,在輸入一幀的樣本數(256個樣點)不變的情況下,編碼語音的質量也相應提高。本文把采樣率從8000/s提高到11025/s。對定點C語音的改進只需對基音周期的搜索和量化進行修改。本文每個子幀增加1個比特量化基音周期,四個子幀一共增加4個比特數。[6]
下面分別把原始SMV 算法和改進后算法的編碼碼率和語音質量列表進行量化比較。
1.原始SMV的四種傳輸碼率:8550、4000、2000和800bps,改進后兩種碼率:8742、689bps。
2.SMV的Rate1編碼后的總比特數為171 bits,編碼碼率計算為(171 bits)/(20ms)=8.55 kbps,改進后的Rate1編碼后的總比特數為203(171+28+4)bits。
3.編碼碼率計劃(203 bits)/(23.22ms)=8.742 kbps;改進后的Rate1/8的比特數不變,編碼碼率計算為(16bit)/(23.22ms)=0.689kbps。那么平均碼率為8742*0.667+689*0.333=6095bps。
4.SMV算法8k解碼程序所解語音的平均編碼碼率為6.89kbit/s,而改進算法11.025k解碼程序所解語音的平均編碼碼率為6.82kbit/s。從仿真結果可知,兩個解碼語音的語音效果一樣。
5.通過對程序進行匯編優化,使得算法在時間上獲得了較優化,一段32ms的語音幀解碼從優化前60ms到現在只需要10ms的時間,從而使得在實際應用中能為其它相關

圖2 原始8K語音和原始SMV解碼語音比較

圖3 原始11.025K語音和原始SMV解碼語音比較
的功能和算法預留更多的時間,實用化。

圖4 功率譜比較
下面給出原始信號,原始SMV解碼信號和改進SMV解碼信號的PCM語音信號和功率譜的各種比較圖。圖2是原始8K語音和原始SMV解碼語音比較,圖3是原始11.025K語音和原始SMV解碼語音比較,圖4是功率譜比較。
本文對可選模式聲碼器SMV算法進行了深入的探討,對SMV算法的模式/碼率進行優化,不僅降低了解碼程序的復雜度,有利于算法在終端的實現,而且降低了成本;對SMV算法的幀長進行優化,在語音短時平穩性范圍內適量加大編碼幀的長度,能夠降低編碼碼率;對SMV算法的采樣頻率進行優化,把采樣頻率從8000hz提高到11025hz,豐富了高頻成分,提高了語音質量。
在仿真平臺上對優化后的SMV的算法進行編程仿真,從仿真結果觀察,對優化前后的語音質量和碼率進行分析和比較,表明了優化后的算法是可行的、有效的,達到了預期的質量效果。
[1]彭坦,崔慧娟,唐昆.基于低速率語音的自適應聯合編碼調制方案[J].清華大學學報(自然科學版),2007,47(7):1151-1154.
[2]趙力.語音信號處理[M].機械工業出版社,2003:64-65.
[3]徐燕,黃冰.CDMA的兩種變速率語音編碼性能比較[J].現代電子技術,2006(9):14-16.
[4]寧更新,方敏群,韋崗.SMV語音編碼算法及仿真[J].計算機工程與應用,2003,29(10):84-86.
[5]黃德智,馬盡文.LD-CELP語音編碼算法中矢量量化過程的改進[J].電子學報,2001(10):1415-1417.
[6]苗勇,江潔.基于SMV算法的嵌入式系統設計與實現[J].微計算機信息,2008,32(11):15-16.