夏曉峰
(韶關(guān)學(xué)院 韶州師范分院計(jì)算機(jī)系,廣東 韶關(guān) 512009)
當(dāng)語音信號(hào)在實(shí)際傳輸過程中不可避免地要受到來自周圍環(huán)境和傳輸媒介引入的噪聲、通訊設(shè)備內(nèi)部噪聲、乃至其它語音的干擾時(shí),不可能完全消除干擾信號(hào),語音增強(qiáng)的主要任務(wù)就是從噪聲背景中提取有用的語音信號(hào),抑制、降低噪音干撓,提高語音質(zhì)量。[1]
目前的語音識(shí)別系統(tǒng)大多工作在安靜環(huán)境下,背景噪聲的引入會(huì)嚴(yán)重影響識(shí)別系統(tǒng)的性能,判定一個(gè)語音識(shí)別系統(tǒng)好壞有兩個(gè)指標(biāo),分別是改善語音質(zhì)量和提高語音可懂度,但是兩個(gè)指標(biāo)難以同時(shí)達(dá)到,需要根據(jù)語音增強(qiáng)的具體應(yīng)用場合做出不同的選擇。[2]基于進(jìn)一步提高語音質(zhì)量和實(shí)用化、降低碼率的考慮,本文對(duì)SMV算法進(jìn)行改進(jìn)。
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(平均碼率)和語音質(zhì)量之間的側(cè)重點(diǎn)略有不同,SMV編碼器原理框圖如圖1所示。
圖1 SMV編碼器原理框圖
其中預(yù)處理模塊包括靜音增強(qiáng)、高通濾波、噪聲抑制和自適應(yīng)傾斜補(bǔ)償濾波。幀處理模塊包括LPC分析、LSP平滑和量化、開環(huán)基音周期搜索、信號(hào)修正和語音分類。對(duì)每一語音幀(20ms),速率判決模塊根據(jù)語音參數(shù)和模式信息對(duì)輸入語音進(jìn)行分類,并選擇適當(dāng)?shù)木幋a類型和編碼速率,再根據(jù)選擇的類型和編碼速率對(duì)語音參數(shù)進(jìn)行量化和編碼。
本文從降低碼率和提高語音質(zhì)量出發(fā),對(duì)SMV 算法進(jìn)行優(yōu)化與改進(jìn)。依次采用調(diào)整模式/碼率,幀長和采樣率方式進(jìn)行優(yōu)化,每一次優(yōu)化都在前一次的基礎(chǔ)上進(jìn)行。
選用四種碼率全速率、半速率、1/4速率和1/8速率中的兩種全速率和1/8速率。全速率是SMV 算法中碼率最高的編碼方式,編碼的語音質(zhì)量最好,在VAD判決出有語音的情況下用它進(jìn)行編碼,較之原來的SMV 算法,碼率提高,同時(shí)語音質(zhì)量也提高,因而語音質(zhì)量得以保證; 1/8速率是SMV 算法中碼率最低的編碼方式,在VAD判決出沒有語音的情況下用它進(jìn)行編碼,語音質(zhì)量不會(huì)降低很多;總的來說,由于碼率全速率的使用概率增加,碼率提高,語音質(zhì)量有所改善。[4]對(duì)定點(diǎn)C語音的改動(dòng)包括兩方面:一是刪除不需要的另外兩種碼率的程序,二是全速率的VAD檢測的門限值改為1/4速率的門限值,這樣原先判決用1/2速率、1/4速率編碼的幀用全速率編碼,編碼程序簡化,解碼程序相對(duì)應(yīng)的得到簡化。
從降低碼率的角度出發(fā),增加編碼幀的長度,編碼時(shí)只需增加少數(shù)的比特來表示增加的脈沖,而其它的參數(shù)比特?cái)?shù)不變,按比例總體比特?cái)?shù)減少,從而可以達(dá)到降低碼率的目的。[5]這里把語音幀20ms (60個(gè)樣點(diǎn))長度增加到32ms (56個(gè)樣點(diǎn))一幀,沒有超過50ms的語音準(zhǔn)平穩(wěn)時(shí)間范圍。對(duì)定點(diǎn)C語音的改進(jìn)主要是對(duì)固定碼本脈沖軌道的修改,增加的脈沖數(shù)要確保能體現(xiàn)增加的語音長度,同時(shí)增加的量化比特?cái)?shù)不能太多,否則就達(dá)不到降低碼率的作用。本文每個(gè)子幀增加1個(gè)脈沖,7個(gè)量化比特?cái)?shù),四個(gè)子幀一共增加28個(gè)比特?cái)?shù),下面的表1就是最后一個(gè)Rate1/Type1幀子碼本單個(gè)8脈沖軌道。
表1 Rate1/Type1幀子碼本單個(gè)8脈沖軌道
從提高語音質(zhì)量的角度出發(fā),采樣率提高,輸入語音質(zhì)量提高,在輸入一幀的樣本數(shù)(256個(gè)樣點(diǎn))不變的情況下,編碼語音的質(zhì)量也相應(yīng)提高。本文把采樣率從8000/s提高到11025/s。對(duì)定點(diǎn)C語音的改進(jìn)只需對(duì)基音周期的搜索和量化進(jìn)行修改。本文每個(gè)子幀增加1個(gè)比特量化基音周期,四個(gè)子幀一共增加4個(gè)比特?cái)?shù)。[6]
下面分別把原始SMV 算法和改進(jìn)后算法的編碼碼率和語音質(zhì)量列表進(jìn)行量化比較。
1.原始SMV的四種傳輸碼率:8550、4000、2000和800bps,改進(jìn)后兩種碼率:8742、689bps。
2.SMV的Rate1編碼后的總比特?cái)?shù)為171 bits,編碼碼率計(jì)算為(171 bits)/(20ms)=8.55 kbps,改進(jìn)后的Rate1編碼后的總比特?cái)?shù)為203(171+28+4)bits。
3.編碼碼率計(jì)劃(203 bits)/(23.22ms)=8.742 kbps;改進(jìn)后的Rate1/8的比特?cái)?shù)不變,編碼碼率計(jì)算為(16bit)/(23.22ms)=0.689kbps。那么平均碼率為8742*0.667+689*0.333=6095bps。
4.SMV算法8k解碼程序所解語音的平均編碼碼率為6.89kbit/s,而改進(jìn)算法11.025k解碼程序所解語音的平均編碼碼率為6.82kbit/s。從仿真結(jié)果可知,兩個(gè)解碼語音的語音效果一樣。
5.通過對(duì)程序進(jìn)行匯編優(yōu)化,使得算法在時(shí)間上獲得了較優(yōu)化,一段32ms的語音幀解碼從優(yōu)化前60ms到現(xiàn)在只需要10ms的時(shí)間,從而使得在實(shí)際應(yīng)用中能為其它相關(guān)
圖2 原始8K語音和原始SMV解碼語音比較
圖3 原始11.025K語音和原始SMV解碼語音比較
的功能和算法預(yù)留更多的時(shí)間,實(shí)用化。
圖4 功率譜比較
下面給出原始信號(hào),原始SMV解碼信號(hào)和改進(jìn)SMV解碼信號(hào)的PCM語音信號(hào)和功率譜的各種比較圖。圖2是原始8K語音和原始SMV解碼語音比較,圖3是原始11.025K語音和原始SMV解碼語音比較,圖4是功率譜比較。
本文對(duì)可選模式聲碼器SMV算法進(jìn)行了深入的探討,對(duì)SMV算法的模式/碼率進(jìn)行優(yōu)化,不僅降低了解碼程序的復(fù)雜度,有利于算法在終端的實(shí)現(xiàn),而且降低了成本;對(duì)SMV算法的幀長進(jìn)行優(yōu)化,在語音短時(shí)平穩(wěn)性范圍內(nèi)適量加大編碼幀的長度,能夠降低編碼碼率;對(duì)SMV算法的采樣頻率進(jìn)行優(yōu)化,把采樣頻率從8000hz提高到11025hz,豐富了高頻成分,提高了語音質(zhì)量。
在仿真平臺(tái)上對(duì)優(yōu)化后的SMV的算法進(jìn)行編程仿真,從仿真結(jié)果觀察,對(duì)優(yōu)化前后的語音質(zhì)量和碼率進(jìn)行分析和比較,表明了優(yōu)化后的算法是可行的、有效的,達(dá)到了預(yù)期的質(zhì)量效果。
[1]彭坦,崔慧娟,唐昆.基于低速率語音的自適應(yīng)聯(lián)合編碼調(diào)制方案[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2007,47(7):1151-1154.
[2]趙力.語音信號(hào)處理[M].機(jī)械工業(yè)出版社,2003:64-65.
[3]徐燕,黃冰.CDMA的兩種變速率語音編碼性能比較[J].現(xiàn)代電子技術(shù),2006(9):14-16.
[4]寧更新,方敏群,韋崗.SMV語音編碼算法及仿真[J].計(jì)算機(jī)工程與應(yīng)用,2003,29(10):84-86.
[5]黃德智,馬盡文.LD-CELP語音編碼算法中矢量量化過程的改進(jìn)[J].電子學(xué)報(bào),2001(10):1415-1417.
[6]苗勇,江潔.基于SMV算法的嵌入式系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2008,32(11):15-16.