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

圖1 語音遠程控制機器人系統的整體結構框圖
語音識別分為訓練階段和識別階段:第一步是系統“訓練”階段,任務是建立識別基本單元的聲學模型;第二步是“識別”階段。按照一定的準則和測度與系統模型進行比較,通過判決得出識別結果。本系統是基于小識別詞匯量的語音識別系統,采用如圖2所示的模板匹配法。

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

圖3 MFCC計算過程示意圖
在語音命令識別中,應用HMM包括兩個步驟,其中一個重要的步驟就是識別。在進行識別時,為每一個參考模型計算出產生測試觀察的概率,且測試信號按最大概率被識別為某個命令。
Windows支持TCP協議,提供標準Socket調用。Socket編程均采用客戶機/服務器模式,客戶機/服務器模式在操作過程中采用主動請求方式。其TCP傳輸的客戶機/服務器通訊模型,如圖4所示。

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

圖5 語音遠程控制機器人客戶端的界面
圖6所示為系統服務器的界面。該系統實現了顯示本地IP、機器人初始化、本地控制、遠程控制狀態顯示、服務器端口設置,以及指令顯示等智能控制功能。

圖6 語音遠程控制機器人服務端的界面
整個系統的程序設計均基于Windows系統VC++編程語言[5]。
語音遠程控制機器人系統采用了使用廣泛的Windows系統平臺,并且引入了語音識別與網絡通信技術,使其控制方式更加智能化。首先是采用基于模板匹配技術的語音識別方法對有限的指令進行識別,不但能夠得到比較高的識別率,而且易于實現;然后通過Socket機制實現了遠程通信,并最終根據指令實現了對機器人的語音遠程控制。實驗驗證了語音遠程控制智能機器人運動的準確性和實時性。本系統具有極其優異的性能價格比、通用性、開放性和擴展性;基于Windows語音遠程機器人控制系統在價格、性能和發展潛力上都具有競爭力,代表了未來的發展方向,有較好的應用前景。
[1] 丑武勝,王田苗.基于互聯網的機器人遠程實驗系統[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] 李現凡,高建榮.基于SOCKET編程接口的局域網即時通信系統的開發實現[J].常州輕工職業技術學院學報,2006(4):44-47.
[5] 黃維通,姚瑞霞.VisualC++程序設計教程[M].北京:機械工業出版社,2003.