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