蘇凌旭,徐智敏
摘 要:介紹一種對語音信號的實時采樣和編碼處理的方法。該系統采用高精度可編程芯片TLV320AIC23B對多路原始語音信號進行模數轉換后經DSP的片上外設MCBSP送入TMS320C6713進行CVSD編碼壓縮,之后又由MCBSP送出,同時MCBSP接收多路A律PCM信號,經TMS320C6713轉換成CVSD信號后由MCBSP送出,TMS320C6713亦可接收CVSD編碼信號轉化成A律PCM信號后送出。該系統充分發揮了DSP的高速數字信號處理的性能,同時處理多路信號收發及數字運算具備非常好的實時性。
關鍵詞:CVSD;編碼;解碼;語音
中圖分類號:TN919文獻標識碼:A
文章編號:1004-373X(2009)19-076-02
Multi-channel CVSD Speech Codec and Decodec Based on TMS320C6713
SU Lingxu1,2,XU Zhimin2
(1.Institute of Software,Chongqing University,Chongqing,400030,China;2.Chongqing Jinmei Communication Corporation,Chongqing,400030,China)
Abstract:In this article,a method which is used for real-time sample and codec to speech signal is introduced.This system applies high precision programmed TLV320AIC23B converse speech signal to digital signal,then transmits the digital signal to TMS320C6713 through the on-chip device MCBSP for CVSD coding.At last,the CVSD signal is sent out of DSP.In addition to above function,TMS320C6713 receives multi-channel A-law PCM signal through MCBSP,then transmits A-law PCM signal to CVSD signal,and vice versa.The system takes full advantage of DSP in high-speed digital signal proceed.The system deals with multichannel signal transceiver,at the same time,so it posseses good real-time performance.
Keywords:CVSD;codec;decodec;speech
64 Kb/s的A律或μ律的對數壓擴PCM編碼在大容量的光纖通信系統和數字微波系統中已得到廣泛應用,但由于占用較大的傳輸帶寬和具有復雜的成幀結構[1]。連續可變斜率增量(Continuously Variable Slope Delta,CVSD)調制以其較低的應用難度、成本和編碼速率,較好的語音質量廣泛應用于戰術通信網、衛星通信、藍牙等無線語音傳輸領域。于是不同碼制的網絡之間的互連對兩種碼制之間的轉換提出了更高的要求[2,3]。針對近年來FPGA、DSP技術的不斷發展,本文提出了一種滿足此需求的設計方案,以適應通信技術日新月異的發展。
1 多路數據信號的收發
1.1 McASP(Multichannel Audio Serial Port)
McASP在C5000系列DSP處理器基礎上新增加的一個專門用來實現多通道音頻應用的通用串行端口,它包括收/發兩個功能部件,二者間即可完全同步也可各自采用完全獨立的主時鐘、位時鐘和幀同步時鐘,具備不同的數據傳輸模式和位碼流格式。
支持多種數據協議:I2S,S/PDIF,IEC60958-1,AES-3等格式碼流,支持時分復用(TDM碼流),多達32個通道進行收發傳輸的字長可以是8位/12位/16位/20位/24位/32位等[4]。
1.2 多路數據收發的實現
1.2.1 TDM模式
本文討論的是音頻數據的傳輸,當MCASP工作于TDM格式時可以用于DSP和多個ADC及DAC直接相連接。數據的多路傳輸取決于每一收(發)幀多達32個時隙的傳輸模式。圖1顯示了6個SLOT的傳輸模式。
圖1 TDM傳輸模式
TMS320C6713的多路數據輸出/輸入需經過一個數據組合和分離的時序控制單元,這一任務由一塊FPGA完成,其功能是接收所有來自DSP的數據,將相同的時隙組合在一起后根據相應的連接設備的時序送出,同時將來自不同的設備的數據組合后以TDM的方式送入DSP,如圖2所示。
圖2 多路數據輸入/輸出
1.2.2 時鐘和幀同步
通過設置DSP的收發幀同步控制寄存器可以設置TDM的具體模式,而相應的位時鐘、幀同步時鐘可由編程控制由外部產生或直接由內部產生,圖3是時鐘的相關控制關系。高頻時鐘AHCLKX可由高頻時鐘控制寄存器設置為內部產生或外部輸入,ACLKX可由時鐘控制寄存器設置為內部產生或外部輸入[5]。如果采用內部高頻時鐘,則由AUXCLK經分頻后得到,分頻數值由高頻時鐘控制寄存器的0~11 b決定;高頻時鐘分頻后得到位時鐘,分頻數值由時鐘控制寄存器的0~4 b決定。
圖3 時鐘信號的產生
1.3 AD采樣和語音信號的回放
TLV320AIC23B是輸入輸出模擬音頻接口編解碼器,該編解碼器采用了Sigma-Delta技術進行數模和模數轉換,并和McBSP直接相連,AIC23還提供了麥克風輸入、線性輸入、線性輸出和耳機輸出4個模擬接口。TLV320AIC23B的控制字可通過SPI方式或者I2C方式寫入[6]。圖4是I2C方式控制字的讀寫時序圖。
設定控制寄存器的工作方式后即可利用TLV320AIC23B對語音信號進行高精度的采樣和回放。
2 CVSD編解碼
CVSD也叫數字檢測音節壓擴增量調制,進入實用階段已有十多年的歷史。數字CVSD編譯碼器中音節平滑濾波器及編譯碼器中的主積分器的轉移函數如下[7]:
音節平滑濾波器:
H1(z)=G11-a1z-1
圖4 TLV320AIC23B 控制字時序
編碼器雙積分器:
H2C(z)=G2C(1+C1z-1)1-b1z-1b2z-2
譯碼器主積分器:
H2D(z)=G2D1-b1z-1-b2z-2
圖5是編譯碼器的流程圖。對上述公式做Z的反變換可以得到三個差分方程,按照相應的差分方程實現相應的編解碼器代碼編寫[8]。
圖5 CVSD編解碼
3 PCM碼與CVSD碼的轉換
PCM碼采樣頻率是8 kHz,CVSD編碼的采樣頻率是16 kHz,把PCM碼轉化為CVSD碼先要把PCM碼轉換成線性PCM,然后加2倍內插低通濾波器以使采樣頻率從8 kHz變換到16 kHz,之后送入CVSD編碼器生成16 Kb/s的CVSD碼[9];CVSD碼轉化成PCM碼則是一個相反的過程,即將CVSD碼送入譯碼器即可得到線性的PCM碼,與此時的PCM碼相對應的采樣頻率為16 kHz,而不是8 kHz。為使采樣頻率從16 kHz變換到8 kHz,需要加2倍抽取低通濾波器,把線性PCM變換成A律PCM。而濾波器可以選擇FIR濾波器[10]。
4 結 語
本文提出的多路音頻數據的輸入/輸出設計,利用了6000系列DSP的高速數據處理功能,同時處理多路數據的CVSD編解碼、PCM碼與CVSD碼的相互轉換,對于不同碼制的網絡之間的互連具有重要的應用意義。
參考文獻
[1]Greefles J A,Dejager F.Continuous Delta Modulation[J].Philips Research Reports,1968,23 (2):233-246.
[2][美]拉賓納L R,謝弗R W.語音信號數字處理[M].北京:科學出版社,1983.
[3]易克初,田彬,付強.語音信號處理[M].北京:國防工業出版社,2000.
[4]羅聞,王峻峰,史鐵林.基于McASP的高速串行數據采集系統設計[J].微計算機信息,2006,22(25):176-178.
[5]任麗香,馮淑芬.TMS320C6000系列DSPs的原理與應用[M].北京:電子工業出版社,2001.
[6]徐君毅.單片機微型計算機原理及應用[M].上海:上海科技出版社,1988.
[7]黃福貴,朱志國,孫波.語音編碼調制的CVSD算法及實現[J].聲學與電子工程,2005(4):19-22.
[8]李欣,藏笛,羅程.CVSD編碼/譯碼器在語音系統中的應用[J].電子與自動化,1999(3):32-33.
[9]陳顯治.現代通信技術[M].北京:電子工業出版社,2001.
[10]Labrosse J J.μC/OS-Ⅱ源碼公開的實時嵌入式操作系統[M].邵貝貝,譯.北京:中國電力出版社,2001.