基于DSP的數(shù)字語(yǔ)音壓縮系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
語(yǔ)音的數(shù)字通信無(wú)論在可靠性、抗干擾能力、保密性還是價(jià)格方面都遠(yuǎn)優(yōu)于模擬語(yǔ)音信號(hào),但這是以信道占用寬頻帶寬為代價(jià)的。因此為了減少語(yǔ)音信號(hào)所占用的帶寬或存儲(chǔ)空間,就必須對(duì)數(shù)字語(yǔ)音信號(hào)進(jìn)行壓縮編碼。
一個(gè)優(yōu)秀的語(yǔ)音壓縮系統(tǒng)要求能夠在軟硬件資源占用比例低和壓縮編解碼時(shí)間短的同時(shí)可以實(shí)現(xiàn)多通道語(yǔ)音實(shí)時(shí)壓縮。目前,G.729A算法多是在TI的5000系列DSP上實(shí)現(xiàn)單通道或雙通道語(yǔ)音壓縮,而本設(shè)計(jì)在現(xiàn)有的TMS320C6711系列DSP平臺(tái)上使用最少的硬件資源和軟件開銷,壓縮編碼解碼時(shí)間,實(shí)現(xiàn)了多通道語(yǔ)音實(shí)時(shí)壓縮解壓。
選擇語(yǔ)音壓縮編碼方案
在評(píng)價(jià)一個(gè)語(yǔ)音壓縮編碼方案時(shí),一般從四個(gè)方面考慮:質(zhì)量、速率、復(fù)雜度和延時(shí)。目前 ITU-U已制定的G系列標(biāo)準(zhǔn)如表1所示。
本系統(tǒng)需要的是一種低碼率、語(yǔ)音質(zhì)量良好、低時(shí)延、較低算法復(fù)雜度的壓縮方案,從表1中可以看出,從低碼率考慮就可以排除G.711、G.721、G.722和G.723。G.726在速率為16Kb/s 時(shí),語(yǔ)音質(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)化版本,在語(yǔ)音質(zhì)量基本維持不變的情況下,算法簡(jiǎn)化了很多。所以本系統(tǒng)最后選用G.729A算法。
G.729A編碼方案是電話帶寬的語(yǔ)音信號(hào)編碼的標(biāo)準(zhǔn),對(duì)輸入語(yǔ)音性質(zhì)的模擬信號(hào)用8kHz、采樣,16比特線性PCM量化。CS-ACELP是基于碼本激勵(lì)線性預(yù)測(cè)(CELP)的編碼模式,每80個(gè)樣點(diǎn)為一語(yǔ)音幀,對(duì)語(yǔ)音信號(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ì)算出合成語(yǔ)音后,用后置濾波器進(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í)語(yǔ)音壓縮和解壓。
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 系列的無(wú)縫接口。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í)輸入語(yǔ)音、壓縮,并能把接收到的 G.729A 編碼解壓、播放出來(lái)。事實(shí)上 DSP 要同時(shí)處理多個(gè)任務(wù):從外部語(yǔ)音芯片獲取采集數(shù)據(jù)、編碼、解碼、把解碼后的數(shù)據(jù)送到外部語(yǔ)音芯片播放。本系統(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)仿真中可以得到,重建語(yǔ)音與原始語(yǔ)音的頻率峰值完全相同,都在468.75Hz,這表示G.729A的LPC參數(shù)分析和基音頻率估計(jì)是非常正確的,但是重建語(yǔ)音在200Hz、700Hz 左右有一個(gè)原始語(yǔ)音沒有的波峰,而且重建語(yǔ)音在800Hz以后的幅度沒有迅速下降。這說明二者還是稍有差別的。
結(jié)束語(yǔ)
本文對(duì)基于DSP的G.729A語(yǔ)音壓縮算法進(jìn)行了嚴(yán)格的測(cè)試,測(cè)試結(jié)果表明:(1)算法通過了ITU-T的測(cè)試向量,達(dá)到了ITU-T標(biāo)準(zhǔn);(2)本編碼算法對(duì)于時(shí)間長(zhǎng)度為10ms的一幀語(yǔ)音數(shù)據(jù)編碼需要1.1ms,解碼需要0.29ms,完全可以在TMS320C6711 DSP處理器上實(shí)時(shí)實(shí)現(xiàn)多路語(yǔ)音編解碼。