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