黃 華 仲元昌
(西南大學工程技術(shù)學院1,重慶 400716;重慶大學通信工程學院2,重慶 400044)
TTS在智能公交報站系統(tǒng)中的應用
黃 華1仲元昌2
(西南大學工程技術(shù)學院1,重慶 400716;重慶大學通信工程學院2,重慶 400044)
在傳統(tǒng)公交車報站系統(tǒng)中,采用“錄音-存儲-回放”的方法要求存儲器的容量較大。為解決這一問題,結(jié)合GPS技術(shù)和TTS技術(shù),設計了一種新型公交報站系統(tǒng)。該系統(tǒng)以TTS方式輸出語音,使存儲器存儲的不是語音信號波形參數(shù)信息,而是播報語音漢字文本信息。試驗結(jié)果表明,采用這種方式,存儲空間只用到傳統(tǒng)方式的17.1%,節(jié)省了存儲空間。
文語轉(zhuǎn)換(TTS) 智能報站 語音合成 GPS 存儲器
目前,公交報站系統(tǒng)有傳統(tǒng)按鍵報站方式,有利用全球定位系統(tǒng)(global positioning system,GPS)定位報站方式[1],也有采用無線射頻技術(shù)的公交線路站點識別的報站方式[2]。但是對于輸出報站的語音都是采用“錄音-存儲-回放”的方式,即先對要報站的語音內(nèi)容和廣告內(nèi)容進行錄音,然后把它存儲在Flash存儲器中,當需要播放時就從存儲器中讀取相應的內(nèi)容。這種方式的優(yōu)點是輸出語音質(zhì)量較高,缺點在于當公交線路較長時需要存儲的內(nèi)容較多,F(xiàn)lash存儲器的容量隨之增加,成本也隨之增加。
文語轉(zhuǎn)換(text to speech,TTS)技術(shù)是將計算機自己產(chǎn)生的或外部輸入的文字信息轉(zhuǎn)變?yōu)榭梢月牭枚?、流利的漢語口語輸出的技術(shù),隸屬于語音合成[3]。文語轉(zhuǎn)換是目前研究的一個新點課題。目前,對于嵌入式TTS的研究也有了較大的突破,已經(jīng)由原來的單獨一個詞的語音合成輸出,發(fā)展到了現(xiàn)在的短語、句子的語音合成輸出;并且在多音字及特殊符號的識別、處理等方面都有了較大的提高[4]。
本文利用比較成熟的TTS技術(shù),代替?zhèn)鹘y(tǒng)的“錄音-存儲-回放”方式,設計了一種新公交報站系統(tǒng)。這樣,一方面不需要大容量的存儲器,節(jié)約了成本;另一方面更改公交線路或廣告內(nèi)容時,只需要更改相應的文字信息,不需要重新錄制,操作方便。
系統(tǒng)主要由GPS接收模塊、單片機主控制器、語音輸出模塊、揚聲器等構(gòu)成。系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖Fig.1 Structure of the system
系統(tǒng)中單片機為主控制機。由于GPS接收模塊與單片機之間,以及TTS語音模塊與單片機之間均采用串口通信,要求單片機至少具有兩個串口,因此單片機選用STC10F10。另外,由于沒有利用額外的存儲器,公交線路和廣告信息都存儲于單片機的ROM中,因此這要求較大的ROM存儲空間。根據(jù)試驗選取4 kbit的存儲空間,一般的單片機都能滿足。
系統(tǒng)通過GPS接收模塊獲取公交車所在位置的緯度值和經(jīng)度值,從而確定公交車當前位置[5],再經(jīng)過一定的程序算法確定當前公交車的狀態(tài),包括進站狀態(tài)、出站狀態(tài)和運行狀態(tài)三個狀態(tài)。TTS語音輸出模塊根據(jù)相應的狀態(tài)輸出相應的語音信息。
語音播放電路利用中文語音合成芯片OSYN06188實現(xiàn)。語音播放電路如圖2所示。
圖2 語音播放電路圖Fig.2 Voice playback circuit
OSYN06188可以通過異步串口接收待合成的文本,可直接通過脈寬調(diào)制(pulse width modulation,PWM)輸出方式驅(qū)動揚聲器,也可外接單支三極管驅(qū)動揚聲器,即可實現(xiàn)文本到聲音(TTS)的轉(zhuǎn)換[5]。單片機以信息幀格式向TTS芯片發(fā)送命令碼,對TTS芯片進行系統(tǒng)設置。TTS芯片根據(jù)命令碼及參數(shù)進行相應操作,并向信息終端返回命令操作結(jié)果。本系統(tǒng)采用PWM輸出直接驅(qū)動揚聲器。
系統(tǒng)采用5 V直流電源供電。由于OSYN06188的核心電壓(CVDD)只需要3 V左右的電壓,所以將電源電壓通過兩個二極管降壓(3 V左右)后提供給核心電壓CVDD引腳。
單片機通過串口向OSYN06188發(fā)送命令、數(shù)據(jù)和接收語音合成芯片回傳的信息。OSYN06188的第22腳為低電平請求Ready/Busy-Status引腳,低電平表示空閑,請求上位機發(fā)送數(shù)據(jù),單片機可以采用查詢或中斷的方式發(fā)送數(shù)據(jù)。本系統(tǒng)設計將該引腳置空。單片機通過OSYN06188芯片回傳的數(shù)據(jù),經(jīng)軟件分析處理后了解芯片的工作狀態(tài)。
GPS在車載終端上有較大的應用前景,也有大量有關GPS在車輛導航及公交報站中的應用的文獻[1-2]。GPS接收機接收衛(wèi)星發(fā)出的信號,經(jīng)過計算處理就可報告GPS接收機的位置、時間和運動狀態(tài),通過三角定位原理可計算出車輛當前所處的經(jīng)度、緯度、時間、速度和航向[6]。GPS在接收機數(shù)據(jù)輸出的方式有串口RS-232方式輸出、USB方式輸出。
系統(tǒng)采用的GPS接收模塊是SUN-SF5032。該模塊工作電壓為5 V,與單片機之間采用異步串行通信方式,速率為9 600 bit/s,每幀包括8個數(shù)據(jù)位、1位停止位,無奇偶校驗位。數(shù)據(jù)格式采用NMEA-0183格式,輸出數(shù)據(jù)采用ASCI碼字符,內(nèi)容包含了緯度、經(jīng)度、速度、日期、航向及衛(wèi)星狀況等信息[7]。以1幀/s的速率依次輸出完整的數(shù)據(jù)格式如下:
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>,*<13><CR><LF>
其中:<1>表示世界標準時間(UTC),24 h制,格式為hhmmss.ss;<2>表示緯度值,格式為 ddmm.mmmm;<3>表示南北半球,N表示北緯,S表示南緯;<4>表示經(jīng)度值,格式為dddmm.mmmm;<5>表示東西半球,E表示東經(jīng),W表示西經(jīng);<6>表示定位質(zhì)量指示,0表示固定不變,1表示可變定位標準定位系統(tǒng)(standard positioning system,SPS)模式,2表示差分GPS模式;<7>表示使用的衛(wèi)星數(shù)。
對于公交報站系統(tǒng),我們只需要從GPS模塊中讀出標準時間、經(jīng)度和緯度,然后通過軟件計算得出當前點距離站點的距離,從而確定當前公交車的狀態(tài)。
主程序設計主要包括兩大部分程序設計,即從GPS模塊讀出定位信息和播放相應語音。單片機通過串口讀出GPS模塊中的數(shù)據(jù),通過分析NMEA-0183數(shù)據(jù)字段得出經(jīng)度值和緯度值。
軟件處理主要包括計算當前點距離公交站點的距離以及確定當前的行駛方向,然后通過查表的方式確定公交車的當前狀態(tài)。主程序設計流程圖如圖3所示。
圖3 主程序流程圖Fig.3 Flowchart of the main program
單片機以1次/s的速率讀取GPS的數(shù)據(jù),然后利用式(1)計算與起點站之間的距離。
式中:λA和ΦA分別為A點的經(jīng)度和緯度;λB和ΦB分別為B點的經(jīng)度和緯度;D為距離。
公交車在每兩個站點之間的運行要經(jīng)歷到站、出站和運行3個狀態(tài)[8]:①到站,播報到站信息;②出站,播報出站臺信息;③運行,介紹行車沿途的城市風貌、播放廣告、預報下站站名等。
每一種狀態(tài)需要播放的話音信息如表1所示。
表1 公交運行狀態(tài)及播放語音信息Tab.1 Bus running status and voice message broadcast
公交運行線路先存儲在單片機的內(nèi)部ROM中。單片機與語音合成芯片通信應嚴格遵守語音芯片的通信協(xié)議。
每個信息幀最多56個字節(jié):第一個字節(jié)為開始字節(jié)0x01,第二、三、四個字節(jié)為參數(shù)描述字節(jié),后面最多跟著50個數(shù)據(jù)字節(jié);0x04為結(jié)束字節(jié);最后一個字節(jié)為發(fā)送異或校驗字節(jié)[9-10]。
當要進行播放時,單片機首先從存儲器中取出要播放的文本,再根據(jù)參數(shù)設置要求,設置好第二、三、四三個參數(shù)描述字節(jié);然后將所有字節(jié)相異或,生成校驗字節(jié);最后通過串口向TTS芯片發(fā)送。當TTS芯片收到字節(jié)后會向信息終端傳輸回應幀,每個回應幀共回送3個字節(jié)。
① 若收到0x01、0x11、0x04三個字節(jié),表示接收校驗成功;
② 若收到0x01、0x10、0x04三個字節(jié),表示接收校驗失敗;
③ 若收到0x01、0x12、0x04三個字節(jié),表示全部播音完成。
其中,第一個字節(jié)0x01表示回送開始,第二個字節(jié)表示接收校驗成功或失敗或播完,第三個字節(jié)0x04表示回送結(jié)束。若單片機接收校驗失敗,則重新發(fā)送剛才的內(nèi)容。
本次試驗以重慶市北碚區(qū)892公交運行線路為例。892公交沿途路線為:市九醫(yī)院-和平路口-北碚車站-北碚區(qū)門診-西南大學-雙柏樹高速路口-308廠。將各站點的經(jīng)度、緯度存儲于單片機的ROM中,存儲內(nèi)容如表2所示。
表2 892線路各站點經(jīng)度緯度Tab.2 The latitude and longitude of each stop of line 892
由表2可見,當公交車由市九醫(yī)院站點開往308廠方向時,經(jīng)度值減少,反之則經(jīng)度值增加。在程序設計時,可以利用線路特點簡化程序設計。為了利用表1判別當前公交狀態(tài),在程序中利用兩個變量分別存儲前一時刻從GPS模塊讀出的經(jīng)度值和緯度值,以及當前時刻的經(jīng)度值和緯度值。首先根據(jù)經(jīng)度值的變化方向(增加、減小),確定公交車的運行方向;再計算當前點到前一站點和下一站點的距離,確定現(xiàn)在公交車是在運行狀態(tài)、進站狀態(tài)還是出站狀態(tài);最后根據(jù)相應的狀態(tài)調(diào)用相應的語音信息,通過TTS模塊播放[11]。
與采用“錄音-存儲-回放”傳統(tǒng)的公交系統(tǒng)相比,系統(tǒng)存儲節(jié)省的空間計算如下。對于本線路播報的站語音信息和廣告信息共用時間大約為30 s。如果采用64 kbit/s的采樣速率以脈碼調(diào)制(pulse code modulation,PCM)方式進行錄音存儲[9],則需要的存儲空間為64 kbit/s×8×60=30 720 kbit,大約需要30 MB的存儲空間。而本系統(tǒng)將播報的內(nèi)容以文本形式存儲在存儲器中,一個漢字在存儲器中要占用2 B的空間,系統(tǒng)需要播報的內(nèi)容共有264個漢字,存儲空間僅需要528 B。相比存儲空間只用到傳統(tǒng)方式的17.1%,節(jié)省了存儲空間。
本系統(tǒng)利用GPS技術(shù)使站點識別、公交運行狀態(tài)查詢實現(xiàn)了自動化,不需要駕駛員通過按鍵來確定播放相應的語音內(nèi)容;利用TTS技術(shù)將原來對語音信號波形直接進行的錄音存儲方式,改為存儲要播放的語音文本信息,大大節(jié)省了存儲空間。在今后的研究中可以進一步利用TTS播放語音的一些優(yōu)點,對語音信號進行控制。如當環(huán)境噪聲較大時,可以控制TTS模塊提高輸出語音的音量,或者改變播放的語音速率,使報站系統(tǒng)進一步完善。
[1]許連華,李學慶.基于GPS的公交車自動報站系統(tǒng)[J].計算機工程,2005,31(23):191-192,218.
[2]曹云川,周遐,金瑞.公交車自動報站器設計[J].昆明理工大學學報:理工版,2009,34(3):44-47.
[3]呂士楠.TTS技術(shù)的發(fā)展和展望[C]∥第六屆全國人機語音通訊學術(shù)會議,2001:33-37.
[4] Acero A.An overview of text-to-speech synthesis[C]∥Proceedings of IEEE Workshop on Speech Coding,Delavan,USA,2000:1.
[5]張勤,李家權(quán).GPS測量原理及應用[M].北京:科學出版社.2005:220-266.
[6] 周應軍.智能交通系統(tǒng)ITS概述[J].汽車與配件,2003,37:26-28.
[7]黃金明.基于ARM9的公交車智能報站系統(tǒng)的設計[J].自動化儀表,2008,29(6):53-55.
[8]林綠洲,陸起涌.基于GPS與GPRS的公交智能監(jiān)控系統(tǒng)[J].儀器儀表學報,2006,27(6):561-563.
[9]吳杰,張保平.ISD4004芯片在現(xiàn)場錄放音系統(tǒng)中的應用[J].微處理機,2004(4):60-62.
[10]畢曉君,靜廣宇,徐先鋒.利用TTS技術(shù)實現(xiàn)文本文件的語音合成[J].計算機應用,2004,23(9):49-50.
[11]黃華,仲元昌,胡江坤,等.中文語音合成系統(tǒng)語音速率調(diào)節(jié)方法[J].西南大學學報:自然科學版,2011,33(3):153-157.
Application of TTS in Intelligent Bus Stop Announcement System for Public Transportation
In traditional bus stop announcement systems for public transportation,the method of“record-storage-playback”needs large capacity memory,to solve this problem,a new bus stop announcement system using GPS and TTS(text-to-speech)technologies is designed.With this method,in the memory,the text messages to be broadcasted are stored instead of the parameters information of the waveforms of voice signals.The experimental results show that only 17.1%of the storage space of traditional method is requested,thus the storage space is saved.
Text to speech(TTS)Intelligent announcementSpeech synthesis Global positioning system(GPS)Memory
TN912+.33
A
西南大學第四屆教育教學改革研究基金資助項目(編號:2010JY015)。
修改稿收到日期:2012-01-24。
黃華(1981-),男,2011年畢業(yè)于重慶大學電路與系統(tǒng)專業(yè),獲碩士學位,講師;主要從事語音合成與電路系統(tǒng)方面的研究。
行業(yè)信息