李家旺
(唐山中厚板材有限公司 設(shè)備機(jī)動部,河北 唐山 063610)
語音識別技術(shù)就是讓機(jī)器通過識別和理解過程把語音信號轉(zhuǎn)變?yōu)橄鄳?yīng)的文本或命令的高級技術(shù)。具有遠(yuǎn)距離控制功能的基于網(wǎng)絡(luò)的遠(yuǎn)程機(jī)器人,在海洋探測、軍事及人類自身不能到達(dá)的各種危險(xiǎn)和特殊場所具有獨(dú)特的作用[1]。結(jié)合語音識別與網(wǎng)絡(luò)通信技術(shù),在4自由度的AS-MRobotE機(jī)器人平臺上,利用其提供的軟件編程接口設(shè)計(jì)了可對其進(jìn)行語音遠(yuǎn)程實(shí)時(shí)控制的系統(tǒng),并給客戶端和服務(wù)器提供了新的控制界面。
語音遠(yuǎn)程控制機(jī)器人系統(tǒng)可以分為本地語音識別發(fā)送端和遠(yuǎn)程機(jī)器人控制端,即客戶機(jī)和服務(wù)器[2,3]。它們均是基于Windows系統(tǒng)。語音遠(yuǎn)程控制機(jī)器人系統(tǒng)的整體結(jié)構(gòu)框圖,如圖1所示。

圖1 語音遠(yuǎn)程控制機(jī)器人系統(tǒng)的整體結(jié)構(gòu)框圖
語音識別分為訓(xùn)練階段和識別階段:第一步是系統(tǒng)“訓(xùn)練”階段,任務(wù)是建立識別基本單元的聲學(xué)模型;第二步是“識別”階段。按照一定的準(zhǔn)則和測度與系統(tǒng)模型進(jìn)行比較,通過判決得出識別結(jié)果。本系統(tǒng)是基于小識別詞匯量的語音識別系統(tǒng),采用如圖2所示的模板匹配法。

圖2 基于模板匹配的語音識別原理框圖
系統(tǒng)采用麥克風(fēng)將語音信號輸入給計(jì)算機(jī),再進(jìn)行預(yù)加重、分幀加窗處理,然后進(jìn)行端點(diǎn)檢測。其中加窗使用Hamming窗,因?yàn)镠amming窗的旁瓣較低,可以有效地克服Gibbs現(xiàn)象。
特征提取是從短時(shí)語音幀中提取對語音識別有效的信息。在孤立詞語音識別中,用Mel頻率的倒譜系數(shù)(Mel Frequency Ceqstrum Coefficient,MFCC)作為語音特征取得了較好的效果。MFCC完整的計(jì)算過程,如圖3所示。

圖3 MFCC計(jì)算過程示意圖
在語音命令識別中,應(yīng)用HMM包括兩個(gè)步驟,其中一個(gè)重要的步驟就是識別。在進(jìn)行識別時(shí),為每一個(gè)參考模型計(jì)算出產(chǎn)生測試觀察的概率,且測試信號按最大概率被識別為某個(gè)命令。
Windows支持TCP協(xié)議,提供標(biāo)準(zhǔn)Socket調(diào)用。Socket編程均采用客戶機(jī)/服務(wù)器模式,客戶機(jī)/服務(wù)器模式在操作過程中采用主動請求方式。其TCP傳輸?shù)目蛻魴C(jī)/服務(wù)器通訊模型,如圖4所示。

