基于TMS320C5416的G.729語音編解碼算法的優(yōu)化和實現(xiàn)
1 G.729編解碼算法的原理
語音信號的波形編碼力圖使重建語音波形保持原始語音信號的波形形狀。這類編碼器通常將語音信號作為一般的波形信號來處理,它具有適應(yīng)能力強、語音質(zhì)量好等優(yōu)點,但所需用的編碼速率高。參數(shù)編碼通過對語音信號特征參數(shù)的提取及編碼來降低編碼速率,力圖使重建語音信號盡可能保持原語音的語意,而重建信號的波形同原語音信號的波形可能會有相當大的差別。二十世紀70年代中期,特別是80年代以來,語音編碼技術(shù)有了突破性的進展,提出了一些非常有效的處理方法,如混合編碼。這種算法克服了原有波形編碼器與聲碼器的弱點,而結(jié)合了它們各自的長處,在4kb/s~16kb/s速率上能夠得到高質(zhì)量合成語音,而在本質(zhì)上也具有波形編碼的優(yōu)點。G.729所描述的CS-ACELP(Conjugate-Structure Al2gebraic-Coder-Excited Linear Prediction)聲碼器采用的CELP聲碼器就屬于這類編碼器。
CELP編碼基于合成分析(A-B-S)的搜索過程、感知加權(quán)矢量量化(VQ)和線性預(yù)測(LP)技術(shù),采用這種編碼方案使傳輸?shù)谋忍芈蚀蟠蠼档汀S-ACELP的思想是由共軛結(jié)構(gòu)碼線性預(yù)測(CS-CELP)和代數(shù)碼本激勵線性預(yù)測(ACELP)的思想整合而來的。在編碼端,主要進行有線譜對(LSP)參數(shù)的量化、基音分析、固定碼本搜索和增益量化四個步驟。編碼器首先對輸入信號(8kHz采樣16bit PCM信號)進行預(yù)處理,然后對每幀語音信號進行線性預(yù)測,得到LPC系數(shù),并把LPC參數(shù)轉(zhuǎn)換成LSP參數(shù),最后對LSP參數(shù)進行矢量量化。在接下來的基音分析中,每一幀先搜索到最佳基音時延T的一個候選時延,然后依據(jù)候選時延搜索每一幀的最佳基音時延。最后還要對自適應(yīng)碼本增益和固定碼本增益進行量化。在解碼端,首先由接收到的比特流得到各種參數(shù)標志進行解碼,得到10ms語音幀編碼參數(shù)。解碼器在每一子幀內(nèi),對LSP系數(shù)進行內(nèi)插,并把它們變換成LP濾波器系數(shù)后,依次進行激勵生成、語音合成和后處理工作。
2 算法優(yōu)化和DSP應(yīng)用改進
G.729語音編解碼系統(tǒng)要求實時性高,需在有限的時間內(nèi)對外部輸入的信號完成指定處理,即信號處理的速度必須大于等于輸入信號更新的速度,因此需要進行算法的優(yōu)化改進。對C語言編寫的代碼進行優(yōu)化,同時使用內(nèi)聯(lián)指令,又在C程序中嵌入?yún)R編語句,盡量提高信號處理的速度。
2.1 算法的優(yōu)化改進
首先在算法上進行改進,如圖1所示,采用一種結(jié)合WD-LSP(Weighted Delta-LSP)[1]函數(shù)并結(jié)合次最優(yōu)部分碼本快速搜索的CS-ACELP語音編碼算法,同時采用基于聲學心理模型的知覺加權(quán)濾波器,使語音編碼在不降低語音質(zhì)量的情況下降低計算復(fù)雜度。WD-LSP函數(shù)主要用于區(qū)分UV-V(unvoice-voice)/S-V(silence-voice)的邊界。其原理是:如果函數(shù)值大于給定的極限值η,則開環(huán)基音延遲Top重新估計,否則,開環(huán)基音延遲Top用前一幀自適應(yīng)碼本延遲來更新。在第i幀F(xiàn)i的WD-LSP函數(shù)和用于確定開環(huán)基音延遲Top的算法如下:
其中LSPi(k)是在第i幀中的k階LSP系數(shù);wk是加權(quán)系數(shù),它用于增強UV-V/S-V邊界的WD-LSP函數(shù)。為了獲取wk,一個包含23 014個UV-V邊界和9 519個S-V邊界的大型數(shù)據(jù)庫用于估計delta-LSP在UV-V/S-V邊界的平方根值(RMS)。因此,WD-LSP用于檢測VU-V/S-V邊界非常敏感。η是一個設(shè)為0.01的極限值。整個計算可節(jié)省21%的計算量,經(jīng)過這種算法前后語音信號如圖2所示。本文引用地址:http://butianyuan.cn/article/167073.htm
評論