一、引言
目前,語音信號壓縮技術發展十分迅速,出現了很多高效率的語音壓縮編碼方法。以語音信號壓縮的國際標準G.729為例,它可將經過采樣的64kb/s語音信號高保真地壓縮到8kb/s,但其模型編碼算法的運算量很大。同時又要求對語音信號進行實時采樣實時壓縮處理,這樣對數據采集和處理系統提出了更高的要求。
針對上述的問題通常的解決方法有三種:
種方法是使用嵌入式處理器(比如凌陽SPCE061A芯片)構成嵌入式語音系統實現語音處理壓縮功能。該方法設計簡單,價格便宜,使用方便靈活。但語音處理能力有限。只有在數據量不大、處理系統不繁忙的情況下,這種方法才有效。
第二種方法是使用FPGA/CPLD構成片上系統實現實時語音壓縮處理。該方法開發周期短,利用重配置可以減少硬件的開銷。但在比較低的取樣速率時和有很高復雜度的軟件問題的情況下,FPGA實現很困難。
第三種方法是使用通用數字信號處理器(DSP)強大的數據處理能力,由于DSP采用內部多總線結構,使數據的存儲和指令的執行更加快捷。重要的一點是,DSP具有快速的指令周期,如TMS320系列己經從代的200ns降低到現在的5ns(1600MIPS)以下,如此高的運算速度使其可以滿足許多實時處理的需要。
二、實時語音壓縮的原理
在電話通信中,語音信號的編碼方式一般為PCM(Pulse Code Modulation)編碼。由于需要采集、存儲、傳輸和處理的音頻數據量極大,只有進行壓縮后才能正常進行傳輸和存儲。目前,用于語音壓縮編碼的算法有ADPCM,CELP,RPE—LTP,LPC,MBE,PW1,MELP等。其中常用的是u/A律壓縮解壓。
u/A律壓縮解壓編碼是國際電報電話協會(CCITT)早推出的G711語音壓縮解壓編碼的一種格式的主要內容。其中歐洲和中國等國家采用A律壓縮解壓編碼,美國和日本采用u律壓縮解壓編碼。現在介紹A律的資料較多,所以本實例著重介紹u律壓縮解壓算法。
所謂u律壓縮就是壓縮器的壓縮特性具有如下關系的壓縮律:
у=ln(1+ux)/ ln(1+u) 0≤x≤1
式中 у——歸一化的壓縮器輸出電壓,即 у=壓縮器輸出電壓/壓縮器可能的輸出電壓
x——歸一化的壓縮器輸出電壓,即 x=壓縮器輸出電壓/壓縮器可能的輸出電壓
u——壓擴參數,表示壓縮的程度。
在使用u律的處理過程為:壓縮和解壓,壓縮是指在發送端對輸入信號進行壓縮處理,再均勻量化,相當于非均勻量化;解壓是在接收端進行相應的解壓處理,以恢復原始信號。
圖1是DSP硬件實現數據壓縮解壓的簡單流程。
圖 1 數據壓縮解壓流程
經過壓縮的采樣信號,按8位二進制編碼,編碼表如下:
8位碼有三部分組成:極性碼(0:負極性信號;1:正極性信號)、段落碼、電平碼。
U率解壓編碼表與編碼表左右相反。U律編碼= 極性碼(musign)+段落碼(muchord)+電平碼(mustep),算法如下:
muchord = (19- T|EXP)<<4 = 190 - (T|EXP)*16 + 10H;
musign = (AH * (-1)) << 7 = (AH * FFFFH)*128 = AH * (FFFFH * 128) = AH * (FFFFH << 7) = AH * FF80H
mustep = (((|int| + 33) << (T|EXP)) << -26 ) -10H
三、實時語音壓縮的硬件部分設計
實時語音壓縮的硬件電路框圖如圖1所示。本系統實現的是ITU-T的G711國際標準建議mu律PCM的語音處理過程。通過TCL320AD50對話筒輸入或聲卡輸出的語音進行壓縮,錄入的數據存儲在數據空間0x2000~0xa000。
圖2、實時語音壓縮的硬件電路框圖
四、實時語音壓縮的軟件部分設計
一旦完成了正確的硬件連接,接下來就可以進行軟件編程調試了。要完成的工作包括:
(1)TMS320VC5416串口的初始化。首先將DSP串口1復位,再對串口1的16個寄存器進行編程,使DSP串口工作在以下狀態:以SPI模式運行,每幀一段,每段一個字,每字16位,采樣率發生器由DSP內部產生,幀同步脈沖低電平有效,并且幀同步信號和移位時鐘信號由外部產生。
(2)AD50初始化。該初始化操作過程包括通過TMS320VC5416的同步串口發送兩串16位數字信息到AD50。串為0000 0000 0000 0001B,有效位(bits0)說明下一個要傳輸的數據字屬于二次通信。第二個數據值用來對AD50的4個數據寄存器的某一個進行配置。
Bits15~11位為0,Bits10~8位為所選寄存器地址值,Bits7~0位為所選中寄存器的編程值。4個用戶可編程寄存器的描述如下:R1中包含模擬輸入通道選擇,硬件 / 軟件編程方式選擇;R2進行單機 / 從機工作和電話模式選擇;R3控制帶從機個數選擇;R4用來設置模擬信號可編程放大增益和A/D、D/A轉換頻率。其它兩個寄存器R5、R6是廠家留著測試用的,用戶不可以對其編程。我們在以下例程中對4個可編程寄存器編程,使AD50C工作在以下狀態:選擇INP/INM為工作模擬輸入,15+1位ADC和15+1位DAC模式,不帶從機,采樣頻率為8KHz,模擬信號輸入和輸出放大增益均為0dB。
(3)用戶代碼的編寫。完成對音頻信號采集
圖3、實時語音壓縮的軟件電路框圖
五、程序運行的結果
下面圖3為壓縮前的原始信號“喂,喂”,而圖4為TLC320AD50C與TMS320VC5416組成的數據采集系統對壓縮前的原始信號“喂,喂”的采集結果
圖4、壓縮前的原始信號“喂,喂”
圖5、壓縮后的語音信號“喂,喂”
經過對壓縮前后的語音信號對比分析,TLC320AD50C可以對語音信號進行無失真壓縮。
七、結束語
本文以TMS320VC5416與TLC320AD50C為例,詳細介紹了AD50與DSP串口通信的硬件接口及軟件實現。從實驗結果我們可以發現TLC320AD50C可以對語音信號進行無失真采樣,完全能滿足后續語音信號處理的要求,并且與DSP接口簡單,高性能,低功耗,已成為當前語音處理的主流產品。廣泛適用于音頻處理,語音增強,語音安全,回聲抵消,VoIP等電話或語音應用中。
本文作者創新點::基于DSP的實時語音壓縮解壓的算法很多,其中u/A律壓縮解壓編碼是常用的形式。介紹A律的資料較多,但是u律的幾乎沒有。本文就是介紹u律壓縮解壓算法。通過實驗,壓縮的語音信號解壓能夠很好的自然度和可懂性。實驗結果能夠達到預期的目標。
參考文獻
[1]TMs32oc54xDsP Applications Guide.Texas Instuments, 1999
[2]TMS320C54xDSPEnhancedPeripherals.TexasInstuments, 1999
[3]戴明禎,周建江.TMS320C54X DSP結構、原理及應用. 北京;北京航空航天大學出版社,2001
[4]高浩,須文波 基于DSP改進的MBE語音算法的研究 北京;微計算機信息(嵌入式與SOC片上系統)2005年12期85頁