新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 對線性預(yù)測語音解壓縮方法的探討

對線性預(yù)測語音解壓縮方法的探討

作者: 時間:2006-05-07 來源:網(wǎng)絡(luò) 收藏

摘要:本文針對常見的語音壓縮方法,具體敘述了線性預(yù)測編碼的基本原理及具體格式,并對算法實現(xiàn)的軟件及硬件進(jìn)行了詳細(xì)的分析。

本文引用地址:http://2s4d.com/article/242240.htm

關(guān)鍵詞:線性預(yù)測編碼 格形濾波器 PWM MATLAB

引言

現(xiàn)實生活中,有大量語音數(shù)字存儲和傳輸、語音綜合、說話人確認(rèn)和辨認(rèn)、語音識別的應(yīng)用,這些應(yīng)用需要處理的數(shù)據(jù)量很大,這必須采用一定的壓縮方法進(jìn)行處理。

對頻率范圍為300Hz——3000Hz的語音,諸如電腦語音圖書、真人發(fā)聲電子字典、語言學(xué)習(xí)機(jī)等,只需要一般的語音壓縮方法,而對20Hz——20KHz的音樂,則需高級的壓縮方法。當(dāng)然,在選擇語音表示方法時,數(shù)據(jù)壓縮率不是唯的考慮,還要考慮價格、表示的靈活性、語音考慮價格、表示的靈活性、語音的質(zhì)量等諸多因素。在選擇信號表示以及隨后作用的方法時最重要的考慮還是應(yīng)用的實際需要。

針對我們目前開發(fā)的發(fā)音電子字典及語音學(xué)習(xí)機(jī)等產(chǎn)生,既需要音質(zhì)清晰又要價格便宜,我們考慮采用參數(shù)表示語音信號的LPC,MELP,CELP壓縮方法。

LPC(Linear Predictive Coding-線性預(yù)測編碼),是一種低速率的語音參數(shù)表示方法,它根據(jù)最小的方誤差的準(zhǔn)則,用過去的若干語音數(shù)字信號來預(yù)測當(dāng)前的語音信號,將估算出來的語音參數(shù)送到語音合成模型后輸出語音。混合激勵線性預(yù)測MELP和碼本激勵線性預(yù)測CELP也是基于線性預(yù)測上的語音壓縮方法,數(shù)據(jù)壓縮量銷遜于LPC,但因其語音數(shù)據(jù)的制作不需要專門的硬件與有經(jīng)驗的調(diào)音人員,在語音產(chǎn)品的開發(fā)中也得到了廣泛的應(yīng)用,本文重點描述LPC算法的軟件和硬件實現(xiàn)。

LPC原理簡述

LPC語音編碼的基礎(chǔ)是語音產(chǎn)生模型,它模擬人的發(fā)生過程。在這個模型中,語音信號分為清音和濁間,在濁音時聲道中產(chǎn)生對應(yīng)音調(diào)周期的脈沖列,而在清音時,則產(chǎn)生白噪聲序列,語音就是由這些激勵信號激勵一個自適應(yīng)濾波器(即全極點濾波器)產(chǎn)生的。

LPC濾波器的參數(shù)ak是通過線性預(yù)測的方法,即用若干過去的樣值預(yù)測當(dāng)前樣值提取的,預(yù)測值與真值之間的誤差滿足最小均方誤差準(zhǔn)則。參數(shù)隨時間逐幀更新,更新速率30~100次/秒,即幀移為10~33ms。在每幀之間對參數(shù)進(jìn)行內(nèi)插以適應(yīng)參數(shù)隨時間緩慢變化。

因此,LPC模型只需傳輸增益系數(shù),濁音和清音的判決信息、濁音音調(diào)和全極點濾波器的參數(shù){ak},k=1,…p,用超低BIT率便可實現(xiàn)語音信號的傳送。這種高壓縮率可以大大降低語音識別中的存儲量。

語音合成模型見圖1。

LPC軟件實現(xiàn)

LPC算法的實現(xiàn)有直接法、協(xié)方差法、自相關(guān)法、斜格法等諸多分析方法。其中斜格法能解決精度和穩(wěn)定度的矛盾,它是以格形濾波器為基礎(chǔ)。我們所用的LPC聲碼器就是作斜格法來實現(xiàn)線性預(yù)測。

