朱敏杰, 王 海, 梁 偉
(紹興文理學(xué)院 數(shù)理信息學(xué)院, 浙江 紹興 312000)
語音傳輸是目前最主要最普遍的通信傳輸服務(wù),考慮到存儲(chǔ)空間、信道帶寬的限制及擴(kuò)大通信容量的需求,可利用低速率編碼技術(shù)對(duì)語音信號(hào)進(jìn)行壓縮編碼。此類低速語音編碼技術(shù)在軍事和航天領(lǐng)域有廣闊的應(yīng)用空間[1-2]。目前常用的低速率語音編解碼系統(tǒng)一般以CPU和音頻codec芯片為核心構(gòu)成,CPU根據(jù)語音編解碼算法編程,傳輸語音數(shù)據(jù),音頻codec芯片用于實(shí)現(xiàn)語音數(shù)據(jù)采集和回放。這種方案編程復(fù)雜、保密性差、成本高,難以擴(kuò)展,而且編碼速率低于2.4 Kbps的應(yīng)用方案不多[3]。本文采用低速率語音編解碼專用芯片TR600和STM32微控制器,完成一種低速率語音編解碼系統(tǒng)設(shè)計(jì),編碼速率可選擇0.6、0.8、1.2或2.4 Kb/s,經(jīng)實(shí)踐檢驗(yàn),系統(tǒng)穩(wěn)定可靠。
低速率語音編解碼系統(tǒng)由信道管理器STM32微控制器、語音編解碼專用芯片TR600[4]、音頻codec芯片TLV320AIC10及外圍電路構(gòu)成,如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
系統(tǒng)管理器選用ARM cortex-M3內(nèi)核STM32F103芯片,主頻72 MHz,字長(zhǎng)32 位,片內(nèi)存儲(chǔ)器容量大,片上外設(shè)豐富,開發(fā)工具完備,是8 位及16 位微控制器的理想替代產(chǎn)品[5-6]。在本設(shè)計(jì)中,主要負(fù)責(zé)通信信道的管理。TR600采用清華大學(xué)微波和數(shù)字通信國(guó)家重點(diǎn)實(shí)驗(yàn)室研制的SELP (Sine Excitation Linear Prediction )聲碼器算法,在此基礎(chǔ)上,引入了多幀參數(shù)聯(lián)合矢量量化方法,壓縮幀間冗余,在0.6 Kb/s的極低編碼速率下,重建語音DRT測(cè)試評(píng)分>89%[7-9]。
麥克風(fēng)采集的語音信號(hào)通過TLV320AIC10進(jìn)行A/D轉(zhuǎn)換,由TR600進(jìn)行量化壓縮后通過RS232接口傳送給STM32,再由STM32傳送到通信網(wǎng)絡(luò)。還可將來自通信網(wǎng)絡(luò)的壓縮語音數(shù)據(jù)傳送給TR600解碼,通過TLV320AIC10的D/A轉(zhuǎn)換實(shí)現(xiàn)語音重建。
系統(tǒng)硬件電路主要由信道接口電路,語音采集、回放電路,電源電路,CPU主控電路組成。其中CPU主控電路主要由JTAG下載、晶振、按鍵及LCD顯示、EEPROM組成,本文不再展開。
信道接口包括系統(tǒng)管理器、音頻codec芯片及編解碼器的接口電路設(shè)計(jì),如圖2所示。TLV320AIC10的M/S引腳置高,M0、M1、FC引腳接地,配置成主模式,F(xiàn)S同步信號(hào)由TLV320AIC10產(chǎn)生,脈沖方式,次級(jí)通信不選擇[10]。TR600芯片DATAIO_SEL引腳接地,表示使用控制接口對(duì)TLV320AIC10執(zhí)行初始化,即通過SDIN信號(hào)對(duì)DCSI控制接口寫初始化命令。FS為幀同步信號(hào),接TR600的串行數(shù)據(jù)輸入輸出同步信號(hào)LRCIN和LRCOUT,DIN、DOUT、SCLK為串行通信數(shù)據(jù)線和時(shí)鐘線,用于發(fā)送、接收16 bit串行數(shù)字音頻數(shù)據(jù),與TR600的相應(yīng)引腳相連。PCMCTRL_CLKSE引腳接地,表示TLV320AIC10、TR600的數(shù)據(jù)接口和控制接口都使用的SCLK作為時(shí)鐘信號(hào)。TR600可用RS232串口與系統(tǒng)管理器STM32F103通信,考慮到STM32F103沒有DTR和DSR信號(hào)線,選擇其GPIO口PC4、PC5用軟件模擬實(shí)現(xiàn),STM32F103預(yù)留USART2接口用于系統(tǒng)與上位機(jī)或網(wǎng)絡(luò)通信。
系統(tǒng)語音由TLV320AIC10采集,語音采集電路設(shè)計(jì)成反向模式。語音回放電路采用低壓音頻放大器LM386,電路設(shè)計(jì)成200倍增益模式,LM386可采用+5 V供電,典型功耗325 mW,可接8Ω喇叭或電話聽筒。語音采集、回放電路如圖3所示。
圖2 信道接口電路
圖3 語音采集、回放電路
系統(tǒng)中需要模擬3.3 V和數(shù)字3.3 V兩路電源,語音回放需要5 V電源。系統(tǒng)采用LM2575-5.0[11]開關(guān)穩(wěn)壓器將來自于變壓器端的9 V直流穩(wěn)壓為5 V,最大1 A直流輸出。5 V電壓可直接供給語音回放電路的功放使用,另經(jīng)低壓差穩(wěn)壓器(LDO)LM1117-3.3[12]穩(wěn)壓為3.3 V,最大800 mA直流輸出。
圖4 電源電路
3.3 V電壓分成模擬電源和數(shù)字電源,其中模擬部分給TLV320AIC10和TR600的模擬電路供電,數(shù)字部分給包括系統(tǒng)管理器STM32F103在內(nèi)的數(shù)字部分供電。電源電路如圖4所示。其中D1為穩(wěn)壓二極管,L2和C3構(gòu)成輸出紋波濾波器,提高輸出直流5 V的電源質(zhì)量,R2為短路電阻,用于連接數(shù)字地和模擬地。計(jì)算系統(tǒng)主要芯片功耗,此電源電路可滿足要求。
系統(tǒng)軟件主要完成系統(tǒng)初始化、系統(tǒng)啟動(dòng)、運(yùn)行控制等工作。軟件編譯利用意法半導(dǎo)體(STM)提供的固件庫(kù)軟件包,在Keil uVision風(fēng)格的MDK環(huán)境下采用C語言完成開發(fā)[13-14]。
系統(tǒng)工作時(shí),TLV320AIC10的采樣速率F=FMCLK/256N,其中N由TLV320AIC10的控制寄存器R2的低5 bit決定。TR600已內(nèi)置對(duì)TLV320AIC10的初始化數(shù)據(jù),將在TR600啟動(dòng)后隨即初始化TLV320AIC10,將TLV320AIC10的控制寄存器R2低5 bit修改為“01000”,即N=8,當(dāng)FMCLK選用外接有源晶振16.384 MHz時(shí),對(duì)應(yīng)的采樣速率為8 kHz。
TR600在四種速率下的數(shù)據(jù)幀壓縮見下表1所示。以0.6 Kbps編碼速率為例,TLV320AIC10采集的8 kHz、16 bit語音數(shù)據(jù)傳送給TR600,TR600將每600個(gè)采樣點(diǎn)數(shù)據(jù)經(jīng)預(yù)測(cè)分析后量化編碼為45 bit的語音幀,每隔75 ms以9.6 Kb/s的速率向串口發(fā)送,TR600發(fā)送的語音編碼幀以“0X9C”開頭,后面45 bit語音幀分為6 Byte,最低字節(jié)高5 bit有效。TR600由串口接收的待解碼語音幀以“0X80”開頭。TR600與系統(tǒng)管理器之間的串行通信由CTS、RTS、DTR、DSR等信號(hào)同步,可保證通信的可靠性。
表1 不同速率數(shù)據(jù)幀壓縮對(duì)比
圖5 系統(tǒng)軟件流程圖
系統(tǒng)軟件流程如圖5所示。系統(tǒng)上電后,STM32F103最小系統(tǒng)自檢,讀取EEPROM系統(tǒng)參數(shù),包括系統(tǒng)模式,自環(huán)延時(shí)時(shí)間等,可由按鍵修改系統(tǒng)參數(shù),并實(shí)時(shí)存入EEPROM,由按鍵確認(rèn)系統(tǒng)開始工作。系統(tǒng)工作模式分為自環(huán)、發(fā)送、接收三種。自環(huán)模式即麥克風(fēng)采集的語音能在設(shè)定的延時(shí)時(shí)間后在喇叭端重建;發(fā)送模式能將壓縮語音數(shù)據(jù)傳送到通信網(wǎng)絡(luò);而接收模式則將來自于通信網(wǎng)絡(luò)的壓縮語音數(shù)據(jù)傳送到喇叭端重建。自環(huán)模式下,STM32F103首先對(duì)TR600進(jìn)行復(fù)位及軟件啟動(dòng),并開啟USART1中斷,TR600正常啟動(dòng)后,會(huì)利用其中固化程序?qū)LV320AIC10初始化。TLV320AIC10以8 kHz、16 bit對(duì)語音信號(hào)進(jìn)行采樣量化,傳送給TR600,TR600通過串口傳送給STM32F103的USART1,USART1接收中斷服務(wù)程序?qū)⒄Z音數(shù)據(jù)以照移位寄存方式放入緩沖區(qū)中,待自環(huán)延時(shí)結(jié)束后,修改語音幀頭,并發(fā)送回TR600,即可聽到延時(shí)后的連續(xù)語音。發(fā)送和接收模式的編程思想與自環(huán)模式基本一致,本文不再展開。
在實(shí)驗(yàn)室對(duì)系統(tǒng)進(jìn)行測(cè)試,系統(tǒng)如圖6所示。工作在0.6 Kb/s編碼速率,自環(huán)模式下,延時(shí)6 s,把成年男性聲音“紹興文理學(xué)院”錄制成WAV語音文件,采用praat語音軟件[15]分析語音時(shí)域波形圖和窄帶語譜圖,如圖7所示,前6 s語音為測(cè)試人聲音,后6 s語音是TR600通過語音壓縮編碼、自環(huán)解碼重建的效果。比較發(fā)現(xiàn),在頻譜圖中重建語音與原始語音的頻譜結(jié)構(gòu)差別較??;在時(shí)域波形圖中略有區(qū)別。主觀聽覺測(cè)試表明重建語音具有較高可懂度、清晰度以及一定的自然度。
圖6 系統(tǒng)實(shí)物測(cè)試圖
圖7 測(cè)試語音時(shí)域頻域圖
[1] 叢 鍵, 張知易.一種600bps極低速率語音編碼算法[J].電子與信息學(xué)報(bào),2007.29(2):429-433.
CONG Jian, ZHANG Zhi-yi. A Very Low Bit Rate Speech Encoding Algorithm in 600bps[J].Journal of Electronics & Information Technology, 2007.29(2):429-433.
[2] 吳江濱, 叢 鍵.一種600b/s聲碼器及其與典型中低速語音編碼器的音質(zhì)對(duì)比[J].中國(guó)電子科學(xué)研究院學(xué)報(bào),2007,2(1):93-96
WU Jiang-bin, CONG Jian. A 600 bps Vocoder and Voice Quality Evaluation Compared with Some Typical Middle and Low Bit Rate Vocoders[J]. Journal of CAEIT, 2007,2(1):93-96.
[3] 韓大晗, 崔慧娟, 唐 昆.一款專用可編程語音壓縮芯片的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2006(9):137-140.
HAN Da-han, CUI Hui-juan, TANG kun. Design of programmable chip for speech compression[J]. Application of Electronic Technique,2006(9):137-140.
[4] 多思集團(tuán).TR600語音編解碼芯片白皮書[EB/OL].2012.11.
[2013.4].http://www.t-macro.com/products.aspx?FCateID=107&CateID=184.
[5] Joseph Yiu. ARM Cortex-M3權(quán)威指南[M].宋巖譯.北京:北京航空航天大學(xué)出版社,2009.
[6] 李 寧.基于MDK的STM32處理器開發(fā)應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2008.
[7] 郭 莉, 郭麗紅, 王炳錫. 極低速率語音編碼的新發(fā)展與應(yīng)用[J].電聲技術(shù),2005(6):38-41.
GUO Li, GUO Li-hong, WANG Bing-xi, New Development and Application of Very Low Bit Rate Speech Coding[J].Voice technology,2005(6):38-41.
[8] 計(jì) 哲, 李 曄, 崔慧娟. SELP 2.4 kb/s語音編碼算法跳躍幀判決及處理[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版), 2009, 49(8):1152-1155.
JI Zhe, LI Ye, CUI Hui-juan. Leaping frame detection and processing with a 2. 4 kb/s SELP vocoder[J]. J Tsinghua Univ (Sci & Tech), 2009, 49(8):1152-1155.
[9] 張建偉, 賀天宏, 李軍林.高質(zhì)量的0.6kb/s聲碼器算法[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版), 2003,43(4):449-452.
ZHANG Jian-wei, HE Tian-hong, LI Jun-lin. High quality 0.6 kb/s speech coding algorithm[J]. J Tsinghua Univ (Sci & Tech), 2003,43(4):449-452.
[10] Texas Instruments. TLV320AIC10 datasheet [EB/OL].2000[2013.2]http://www.21icsearch.com/pdf-49BDA84ABD1C6417/TLV320AIC10.html,2000/2013-02-02.
[11] Texas Instruments.LM2575 datasheet [EB/OL]2005[2013.4]. http://www.21icsearch.com/pdf-DA3C53A4A17E8D48/LM2575.html.
[12] National Semiconductor. LM1117 datasheet [EB/OL]2005[2013.4].http://www.21icsearch.com/s_LM1117.html?stype=pdf&t1=&keyword=LM1117.
[13] 王永虹.STM32系列ARM Cortex-M3微控制器原理與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2008.
[14] 崔 鳴, 尚 麗, 顏廷秦.基于ARM的帆板控制系統(tǒng)設(shè)計(jì)與實(shí)驗(yàn)分析[J].實(shí)驗(yàn)室研究與探索,2012.31(9):57-62.
CUI Ming, SHANG Li, YAN Tin-qin. Design and Experimental Analysis of a Sailboard Control System Based on ARM[J]. Research and Exploration in Laboratory,2012.31(9):57-62.
[15] 張立華, 楊瑩春. 情感語音變化規(guī)律的特征分析[J].清華大學(xué)學(xué)報(bào) (自然科學(xué)版),2008.48(S1):652-657.
ZHANG Li-hua, YANG Ying-chun. Emotional speech characteristics[J]. J Tsing hua Univ (Sci & Tech), 2008.48(S1):652-657.