李家旺
(唐山中厚板材有限公司 設備機動部,河北 唐山 063610)
語音識別技術就是讓機器通過識別和理解過程把語音信號轉變?yōu)橄鄳奈谋净蛎畹母呒壖夹g。具有遠距離控制功能的基于網(wǎng)絡的遠程機器人,在海洋探測、軍事及人類自身不能到達的各種危險和特殊場所具有獨特的作用[1]。結合語音識別與網(wǎng)絡通信技術,在4自由度的AS-MRobotE機器人平臺上,利用其提供的軟件編程接口設計了可對其進行語音遠程實時控制的系統(tǒng),并給客戶端和服務器提供了新的控制界面。
語音遠程控制機器人系統(tǒng)可以分為本地語音識別發(fā)送端和遠程機器人控制端,即客戶機和服務器[2,3]。它們均是基于Windows系統(tǒng)。語音遠程控制機器人系統(tǒng)的整體結構框圖,如圖1所示。
圖1 語音遠程控制機器人系統(tǒng)的整體結構框圖
語音識別分為訓練階段和識別階段:第一步是系統(tǒng)“訓練”階段,任務是建立識別基本單元的聲學模型;第二步是“識別”階段。按照一定的準則和測度與系統(tǒng)模型進行比較,通過判決得出識別結果。本系統(tǒng)是基于小識別詞匯量的語音識別系統(tǒng),采用如圖2所示的模板匹配法。
圖2 基于模板匹配的語音識別原理框圖
系統(tǒng)采用麥克風將語音信號輸入給計算機,再進行預加重、分幀加窗處理,然后進行端點檢測。其中加窗使用Hamming窗,因為Hamming窗的旁瓣較低,可以有效地克服Gibbs現(xiàn)象。
特征提取是從短時語音幀中提取對語音識別有效的信息。在孤立詞語音識別中,用Mel頻率的倒譜系數(shù)(Mel Frequency Ceqstrum Coefficient,MFCC)作為語音特征取得了較好的效果。MFCC完整的計算過程,如圖3所示。
圖3 MFCC計算過程示意圖
在語音命令識別中,應用HMM包括兩個步驟,其中一個重要的步驟就是識別。在進行識別時,為每一個參考模型計算出產(chǎn)生測試觀察的概率,且測試信號按最大概率被識別為某個命令。
Windows支持TCP協(xié)議,提供標準Socket調用。Socket編程均采用客戶機/服務器模式,客戶機/服務器模式在操作過程中采用主動請求方式。其TCP傳輸?shù)目蛻魴C/服務器通訊模型,如圖4所示。
圖4 TCP傳輸?shù)目蛻魴C/服務器通訊模型
語音遠程控制機器人系統(tǒng)的機器人平臺是上海廣茂達公司生產(chǎn)的AS-MRobotE智能風暴移動機器人。AS-MRobotE函數(shù)開發(fā)庫中已提供了完善的運動系統(tǒng)程序代碼。其控制系統(tǒng)是在Windows平臺下用C/C++語言為AS-MRobotE開發(fā)應用程序的一般方法。編程過程中只需添加m6e_api庫為AS-MRobotE開發(fā)應用程序庫,具體編程過程和說明見其操作手冊。
Socket是對應TCP/IP協(xié)議的典型應用開發(fā)接口。它提供了不同主機間進程通信的端點,應用進程之間要通過網(wǎng)絡進行通信,必須在網(wǎng)絡的每一端建立套接字,通過對套接字的“讀”、“寫”操作實現(xiàn)網(wǎng)絡通信。作為網(wǎng)絡應用編程界面,Socket隱藏了網(wǎng)絡底層的復雜結構和協(xié)議,使得編程人員可以簡單地對網(wǎng)絡進行操作。
Socket主要有兩種通信方式,第一種叫流方式(StreamSocket),也稱面向連接方式。在這種方式下,通信進程之間要先建立一種虛擬的連接,這種方式對應的是TCP協(xié)議,其傳輸特點是通信可靠性高,按發(fā)送的順序接收數(shù)據(jù);數(shù)據(jù)被看作是字節(jié)流,無長度限制。第二種叫做數(shù)據(jù)報方式(DatagramSocket),又稱無連接方式,它提供無連接服務,對應的是UDP協(xié)議,這種方式不提供數(shù)據(jù)無錯保證,數(shù)據(jù)可能丟失或重復,并且接收順序混亂,報文的長度是有限的。
Socket的編程原理是基于套接字的系統(tǒng)調用。應用程序首先必須通過系統(tǒng)調用socket()創(chuàng)建套接字。然后,調用bind()將套接字地址與所創(chuàng)建的套接字聯(lián)系起來。通過connect()和accept()兩個系統(tǒng)調用建立套接字的連接,其中connect()用于建立連接,accept()用于使服務器等待來自客戶的實際連接。listen()用于面向連接服務器,表明它愿意接收連接。當一個連接建立后,就可以使用系統(tǒng)調用send()和recv()發(fā)送和接收數(shù)據(jù)了。最后調用closesocket()關閉套接字,并釋放所分配給套接字的資源[4]。
圖5所示的是系統(tǒng)客戶端的界面。該系統(tǒng)實現(xiàn)了語音識別的訓練及識別、服務器的IP及端口設置、運行狀態(tài)的顯示,以及發(fā)送識別指令等智能控制功能。
圖5 語音遠程控制機器人客戶端的界面
圖6所示為系統(tǒng)服務器的界面。該系統(tǒng)實現(xiàn)了顯示本地IP、機器人初始化、本地控制、遠程控制狀態(tài)顯示、服務器端口設置,以及指令顯示等智能控制功能。
圖6 語音遠程控制機器人服務端的界面
整個系統(tǒng)的程序設計均基于Windows系統(tǒng)VC++編程語言[5]。
語音遠程控制機器人系統(tǒng)采用了使用廣泛的Windows系統(tǒng)平臺,并且引入了語音識別與網(wǎng)絡通信技術,使其控制方式更加智能化。首先是采用基于模板匹配技術的語音識別方法對有限的指令進行識別,不但能夠得到比較高的識別率,而且易于實現(xiàn);然后通過Socket機制實現(xiàn)了遠程通信,并最終根據(jù)指令實現(xiàn)了對機器人的語音遠程控制。實驗驗證了語音遠程控制智能機器人運動的準確性和實時性。本系統(tǒng)具有極其優(yōu)異的性能價格比、通用性、開放性和擴展性;基于Windows語音遠程機器人控制系統(tǒng)在價格、性能和發(fā)展?jié)摿ι隙季哂懈偁幜?,代表了未來的發(fā)展方向,有較好的應用前景。
[1] 丑武勝,王田苗.基于互聯(lián)網(wǎng)的機器人遠程實驗系統(tǒng)[J].高技術通訊,2003,13(8):68-72.
[2] 王雪松,田西蘭,王煒強.語音識別技術在機器人控制中的應用[J].儀器儀表學報,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)即時通信系統(tǒng)的開發(fā)實現(xiàn)[J].常州輕工職業(yè)技術學院學報,2006(4):44-47.
[5] 黃維通,姚瑞霞.VisualC++程序設計教程[M].北京:機械工業(yè)出版社,2003.