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