對線性預測語音解壓縮方法的探討
摘要:本文針對常見的語音壓縮方法,具體敘述了線性預測編碼的基本原理及具體格式,并對算法實現(xiàn)的軟件及硬件進行了詳細的分析。
本文引用地址:http://m.butianyuan.cn/article/242240.htm關鍵詞:線性預測編碼 格形濾波器 PWM MATLAB
引言
現(xiàn)實生活中,有大量語音數(shù)字存儲和傳輸、語音綜合、說話人確認和辨認、語音識別的應用,這些應用需要處理的數(shù)據(jù)量很大,這必須采用一定的壓縮方法進行處理。
對頻率范圍為300Hz——3000Hz的語音,諸如電腦語音圖書、真人發(fā)聲電子字典、語言學習機等,只需要一般的語音壓縮方法,而對20Hz——20KHz的音樂,則需高級的壓縮方法。當然,在選擇語音表示方法時,數(shù)據(jù)壓縮率不是唯的考慮,還要考慮價格、表示的靈活性、語音考慮價格、表示的靈活性、語音的質量等諸多因素。在選擇信號表示以及隨后作用的數(shù)字信號處理方法時最重要的考慮還是應用的實際需要。
針對我們目前開發(fā)的發(fā)音電子字典及語音學習機等產(chǎn)生,既需要音質清晰又要價格便宜,我們考慮采用參數(shù)表示語音信號的LPC,MELP,CELP壓縮方法。
LPC(Linear Predictive Coding-線性預測編碼),是一種低速率的語音參數(shù)表示方法,它根據(jù)最小的方誤差的準則,用過去的若干語音數(shù)字信號來預測當前的語音信號,將估算出來的語音參數(shù)送到語音合成模型后輸出語音。混合激勵線性預測MELP和碼本激勵線性預測CELP也是基于線性預測上的語音壓縮方法,數(shù)據(jù)壓縮量銷遜于LPC,但因其語音數(shù)據(jù)的制作不需要專門的硬件與有經(jīng)驗的調音人員,在語音產(chǎn)品的開發(fā)中也得到了廣泛的應用,本文重點描述LPC算法的軟件和硬件實現(xiàn)。
LPC原理簡述
LPC語音編碼的基礎是語音產(chǎn)生模型,它模擬人的發(fā)生過程。在這個模型中,語音信號分為清音和濁間,在濁音時聲道中產(chǎn)生對應音調周期的脈沖列,而在清音時,則產(chǎn)生白噪聲序列,語音就是由這些激勵信號激勵一個自適應濾波器(即全極點濾波器)產(chǎn)生的。
LPC濾波器的參數(shù)ak是通過線性預測的方法,即用若干過去的樣值預測當前樣值提取的,預測值與真值之間的誤差滿足最小均方誤差準則。參數(shù)隨時間逐幀更新,更新速率30~100次/秒,即幀移為10~33ms。在每幀之間對參數(shù)進行內(nèi)插以適應參數(shù)隨時間緩慢變化。
因此,LPC模型只需傳輸增益系數(shù),濁音和清音的判決信息、濁音音調和全極點濾波器的參數(shù){ak},k=1,…p,用超低BIT率便可實現(xiàn)語音信號的傳送。這種高壓縮率可以大大降低語音識別中的存儲量。
語音合成模型見圖1。
LPC軟件實現(xiàn)
LPC算法的實現(xiàn)有直接法、協(xié)方差法、自相關法、斜格法等諸多分析方法。其中斜格法能解決精度和穩(wěn)定度的矛盾,它是以格形濾波器為基礎。我們所用的LPC聲碼器就是作斜格法來實現(xiàn)線性預測。
線性預測編碼算法的編碼格式中,有10個線性預測系數(shù)K1-K10、增益、音調、重復位總紅共編碼成54bits。
LPC各幀參數(shù)編碼格式見表1。
在解碼時,要對接收的數(shù)值進行轉換與插值。其算法接收的的數(shù)值進行轉換與插值。其算法流程見圖2.
線性預測系數(shù)、增益、基音周期等參數(shù)值每個基音周期更新一次,清音幀、濁音幀及靜音幀間相互轉換時不進行插值更新。濁音和清音的激勵信號是按基音周期從內(nèi)部ROM區(qū)取出輸入到音調寄存器,與增益相乘后送到LPC濾波器。
LPC硬件實現(xiàn)
在線性預測分析中,語音信號直接決定一組預測系數(shù),但由于語音信號有時變特性,為保證語音信號在短時間內(nèi)預測參數(shù)及頻率固定,實驗以固定頻率聲響最后一響“嘀”為對象,對LPC聲碼器的硬件部分進行測試。首先,借助專用的LPC編碼設備生成PCL十六進制格式數(shù)據(jù)見表2。
從以上數(shù)據(jù)可以知道此語音由靜音幀、濁音幀和停止幀組成。第一幀是靜音幀,最后一幀是停止幀,中間40幀是濁音幀,該40個濁音幀具有相同的能量、音調及K參數(shù)。經(jīng)分析得出能量值、音調及其K參數(shù)(見表3)。
表3 各參數(shù)計算值
名稱 | 位數(shù) | 標號(二進制) | 標號(十六制進) | 查表值 | 實際參數(shù)值 |
增益 | 4 | 1001 | 9H | 1AH | 208 |
重復幀 | 1 | 0 | 0 | 0 | 0 |
音調 | 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 | ||||
K12 | 0 |
我們借助MATLAB工個搭成了12組格形濾波器及二階低通濾波器來模擬LPC模型中的數(shù)字濾波器,見圖3。將帶有增益的濁音送入輸入端,線性預測系數(shù)送入格形濾波器,濾波器采用10KHz采樣。
填入其余相應的參數(shù)后開始仿真,得出的結果見圖4。
從圖中可以看出,不考慮頻率因素,對增益、預測參數(shù)固定的這組語音數(shù)據(jù)而言,實驗結構最后超趨近于1024。
把數(shù)據(jù)1024輸入PWM寄存器,經(jīng)過12位的脈寬調制(PWM)進行D/A轉換處理,可得出輸出模擬信號,占空比為:
1024/2048=0.5
同時,我們通過示波器直接測試語音芯片的DAC+端,可以觀察到頻率為500Hz、占空比為0.5的一系列的矩形脈沖見圖5,波形結果與通過MATLAB工具搭成的電路結果一致。
結語
我們對PLC,MELP,CELP不可逆語音壓縮法進行測試,得出了LPC語音合成格式、算法流程以及硬件12級格式、算法流程以及硬件12級形波器、低通濾波器的具體實現(xiàn)形式。從實驗可以證明LPC算法是通過軟件從語音數(shù)據(jù)包提取數(shù)據(jù),經(jīng)過軟件查表計算后將相應的參數(shù)送往硬件各部分處理,最后合成語音。
評論