圖4 TCP傳輸?shù)目蛻魴C(jī)/服務(wù)器通訊模型
語音遠(yuǎn)程控制機(jī)器人系統(tǒng)的機(jī)器人平臺是上海廣茂達(dá)公司生產(chǎn)的AS-MRobotE智能風(fēng)暴移動機(jī)器人。AS-MRobotE函數(shù)開發(fā)庫中已提供了完善的運(yùn)動系統(tǒng)程序代碼。其控制系統(tǒng)是在Windows平臺下用C/C++語言為AS-MRobotE開發(fā)應(yīng)用程序的一般方法。編程過程中只需添加m6e_api庫為AS-MRobotE開發(fā)應(yīng)用程序庫,具體編程過程和說明見其操作手冊。
Socket是對應(yīng)TCP/IP協(xié)議的典型應(yīng)用開發(fā)接口。它提供了不同主機(jī)間進(jìn)程通信的端點(diǎn),應(yīng)用進(jìn)程之間要通過網(wǎng)絡(luò)進(jìn)行通信,必須在網(wǎng)絡(luò)的每一端建立套接字,通過對套接字的“讀”、“寫”操作實(shí)現(xiàn)網(wǎng)絡(luò)通信。作為網(wǎng)絡(luò)應(yīng)用編程界面,Socket隱藏了網(wǎng)絡(luò)底層的復(fù)雜結(jié)構(gòu)和協(xié)議,使得編程人員可以簡單地對網(wǎng)絡(luò)進(jìn)行操作。
Socket主要有兩種通信方式,第一種叫流方式(StreamSocket),也稱面向連接方式。在這種方式下,通信進(jìn)程之間要先建立一種虛擬的連接,這種方式對應(yīng)的是TCP協(xié)議,其傳輸特點(diǎn)是通信可靠性高,按發(fā)送的順序接收數(shù)據(jù);數(shù)據(jù)被看作是字節(jié)流,無長度限制。第二種叫做數(shù)據(jù)報(bào)方式(DatagramSocket),又稱無連接方式,它提供無連接服務(wù),對應(yīng)的是UDP協(xié)議,這種方式不提供數(shù)據(jù)無錯(cuò)保證,數(shù)據(jù)可能丟失或重復(fù),并且接收順序混亂,報(bào)文的長度是有限的。
Socket的編程原理是基于套接字的系統(tǒng)調(diào)用。應(yīng)用程序首先必須通過系統(tǒng)調(diào)用socket()創(chuàng)建套接字。然后,調(diào)用bind()將套接字地址與所創(chuàng)建的套接字聯(lián)系起來。通過connect()和accept()兩個(gè)系統(tǒng)調(diào)用建立套接字的連接,其中connect()用于建立連接,accept()用于使服務(wù)器等待來自客戶的實(shí)際連接。listen()用于面向連接服務(wù)器,表明它愿意接收連接。當(dāng)一個(gè)連接建立后,就可以使用系統(tǒng)調(diào)用send()和recv()發(fā)送和接收數(shù)據(jù)了。最后調(diào)用closesocket()關(guān)閉套接字,并釋放所分配給套接字的資源[4]。
圖5所示的是系統(tǒng)客戶端的界面。該系統(tǒng)實(shí)現(xiàn)了語音識別的訓(xùn)練及識別、服務(wù)器的IP及端口設(shè)置、運(yùn)行狀態(tài)的顯示,以及發(fā)送識別指令等智能控制功能。

圖5 語音遠(yuǎn)程控制機(jī)器人客戶端的界面
圖6所示為系統(tǒng)服務(wù)器的界面。該系統(tǒng)實(shí)現(xiàn)了顯示本地IP、機(jī)器人初始化、本地控制、遠(yuǎn)程控制狀態(tài)顯示、服務(wù)器端口設(shè)置,以及指令顯示等智能控制功能。

圖6 語音遠(yuǎn)程控制機(jī)器人服務(wù)端的界面
整個(gè)系統(tǒng)的程序設(shè)計(jì)均基于Windows系統(tǒng)VC++編程語言[5]。
語音遠(yuǎn)程控制機(jī)器人系統(tǒng)采用了使用廣泛的Windows系統(tǒng)平臺,并且引入了語音識別與網(wǎng)絡(luò)通信技術(shù),使其控制方式更加智能化。首先是采用基于模板匹配技術(shù)的語音識別方法對有限的指令進(jìn)行識別,不但能夠得到比較高的識別率,而且易于實(shí)現(xiàn);然后通過Socket機(jī)制實(shí)現(xiàn)了遠(yuǎn)程通信,并最終根據(jù)指令實(shí)現(xiàn)了對機(jī)器人的語音遠(yuǎn)程控制。實(shí)驗(yàn)驗(yàn)證了語音遠(yuǎn)程控制智能機(jī)器人運(yùn)動的準(zhǔn)確性和實(shí)時(shí)性。本系統(tǒng)具有極其優(yōu)異的性能價(jià)格比、通用性、開放性和擴(kuò)展性;基于Windows語音遠(yuǎn)程機(jī)器人控制系統(tǒng)在價(jià)格、性能和發(fā)展?jié)摿ι隙季哂懈偁幜?,代表了未來的發(fā)展方向,有較好的應(yīng)用前景。
[1] 丑武勝,王田苗.基于互聯(lián)網(wǎng)的機(jī)器人遠(yuǎn)程實(shí)驗(yàn)系統(tǒng)[J].高技術(shù)通訊,2003,13(8):68-72.
[2] 王雪松,田西蘭,王煒強(qiáng).語音識別技術(shù)在機(jī)器人控制中的應(yīng)用[J].儀器儀表學(xué)報(bào),2006(s1):299-301.
[3] Luo Zhizeng,Zhao Jingbing.Speech Recognition and Its Application in Voice-based Robot Control System[C].Intelligent Mechatronics and Automationics,2004,Proceedinqs,2004 International Conferenceon IEEE,2004:960-963.
[4] 李現(xiàn)凡,高建榮.基于SOCKET編程接口的局域網(wǎng)即時(shí)通信系統(tǒng)的開發(fā)實(shí)現(xiàn)[J].常州輕工職業(yè)技術(shù)學(xué)院學(xué)報(bào),2006(4):44-47.
[5] 黃維通,姚瑞霞.VisualC++程序設(shè)計(jì)教程[M].北京:機(jī)械工業(yè)出版社,2003.