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