雖然現(xiàn)在已經有光纖通信等大容量通信手段,但是,在移動通信、衛(wèi)星通信、軍事通信中,節(jié)省帶寬仍然非常重要。傳統(tǒng)的PCM等占用大量信道帶寬的語音編碼技術,已遠遠不能滿足現(xiàn)代數(shù)字通信的需要。歐美、日本等國一直在努力通過降低語音編碼速率來擴大通信系統(tǒng)的容量。在我國,對低速率語音編碼技術也有迫切的需要,如保密通信、短波信道、水聲信道等對碼率要求嚴格的應用場合。但現(xiàn)有語音編碼的國際標準傳輸速率都較高(一般在8 Kb/s以上),而現(xiàn)有的一些低速率語音編碼方案的話音質量又不盡人意。因此,如何有效地降低編碼速率將一直是重要的研究課題。多帶激勵語音聲碼器(MultiBand Excited,MBE)在2.4~4.8 Kb/s速率上能合成出音質比傳統(tǒng)聲碼器好得多的語音,而且具有較好的自然度和容忍環(huán)境噪聲的能力,是目前這一速率范圍內比較理想的參數(shù)編碼方案。
1 MBE編碼(語音分析)
1.1 MBE模型
美國MIT大學林肯實驗室1988年提出了多帶激勵(MBE)語音編碼方案。
MBE語音模型如圖1所示,把激勵頻譜分成許多互不交迭的頻帶,對每一頻帶分別進行二元清、濁音判決,這就是多帶激勵的由來。這樣就允許特定語音幀的激勵信號可以是周期能量(濁音)和噪聲能量(清音)的混合,在一定程度上增加了模擬激勵的自由度,因而使MBE語音模型能產生高質量的語音,而且使MBE語音模型有更強的抗背景噪聲能力。
1.2參數(shù)提取算法
MBE語音模型主要參數(shù)包括:基音周期;各諧波帶清濁音判決信息;各諧波對應譜包絡幅度。
按照MBE算法原理圖(圖2),參數(shù)提取算法的實現(xiàn)分為如下四個步驟:
(1)基音周期粗估
基音周期的粗估采用在時域內進行的方法。因為實際計算中證明,頻域中計算量特別大,并不好用。為解決這一問題,本文采用時域自相關函數(shù)來估計基音周期的方法,這個方法的計算量比頻域法少得多,但只能在基音周期的整數(shù)點值上進行。MBE算法就是對每一幀語音信號,在基音周期預估值范圍內(一般在P=20~147之間),計算誤差函數(shù)Ep(P),使誤差函數(shù)最小的頻率值P就是基音估計的粗估值P1。誤差函數(shù):
(2)基音周期細搜索
基音周期的細搜索采用在頻域內進行的方法,可以進一步在頻域范圍內進行非整數(shù)基音周期的估計,從而提高基音周期估計的精度。即在粗估基音P1鄰域內進行細搜索,確定更精確的基音周期候選值Pt:P1-9/8,P1-7/8,…,P1+7/8,P1+9/8。通過上述算法,可以得到真正基音周期P0。
(3)諧波帶清濁音判決(U/V判決)
研究證明,清音帶與濁音帶不會頻繁交替,而是保持著一定的連續(xù)性,這樣在編碼速率較低時,可以將相鄰的幾個諧波頻帶劃分在一起,共同進行清濁音判決。本文將相鄰的3個諧頻帶劃分在一起,整個頻帶采用最多分成12個帶的方法進行清濁判決。判決閾值采用自適應值,如果擬合誤差小于閾值,判為濁音,否則判為清音。
(4)譜幅度估計
確定U/V后,就可以對各諧波的包絡幅度做最后的確定:
2 MBE解碼(語音合成)
多帶激勵模型語音合成的方法大體分為兩類,即頻域合成法與時域合成法。頻域合成法先用收到的參數(shù)構成重建語音譜,然后利用傅里葉反變換得到時域序列,相當于分析過程的逆過程。這種方法比較直接,但不能保證合成語音基音周期的平滑變化,特別當幀長比較長的時候會產生基音周期跳變,使合成語音不自然。時域合成法能利用插值實現(xiàn)幀與幀之間基音周期平滑過渡,合成出更自然的語音。因此在實際的MBE算法中都采用這種方法。如圖3所示,濁音Sv(n)與清音SU(n)是分開合成的,最后將他們相加,形成完整的合成語音SR(n)。
本文對于濁音部分的語音采用時域合成法,因為該方法可利用插值實現(xiàn)幀與幀之間基音周期的平滑過渡,合成出更自然的語音。而對于清音部分的語音,采用頻域短時傅里葉變換法合成,因為帶通濾波器在頻域中易于實現(xiàn),用FFT實現(xiàn),計算復雜度更低。
3靜音檢測
3.1概念
研究表明,人們在電話交流時,單向通話的時間通常只占總的通信時間的40%或更少,其他約60%的時間為聆聽對方講話和通信中靜默期。靜默期的參數(shù)(背景噪聲參數(shù))比較簡單,用很少的比特數(shù)即可表示。如果能準確地判斷出語音/靜音幀,在靜音期間,只發(fā)送很少的比特數(shù),從理論上來看,語音編碼率應該可以降低50%左右。
靜音檢測,又稱端點檢測(Voice Activation Detection,VAD),其目的是從聲音信號流里識別長時間的靜音期(背景噪聲),使得在不降低業(yè)務質量的情況下達到節(jié)省帶寬資源的作用。
3.2算法
本文采用了“基于熵的VAD檢測法”。熵VAD檢測方法是通過對信號幅值分布概率的統(tǒng)計取對數(shù),以得到熵值。如果語音的幅值的絕對值在1.0左右變化,則不能統(tǒng)計出所期望的概率。為了便于統(tǒng)計計算,因此在處理16位的語音文件時,不能將其歸一化處理,而是通過預處理,使其幅度值分布在[-50,+50]之間。計算前10~20幀信號的熵值的平均值,乘以某個倍數(shù)作為閾值。然后將每一幀的熵值與閾值比較,大于閾值,則VAD=1,否則置0。當VAD=1,暫時記為語音的開始點,如果向后連續(xù)幾幀都判為1,則該點為起始點,否則重新向后搜索。結束點的搜索方法與開始點相同,只不過是向前搜索而已。
4仿真試驗
4.1算法實現(xiàn)的整體流程圖
前面已經詳細說明了語音幀的編解碼過程與算法,對于加入靜音檢測模塊的整體算法流程圖(圖4),現(xiàn)在簡單說明本文采用的靜音幀的編解碼方法:
(1)靜音幀編碼
當VAD檢測結果為0時,為降低編碼率,靜音幀只發(fā)送該靜音幀的幅度均。
(2)靜音幀的解碼
在解碼端,若VAD判決為0時,即當前幀為靜音幀,則生成一均值為0,方差為1的類似白噪聲的隨機序列u(n),再與編碼端發(fā)送的靜音幀的幅度均值相乘得到自適應的白噪聲序列。
4.2試驗結果
原始語音與合成語音時域波形圖比較,如圖5所示。原始語音與合成語音頻譜圖比較,如圖6所示。
4.3結果分析
仿真結果表明,基于VAD檢測的MBE模型聲碼器對于語音信號可以很好地區(qū)分出語音幀和靜音幀。同時,采用VAD檢測算法后,對于被檢測出的語音幀執(zhí)行MBE編解碼處理,靜音幀只傳送幀幅度均值,有效地降低了語音編碼速率,對于正常語速的通話,本文的編碼率可以在原來的基礎上減少50%左右。從聽覺效果上來看,采用VAD檢測的MBE算法的合成語音與未采用VAD檢測的一般MBE算法的合成語音幾乎沒有區(qū)別,兩種方法有較好的主觀聽覺效果和可懂度。
5結語
(1)合成波形失真
從仿真試驗結果的波形圖中可以看出,合成語音波形相對于原始語音波形有一些失真,這與信號處理前的高通濾波器和基音周期粗估前的低通濾波器的設計有關。因為高通濾波器可使輸入信號抗工頻(50~60 Hz)干擾,低通濾波器可減少高頻共振峰和外來高頻噪聲對基音周期提取的影響。因此,濾波器的設計在MBE編碼中至關重要,這也就是下步工作中首要解決的問題。
(2)基音粗估后加入基音平滑模塊,提高基音準確度、平滑語音
由于噪聲的干擾,造成基音周期粗估值的錯鎖(通常是1/2倍頻或1/3倍頻),而基音細搜索只在基音粗估值的附近進行,這就使得基音頻率以及幀之間有很大跳變,合成語音有停頓感。因此,在基音粗估后加入基音平滑模塊,有利于提取基音頻率較高時的基音周期,又不至于影響提取基音周期頻率較低時的基音周期;它既能保證基音周期的正確估計,又能保證基音演變的平滑性,最終得到音質好的合成語音。
評論
查看更多