目前,,G.729A算法多是在TI的5000系列DSP上實(shí)現(xiàn)單通道或雙通道語音壓縮,而本設(shè)計(jì)在現(xiàn)有的TMS320C6711系列DSP平臺(tái)上使用最少的硬件資源和軟件開銷,,壓縮編碼解碼時(shí)間,,實(shí)現(xiàn)了多通道語音實(shí)時(shí)壓縮解壓。
選擇語音壓縮編碼方案
在評(píng)價(jià)一個(gè)語音壓縮編碼方案時(shí),,一般從四個(gè)方面考慮:質(zhì)量,、速率、復(fù)雜度和延時(shí),。目前 ITU-U已制定的G系列標(biāo)準(zhǔn)如表1所示,。
本系統(tǒng)需要的是一種低碼率、語音質(zhì)量良好,、低時(shí)延,、較低算法復(fù)雜度的壓縮方案,從表1中可以看出,,從低碼率考慮就可以排除G.711,、G.721、G.722和G.723,。G.726在速率為16Kb/s 時(shí),,語音質(zhì)量為2.0,這顯然是不可以接受的,。在余下的G.723.1,、G.729、G.729A中,,可以看到G.723.1的算法復(fù)雜度較大,,而且延時(shí)較長(zhǎng),所以也被排除,。和G.729相比,,在算法復(fù)雜度方面,G.729A有較大優(yōu)勢(shì),。實(shí)際上,,G.729A是G.729的一個(gè)簡(jiǎn)化版本,在語音質(zhì)量基本維持不變的情況下,,算法簡(jiǎn)化了很多,。所以本系統(tǒng)最后選用G.729A算法。
G.729A編碼方案是電話帶寬的語音信號(hào)編碼的標(biāo)準(zhǔn),,對(duì)輸入語音性質(zhì)的模擬信號(hào)用8kHz,、采樣,,16比特線性PCM量化。CS-ACELP是基于碼本激勵(lì)線性預(yù)測(cè)(CELP)的編碼模式,,每80個(gè)樣點(diǎn)為一語音幀,,對(duì)語音信號(hào)分析并提取各種參數(shù),把這些參數(shù)編碼發(fā)送,。在解碼端,,把收到的比特流恢復(fù)成參數(shù)編碼,解碼后得到各個(gè)參數(shù),,用自適應(yīng)碼矢序號(hào)從自適應(yīng)碼本中得到自適應(yīng)碼矢,,用固定碼矢序號(hào)從固定碼本中得到固定碼矢,分別乘以它們的增益,,按點(diǎn)相加后構(gòu)成激勵(lì)序列,。用線性預(yù)測(cè)濾波器系數(shù)構(gòu)成合成濾波器。用自適應(yīng)碼本方法實(shí)現(xiàn)長(zhǎng)時(shí)或基音合成濾波,,計(jì)算出合成語音后,,用后置濾波器進(jìn)一步增強(qiáng)音質(zhì)。G.729A算法編碼器原理框圖如圖1所示,。
圖1 G.729A算法編碼器原理框圖
硬件系統(tǒng)設(shè)計(jì)
數(shù)字信號(hào)處理器具有運(yùn)行速度快,、性價(jià)比高、功耗低,、開發(fā)快的特點(diǎn),。本系統(tǒng)選擇的TMS320C6711是高性能浮點(diǎn)數(shù)字信號(hào)處理器,可以成功地實(shí)現(xiàn)實(shí)時(shí)語音壓縮和解壓,。
1 系統(tǒng)原理框圖
本系統(tǒng)以TMS320C6711為核心,,外擴(kuò)32MB SDRAM和2MB FLASH。DSP仿真器用于DSP的在線調(diào)試開發(fā),,可以通過軟件在線控制DSP的運(yùn)行狀態(tài),,并能夠查看DSP內(nèi)部寄存器。PC是開發(fā)人員和DSP系統(tǒng)之間的交互界面,,通過PC上安裝的CCS集成開發(fā)環(huán)境,,開發(fā)人員可以在友好的圖形界面下對(duì)目標(biāo)系統(tǒng)進(jìn)行操作。系統(tǒng)原理框圖如圖2所示,。
圖2 系統(tǒng)硬件框圖
2 模擬電路接口設(shè)計(jì)
TLV320AIC10芯片模擬電路設(shè)計(jì)包括麥克風(fēng)接口設(shè)計(jì)和揚(yáng)聲器接口設(shè)計(jì),,由于TLV320AIC10輸出具有600Ω驅(qū)動(dòng)能力,足夠驅(qū)動(dòng)一個(gè)耳機(jī),,也可以經(jīng)過一個(gè)功率放大芯片驅(qū)動(dòng)揚(yáng)聲器,,所以輸出電路較為簡(jiǎn)單。
TLV320AIC10內(nèi)置運(yùn)算放大器電路,,可以方便的與麥克風(fēng)接口,,接口電路如圖3所示,。應(yīng)當(dāng)注意的是VMID引腳最大輸出電流為5mA,,為了防止輸出電流超過限制,,應(yīng)當(dāng)串聯(lián)一個(gè)起保護(hù)作用的電位器RP1。
圖3 模擬電路接口
3 數(shù)字電路接口設(shè)計(jì)
TLV320AIC10支持與TI 5000和6000系列的無縫接口,。TLV320AIC10通過McBSP接口與TMS320C6711 DSP相連,,如圖4所示。
圖4 數(shù)字電路接口
注意,,TLV320AIC10采用主模式,,由TLV320AIC10向TMS320C6711 DSP提供串行通信頻率SCLK。MCLK提供TLV320AIC10的工作頻率,,包括串行通信頻率SCLK和采樣頻率fs,。串行通信頻率為MCLK的二分頻,fs與MCLK關(guān)系如下:fs=MCLK/(256×N),,N=1,,2...,32,。在本系統(tǒng)中N為4,,fs為8000,故MCLK是8.19MHz,。
軟件系統(tǒng)設(shè)計(jì)
本系統(tǒng)實(shí)現(xiàn)的目標(biāo)是能夠?qū)崟r(shí)輸入語音,、壓縮,并能把接收到的G.729A編碼解壓,、播放出來,。事實(shí)上DSP要同時(shí)處理多個(gè)任務(wù):從外部語音芯片獲取采集數(shù)據(jù)、編碼,、解碼,、把解碼后的數(shù)據(jù)送到外部語音芯片播放。本系統(tǒng)采用TI BIOS嵌入式實(shí)時(shí)操作系統(tǒng),,并在此基礎(chǔ)上開發(fā)了硬件驅(qū)動(dòng)程序和上層應(yīng)用程序,,最后測(cè)試了實(shí)現(xiàn)結(jié)果。系統(tǒng)軟件結(jié)構(gòu)如圖5所示,。
圖5 系統(tǒng)軟件結(jié)構(gòu)圖
實(shí)驗(yàn)結(jié)果
從實(shí)驗(yàn)仿真中可以得到,,重建語音與原始語音的頻率峰值完全相同,都在468.75Hz,,這表示G.729A的LPC參數(shù)分析和基音頻率估計(jì)是非常正確的,,但是重建語音在200Hz、700Hz左右有一個(gè)原始語音沒有的波峰,,而且重建語音在800Hz以后的幅度沒有迅速下降,。這說明二者還是稍有差別的,。
結(jié)束語
本文對(duì)基于DSP的G.729A語音壓縮算法進(jìn)行了嚴(yán)格的測(cè)試,測(cè)試結(jié)果表明:(1)算法通過了ITU-T的測(cè)試向量,,達(dá)到了ITU-T標(biāo)準(zhǔn),;(2)本編碼算法對(duì)于時(shí)間長(zhǎng)度為10ms的一幀語音數(shù)據(jù)編碼需要1.1ms,解碼需要0.29ms,,完全可以在TMS320C6711 DSP處理器上實(shí)時(shí)實(shí)現(xiàn)多路語音編解碼,。