徐貴賢,蘇 旸
(中國電子科技集團公司第三十研究所,四川 成都 610041)
語音的數(shù)字化又叫語音編解碼,就是將原始模擬話音轉換成 1、0 數(shù)據(jù)流在信道中進行傳輸,在接收端再用此 1、0 數(shù)據(jù)流重建模擬語音。語音編碼技術可以分為波形編碼、參數(shù)編碼和介于兩者之間的混合編碼三大類[1]。波形編碼具有抗噪性能強、語音質(zhì)量好等優(yōu)點.但所需的編碼速率較高,一般在16~64 kb/s,典型的編碼方式有自適應差分脈沖編碼調(diào)制(ADPCMA,Adaptive Diflerential Pulse Code Modulation)、連續(xù)可變斜率增量調(diào)制(CVSD,Continuously Variable Slope Delta Modulation)。參數(shù)編碼的特點是編碼速率低,可以達到1.2~2.4 kb/s,甚至更低。但是通常它的重建語音自然度不夠好,魯棒性差,算法復雜。混合編碼器結合了上述兩種方法的優(yōu)點,在較低的比特率上能獲得較高的語音質(zhì)量[2],當前正在得到人們較大的關注;多帶激勵(MBE, Multi-Band Excitation)、碼本激勵線性預測(CELP, Code-Excited Linear Prediction)等技術尤其是加載了增強型多帶激勵(AMBE, Advanced Multi-Band Excitation)算法的芯片得到了較廣泛的應用。文中設計的8 kb/s的語音編解碼器就是采用AMBE-2000芯片實現(xiàn)的。
AMBE-2000芯片是DVSI公司加載了AMBE算法的第二代芯片,它具有語音質(zhì)量好、對環(huán)境適應能力強[1]的特點,其簡化模型及基本應用框圖如圖 1所示[5],它可以被看做由編碼器和解碼器兩個獨立模塊構成。編碼器接收8 kHz的話音數(shù)據(jù)流和輸出一個期望的波特率的信道數(shù)據(jù)流;反之,解碼器接收一個信道數(shù)據(jù)流并合成一個語音數(shù)據(jù)流。AMBE-2000的編碼器和解碼器的接口時序是完全異步的[4],工作是同步的。在標準模式下,每 20 ms編碼器輸出一幀話音數(shù)據(jù),同時解碼器接收一幀話音數(shù)據(jù)。這就需要在編碼器和解碼器之間建立某種通信協(xié)議來確保信息傳輸?shù)目煽啃浴Mǔ_@種通信協(xié)議有2種:幀格式和非幀格式[3]。
圖1 AMBE-2000的簡化模型及基本應用框
AMBE-2000可以通過管腳信號靈活配置工作方式,現(xiàn)簡要介紹一下關鍵管腳信號的功能和配置方式。
CHAN_SEL[1:0]:CHAN_SEL1用于設置傳輸碼流的串口的工作方式,0是主動模式,1是被動模式;CHAN_SEL0用于設置碼流格式,0是有幀格式的,1是無幀格式的。
BAUD_SEL[1:0]:無幀碼流波特率配置管腳,用于設置每16位字數(shù)據(jù)中的有效碼流bit數(shù)。00~11分別表示有 1,2,3,4bit有效碼流,有效碼流從 16位字數(shù)據(jù)的最高位開始。
CODEC_SEL[1:0]:AD/DA接口配置管腳,用于選擇AD/DA類型;RATE[4:0]:編解碼速率配置管腳,用于選擇編解碼速率,其對應關系分別見參考文獻[5]的 Table 6-A、Table 7-B。變編解碼速率在芯片復位后還可以通過發(fā)送有幀格式的數(shù)據(jù)包來改變。另外 VAD_EN是話音激活檢測使能管腳,ECHOCAN_ EN是回聲抵消使能管腳,SLIP_EN是容時鐘抖動使能管腳等。所有管腳都可以通過硬件直接配置,也可以通過軟件設置控制字實現(xiàn)。
根據(jù)系統(tǒng)需求,要求設計一雙路話音編解碼器,編解碼速率8 kb/s,A路話音的主要外部接口信號定義如表1所示,B路話音接口信號與A路話音完全相同。外部接口包括數(shù)字接口和模擬接口兩部分,分布在兩個16和14芯的接插件上,數(shù)字接口采用TTL電平,主要包括碼流時鐘,系統(tǒng)時鐘,碼流輸入,碼流輸出以及外部復位信號。模擬接口主要包括模擬話音輸入,模擬話音輸出以及電源和地。
根據(jù) AMBE-2000的工作原理,使用該芯片設計實現(xiàn)的具有雙路話音通道的編解碼器的原理框圖如圖2所示。從圖中可以看出,兩路話音使用了 4片AMBE-2000,每片芯片只使用了編碼或解碼功能,碼流的收發(fā)時鐘完全獨立,這是因為編碼和解碼功能相互影響,當其中一個功能異常死機時會導致另一個功能也出現(xiàn)死機現(xiàn)象。這樣將每路話音的編解碼分開,可以保證話音編解碼通道能完全獨立正常工作。
表1 外部接口信號定義
圖2 雙路語音編解碼器原理框
由表1可知編解碼器的收發(fā)碼流時鐘和幀時鐘都是由外部提供的,且外部碼流收發(fā)時鐘為8 kHz,與編解碼速率一樣,外部幀時鐘為128 kHz,是碼流時鐘8 kHz的16倍,因此設置CHAN_SEL[1:0]=11,BAUD_SEL[1:0]=00,RATE[4:0]= 11010,使 AMBE-2000工作于被動無幀模式,每16位字中只有1 bit有效碼流,編解碼速率為8 Kb/s,無糾錯編碼。限于編解碼器尺寸的要求,設計時沒有使用CPU,只使用了一片可編程邏輯器件CPLD實現(xiàn)所有的控制及數(shù)據(jù)流的交互工作,因此設置CODEC_SEL[1:0]=01,AD/DA器件選用AD73311,直接將AD/DA的采樣串口時鐘和 AMBE-2000的串口時鐘連接,二者的連接圖如圖3[5]所示。在開機后AMBE-2000直接發(fā)送配置命令到 AD73311,減少對AD/DA器件的額外配置要求。AD73311收到AMBE-2000的配置命令后,采樣率變?yōu)?2 kHz。其他幾個管腳的配置為 VAD_EN=0,SLEEP_EN=0,SLIP_EN=0,SOFT_EN=1,除RATE[4:0]是由可編程邏輯的軟件控制的,其他都是硬件電路直接接電源或地。模擬信號的處理電路參照文獻[6]的Figure24和27進行設計,設計時要根據(jù)話音輸入、輸出頻響特性的要求,在電路的前后端增加運放和濾波電路,這里不再詳述。
圖3 AMBE-2000和AD73311的連接
圖2中的處理單元由可編程邏輯器件CPLD實現(xiàn),主要功能包括上電復位、兩路碼流的收發(fā)、配合其他硬件電路產(chǎn)生編解碼同步時鐘等。上電復位功能模塊在上電后產(chǎn)生復位脈沖,和外部輸入的復位信號一起對4片AD73311和AMBE-2000芯片進行復位,保證AMBE-2000配置AD73311的可靠性。
兩路碼流收發(fā)功能模塊完全一樣,分別使用兩路話音的碼流設置和幀時鐘進行時序控制。圖4和圖5分別是A路話音編碼的和A路話音解碼的時序圖,圖中的SYSCLKXA、SCLKXA、103A、SYSCLKRA、SCLKRA、104A是表1中定義的接口信號,表示系統(tǒng)發(fā)時鐘128 kHz、碼流發(fā)時鐘8 kHz、發(fā)送碼流、時鐘收時鐘 128 kHz、碼流收時鐘 8 kHz、接收碼流;CHAN_TX_DATA和CHAN_RX_DATA分別是ABME-2000第42,32管腳,表示編碼碼流輸出和輸入解碼碼流。編解碼器和外部的數(shù)據(jù)接口時序是編解碼時鐘的下降沿發(fā)送。在圖4中,CPLD程序在a時刻讀取AMBE-2000的編碼碼流并在b時刻送到外部接口;在圖5中,CPLD程序在a時刻讀取碼流數(shù)據(jù)并在b時刻送給AMBE-2000進行解碼,兩者都同時滿足外部接口和 AMBE-2000的時序要求。下面重點講述一下配合硬件電路產(chǎn)生同步時鐘的功能設計。
圖4 A路話音編碼時序
圖5 A路話音解碼時序
碼流的收發(fā)時鐘和幀時鐘是由外部提供的,如果采用常規(guī)的設計方案,編解碼時鐘直接由本地晶振提供,勢必會存在2種時鐘不匹配的情況,嚴重時會出現(xiàn)語音的斷續(xù);且AMBE-2000在非幀格式下,由于沒有同步頭,在正確合成語音波形前必須等待 10~12組話音數(shù)據(jù)包發(fā)送完,才能獲得同步信號[3],對時鐘的穩(wěn)定度要求也很高。因此在設計時除要滿足圖4、圖5的時序關系外還要重點考慮AMBE- 2000內(nèi)部的編解碼時鐘與碼流收發(fā)接口時鐘時序的一致性,即要進行時鐘的同步設計,通常采用鎖相環(huán)來解決。
鎖相環(huán)原理圖如圖 6示。圖中的時鐘源 SIGIN128 kHz系統(tǒng)幀時鐘通過CPLD后直接提供,鎖相環(huán)的輸出時鐘VCOOUT為16.384 MHz,一路經(jīng)CPLD直接送ADDA作為主時鐘,一路經(jīng)CPLD分頻后產(chǎn)生128 kHz的比較時鐘COMPIN再回送給鎖相環(huán)電路。鎖相環(huán)參數(shù)的計算主要是確定與VCO輸出頻率有關的電阻R1,R2,電容C1的值以及環(huán)路濾波參數(shù)的值,即R3,R4及C2的值[7]。由于鎖相環(huán)輸出頻率及環(huán)路濾波參數(shù)等指標是相互制約的,具體設計時需參照文獻[8]中的Figure 11-47綜合考慮。
圖6 鎖相環(huán)路原理
每路編解碼通道的同步時鐘是獨立的,AMBE-2000的工作時鐘不影響編解碼的時序,直接由本地16.384 MHz的晶振提供,由于有4片AMBE-2000,為了保證驅動能力,將晶振通過CPLD分別在4個接口送出。
由于 AMBE-2000速率可變、設置方便以及話音質(zhì)量高的特點,在很多領域都得到了廣泛應用。文中設計的編解碼器已應用于在本單位的多款通信設備中,經(jīng)實驗和使用檢驗,性能良好,滿足設計要求,得到了用戶認可。
[1] 徐玉濱,王繼東,沙學軍.AMBE聲碼器特性分析及其應用.通信技術,2003(07):1-3.
[2] 李宇翀,劉鳳榮,廖文彬.窄帶語音通信系統(tǒng)的研究與設計[EB/OL]. (2011-10-25)[2011-12-20].http://www.elecfans.com.
[3] 劉斌,張欣.高效語音壓縮芯片 AMBE-2000TM及其在語音壓縮中的應用[J].現(xiàn)代電子技術,2002(03):83-85.
[4] 付君,張爍.基于 AMBE-2000芯片的通用語音處理系統(tǒng)[J]. 現(xiàn)代通信技術,2007(03):61-64.
[5] Digital Voice Systems,Inc.AMBE-2000? Vocoder Chip User’s Manual Version 4.3[EB/OL].(2005-02-01)[2011-10-12]. http://www.dvsinc.com.
[6] Analog Devices, Inc.Low Cost, Low Power CMOS General Purpose Analog Front End AD73311[EB/OL].(1998-07-22)[2011-10-12].http://www.analog. com.
[7] 王躍球,唐杰.基于CD4046的新型頻率跟蹤移相PWM控制電路研究[J]. 航電技術,2006(06):25-28.
[8] Texas Instruments,Inc. CD54HC4046A,CD74HC4046A,CD54HCT4046A,CD74HCT4046A High-Speed CMOS Logic Phase-Locked Loop with VCO[EB/OL]. (2003-12-13)[2011-10-12]. http://www.ti.com.