摘要:文章將口令識別與無線通信、
機器人控制相結合,實現了基于口令識別的智能車無線控制系統。該系統包含接收和識別口令的主機,發送指令和接收指令的通信模塊以及帶有特定功能的智能車。主機識別口令后,以無線傳送方式將指令發送給智能車,智能車按指令實現相應功能。主機和智能車都基于嵌入式系統。主機硬件電路由三星S3C6410處理器和外圍電路組成,口令識別部分采用連續隱馬爾科夫模型算法。實驗表明,該系統有良好的穩定性和實用性。
關鍵詞:口令識別;無線通信;連續隱馬爾科夫模型
引言
語音是人類交流信息zui自然、zui方便、zui有效的方法。用語音與機器交互是人類一直夢寐以求的事情。經過十幾年的發展,基于隱馬爾科夫模型的語音識別已經達到了應用要求。通過語音口令識別完成與機器交流變得順其自然。人們與機器交流,大多是為了控制機器運作或獲取其運行狀態。目前應用廣泛的總線控制系統,網絡控制系統大多要求有數據線傳送指令。無線通信技術讓這種控制擺脫了地域的束縛。通過語音口令識別,機器“聽懂”語音并將其“翻譯”成指令,然后通過無線通信傳輸指令、控制遠程智能車模式有著很好的應用前景。基于口令識別的控制系統與嵌入式系統有效結合,與未使用嵌入式系統比較更有便捷易用,顯示出其優勢作用。基于口令識別的無線控制嵌入式系統在可廣泛應用于偵查、自動化控制領域。
本文給出基于口令識別的智能車無線控制的嵌入式系統。該系統首先獲取語音口令并識別。識別口令完成后,解析成便于無線傳輸的控制指令幀。控制指令幀通過無線網絡被傳輸到遠程智能車。這種模式與單一的口令識別控制系統或無線控制系統相比,更有應用價值和實際意義。整個系統有三個模塊,即主機模塊、通信模塊和智能車模塊。主機實現語音信號采集和口令識別。主機是以S3C6410為核心的嵌入式系統,運行廣泛應用的WinCE6.0操作系統。通信模塊負責主機與智能車之間的通信。通信模塊基于ZigBee設計,用TI公司CC2530F256芯片作為主芯片。智能車是基于51單片機控制的嵌入式系統,會根據主機指令運行。
本文以下內容分安排如下,第二節詳細介紹了系統要求和系統硬件結構,主要包括主機板、智能車板的硬件設計,ZigBee通信模塊設計。第三節詳細介紹系統軟件設計,主要包括口令識別算法設計,主機軟件設計,無線數據發送方法,智能車程序設計以及通信設計。第四節給出實驗結果以及總結。
1、系統硬件設計
對于一個基于口令識別的無線控制系統,主要有以下幾個要求。
(1)完成語音口令識別功能,系統需要對人發出的口令迅速做出識別并實現。
(2)為了更快地響應用戶口令,系統要有滿足迅速反應的硬件和優化的算法,使得口令識別快捷穩定。
(3)通信模塊要具有安全性,使得傳送的指令保密又能安全到達對方。
在主機中使用穩定的嵌入式WINCE6.0操作系統。通信模塊使用基于IEEE802.15.4標準的局域網協議Zigbee.ZigBee是一種便宜的,可加密,低功耗的近距離無線組網通訊技術。
本文中,主機嵌入式系統是以ARM11芯片三星公司S3C6410作為主處理器。系統集成了256MDDRRAM,NANDFlash2GB存儲器。S3C6410處理器主頻為533Mhz,zui高可達667Mhz,具有低功耗、高性能等特點。主處理器通過支持AC97標準的WM9714音頻芯片接受音頻輸入。該芯片由ADC/DAC,話筒混頻器,可編程增益放大器(PGA)和鎖相環組成。還提供PCM/I2C接口和AC'97接口。
本系統硬件框圖如圖1所示:
通信模塊有發射端和接收端。發射端在主機中,通過主機的串口與其連接。接收端在智能車中,也通過串口和智能車控制器連接。發射端和接收端都由TI公司CC2530F256芯片作為核心加擴展的外圍模塊組成。CC2530系列芯片是TI公司為嵌入式系統低功耗無線通信提供的解決方案。該系列芯片花費很小的代價可以建立健壯的一對多、多對多的網絡。
智能車上有以51單片機為核心的控制電路板。89S51單片機主要接受和解析接收端的指令、控制電機、反饋狀態等。系統的硬件性能滿足需求的計算要求和安全性要求。
2、系統軟件設計
2.1算法設計
口令識別系統框架如圖2所示
口令識別系統包括預處理,參數提取,口令訓練和口令識別模塊。預處理包括端點檢測,分幀和加窗。另外,預處理部分對于高頻信號部分進行加重處理,便于后續階段信號參數提取。參數提取模塊從語音信號中提取zui能反映語音信息的語音特征,然后通過這些特征參數組成特征參數矢量序列,供后面處理。口令訓練模塊是通過大量口令特征參數訓練口令模板。口令識別模塊是將口令特征參數與口令模板匹配,得出識別結果。
2.2軟件設計
軟件設計分為兩個方面。主機方面,口令識別和指令發送在Microsoft公司的嵌入式操作系統WindowsCE6.0上開發。開發工具為*推薦的VisualStudio2005。有好的交互界面對于應用程序來說是很有必要的,控制軟件開發使用了MFC圖形界面。在智能車方面,是用的Keil開發工具開發了代碼,完成了接受指令和電機的驅動。
2.2.1主機程序
主機主要工作有口令識別、發送指令兩部分。在系統上,為這兩部分開兩個進程。主機程序流程圖如下:
主機程序兩個進程分別負責口令識別和口令發送。口令識別進程口令識別過程中對語音信號提取MFCC特征參數。用隱馬爾科夫模型對口令建模、訓練和識別。對每條語音口令信號,先切除*,進行預加重處理,然后通過Hamming窗分幀。幀長和幀移分別為20ms和10ms,對每一幀語音信號提取12階MFCC和△MFCC-共24維參數作為特征矢量。
2.2.2指令發送方法
主機的另一個任務是指令發送。發送指令通過單獨進程控制。該進程工作主要有:
(1)首先調用WindowsCEAPI函數CreateFile()打開串口。主機以獨占的方式打開串口2。
(2)之后通過調用API函數SetCommState()來設定串口波特率。主機設置串口波特率9600,數據位8位,停止位1位,無奇偶校驗。
(3)通過調用write()函數來寫需要串口發送的指令。通過read()函數來讀取串口發送過來的數據。
(4)程序結束后,調用CloseHandle()函數來關閉串口。
以上口令識別算法和指令發送已進行多次優化,滿足系統對算法的要求。
2.2.3智能車程序
智能車部分主要任務為接受指令和控制電機。
程序從main函數開始后,首先初始化單片機內部寄存、配置串口、電機復位等。之后就等待串口數據的輸入。該過程是一個接受指令、解析指令、執行指令、讀取車狀態、發送狀態的一個循環。接受指令是單片機通過串口接受無線模塊發送過來的指令數據。解析指令是指根據設定的協議,單片機判斷指令數據完整性并提取關鍵數據。執行指令是指單片機根據關鍵數據執行相應代碼,例如:向前走、停止、左轉等。讀取車狀態是指單片機讀取車上溫度傳感器的數據。發送狀態是指小車打包狀態數據并發送的過程。
2.3通信設計
通信設計主要是通信協議的設計。作為應用在嵌入式系統中的通信協議,應該滿足完整性、便捷性等。本文設計的通信幀結構如圖4所示。
傳輸的幀有七個字節組成,其中開頭和結尾兩個字節是幀頭和幀尾。第二第三字節是目標地址,第四第五字節是數據。第六字節是校驗位。在傳輸過程中發生的一些小錯誤。通過接受的幀的校驗位來排除,有一定的抗干擾性。
3、實驗與總結
3.1實驗結果
本文中取常用口令“前進”,“后退”,“左轉”等8個單詞為一組,進行實驗。共設置三組實驗。*組試驗中,測試系統口令識別的準確率,分別用說話者A,B,C,D四個人進行以上口令識別,實驗結果中系統識別率達到了90%。第二組試驗中,測試無線系統的傳輸距離。本文將無線模塊接收端和客戶端相分離,至到接收端無法接受到發送端的數據位置。實驗結果是傳送數據可以穿過一面墻,傳輸距離可到達30m。第三組實驗為綜合測試,即應用測試。試驗中,測試者可以很方便的控制智能車運動和狀態。
3.2總結
口令識別的應用使人對機器人控制更加方便。本文在廣泛應用的WinCE嵌入式平臺上實現了智能車無線控制系統。實驗結果表明,口令識別率達到了90%。在主機正確識別的口令中,智能車的誤操作概率為零。與之前孤立的口令識別系統或控制系統相比,本系統首先應用方便,口令識別準確率高。其次,接口模塊化,通過改變無線數據傳送方式可以增加多個節點控制,便于管理。基于口令識別的無線控制系統具有很好的便捷性和擴展性。尤其是基于嵌入式的該系統,具有很廣泛的應用前景。