線性預(yù)測編碼算法的編碼格式中,有10個線性預(yù)測系數(shù)K1-K10、增益、音調(diào)、重復(fù)位總紅共編碼成54bits。

LPC各幀參數(shù)編碼格式見表1。

在解碼時,要對接收的數(shù)值進(jìn)行轉(zhuǎn)換與插值。其算法接收的的數(shù)值進(jìn)行轉(zhuǎn)換與插值。其算法流程見圖2.

線性預(yù)測系數(shù)、增益、基音周期等參數(shù)值每個基音周期更新一次,清音幀、濁音幀及靜音幀間相互轉(zhuǎn)換時不進(jìn)行插值更新。濁音和清音的激勵信號是按基音周期從內(nèi)部ROM區(qū)取出輸入到音調(diào)寄存器,與增益相乘后送到LPC濾波器。

LPC硬件實現(xiàn)

在線性預(yù)測分析中,語音信號直接決定一組預(yù)測系數(shù),但由于語音信號有時變特性,為保證語音信號在短時間內(nèi)預(yù)測參數(shù)及頻率固定,實驗以固定頻率聲響最后一響“嘀”為對象,對LPC聲碼器的硬件部分進(jìn)行測試。首先,借助專用的LPC編碼設(shè)備生成PCL十六進(jìn)制格式數(shù)據(jù)見表2。

從以上數(shù)據(jù)可以知道此語音由靜音幀、濁音幀和停止幀組成。第一幀是靜音幀,最后一幀是停止幀,中間40幀是濁音幀,該40個濁音幀具有相同的能量、音調(diào)及K參數(shù)。經(jīng)分析得出能量值、音調(diào)及其K參數(shù)(見表3)。

表3 各參數(shù)計算值

名稱 位數(shù) 標(biāo)號(二進(jìn)制) 標(biāo)號(十六制進(jìn)) 查表值 實際參數(shù)值
增益 4 1001 9H 1AH 208
重復(fù)幀 1 0 0 0 0
音調(diào) 7 0000001 1H 100H 500HZ
K1 6 101111 2FH FECH -0.009765625
K2 6 010111 17H 0 0
K3 5 10111 17H 14H 0.15625
K4 5 01011 BH F9H -0.0546825
K5 4 0101 5H F3H -0.1015625
K6 4 0100 4H FCH -0.03125
K7 4 1001 9H 14H 0.15625
K8 3 111 7H 58H 0.6875
K9 3 101 5H 10H 0.125
K10 3 101 5H 11H 0.1328125
K11 0     
K120    

我們借助MATLAB工個搭成了12組格形濾波器及二階低通濾波器來模擬LPC模型中的數(shù)字濾波器,見圖3。將帶有增益的濁音送入輸入端,線性預(yù)測系數(shù)送入格形濾波器,濾波器采用10KHz采樣。

填入其余相應(yīng)的參數(shù)后開始仿真,得出的結(jié)果見圖4。

從圖中可以看出,不考慮頻率因素,對增益、預(yù)測參數(shù)固定的這組語音數(shù)據(jù)而言,實驗結(jié)構(gòu)最后超趨近于1024。

把數(shù)據(jù)1024輸入PWM寄存器,經(jīng)過12位的脈寬調(diào)制(PWM)進(jìn)行D/A轉(zhuǎn)換處理,可得出輸出模擬信號,占空比為:

1024/2048=0.5

同時,我們通過示波器直接測試語音芯片的DAC+端,可以觀察到頻率為500Hz、占空比為0.5的一系列的矩形脈沖見圖5,波形結(jié)果與通過MATLAB工具搭成的電路結(jié)果一致。

結(jié)語

我們對PLC,MELP,CELP不可逆語音壓縮法進(jìn)行測試,得出了LPC語音合成格式、算法流程以及硬件12級格式、算法流程以及硬件12級形波器、低通濾波器的具體實現(xiàn)形式。從實驗可以證明LPC算法是通過軟件從語音數(shù)據(jù)包提取數(shù)據(jù),經(jīng)過軟件查表計算后將相應(yīng)的參數(shù)送往硬件各部分處理,最后合成語音。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