(江蘇科技大學(xué)機(jī)械工程學(xué)院,江蘇 鎮(zhèn)江 212003)
導(dǎo)盲機(jī)器人屬輪式自主移動(dòng)機(jī)器人[1]的一種,其設(shè)計(jì)目的是應(yīng)用語音交互的方式來彌補(bǔ)盲人視覺信息的缺失。至今為止,世界上許多智能導(dǎo)盲設(shè)備如OAS、Laser-Cane和PAMM等,在人機(jī)語音交互方面都存在一定的研究空白[2-3]。據(jù)此,本文分別采用RFID無線射頻識(shí)別技術(shù)[4-5]和SI-ASR非特定人聲識(shí)別技術(shù)[6],通過定義室內(nèi)RFID標(biāo)簽來觸發(fā)導(dǎo)盲機(jī)器人的語音交互系統(tǒng),以完成環(huán)境語音播報(bào)和用戶人聲識(shí)別。大多數(shù)RFID和語音相結(jié)合的機(jī)電儀器,如帶有語音的低功耗手持讀卡儀[7]只具備單純的報(bào)音功能。本文設(shè)計(jì)的系統(tǒng)除具有報(bào)音功能外,還設(shè)計(jì)有人聲指令的識(shí)別功能,通過定義125 kHz低頻 RFID[5]觸發(fā)標(biāo)簽的布置結(jié)構(gòu)和應(yīng)用LD3320的SI-ASR搜索引擎和特征庫,完成非人聲指令、播報(bào)地點(diǎn)和物品信息的語音交互功能。
室內(nèi)導(dǎo)盲機(jī)器人的RFID-語音交互部分的硬件系統(tǒng)結(jié)構(gòu)框圖如圖1所示。該系統(tǒng)采用主從機(jī)的分布式組成結(jié)構(gòu),各從機(jī)采用UART串行通信的方式,通過MAX485芯片將TXD和RXD中的TTL電平信號(hào)轉(zhuǎn)換為RS- 485信號(hào),從而實(shí)現(xiàn)主控上位機(jī)和各從機(jī)間的雙向信號(hào)傳遞。
圖1 系統(tǒng)硬件框圖
LD3320語音識(shí)別芯片受控于STC10L08XE,并采用模擬SPI的方式進(jìn)行雙向通信。耳機(jī)和麥克風(fēng)接口同時(shí)集成在LD3320外圍電路中。125 kHz低頻RFID閱讀線圈共有四組,可分別與各自讀取范圍內(nèi)的RFID標(biāo)簽進(jìn)行非接觸式通信。信號(hào)解調(diào)電路可解析標(biāo)簽對(duì)應(yīng)的ID號(hào)碼,并傳送至從機(jī)2(STC89C52RC)中與已存儲(chǔ)的物品信息列表代碼進(jìn)行比較和選取,最后得到該ID所對(duì)應(yīng)的語音觸發(fā)信息。上位機(jī)負(fù)責(zé)采集從機(jī)2中的核對(duì)結(jié)果并進(jìn)行優(yōu)先級(jí)調(diào)配,最終與從機(jī)1完成交互工作。
導(dǎo)盲機(jī)器人采用了基于非特定人語音識(shí)別技術(shù)SI-ASR的語音識(shí)別芯片LD3320[6-8]。該芯片可識(shí)別中文發(fā)音,不需用戶訓(xùn)練和錄音,通過芯片內(nèi)部固化的非特定人語音識(shí)別搜索引擎和特征庫即可識(shí)別出最佳語音匹配的拼音串。LD3320同時(shí)集成了ADC、DAC、話筒和麥克接口等外圍電路[9],可輔助導(dǎo)盲機(jī)器人實(shí)現(xiàn)語音識(shí)別、聲控和人機(jī)對(duì)話功能。
LD3320語音識(shí)別芯片接線原理圖如圖2所示。LD3320的芯片接口結(jié)構(gòu)較為復(fù)雜,LD3320與STC10L08XE采用同一個(gè)22.1184 MHz的外部晶振,SPOP和SPON為揚(yáng)聲器音頻輸出接口,MICP和MICN為外部麥克風(fēng)連接口,MBS為麥克風(fēng)偏置端,外部連接有RC電路,以保證可以提供一個(gè)浮動(dòng)電壓至麥克風(fēng)[10]。LD3320與STC10L08XE通過SPI總線引腳SDI、SDO、SDCK和CSB/SCS進(jìn)行雙向通信。LD3320可讀取外置Flash內(nèi)的MP3文件進(jìn)行組合和播放,當(dāng)MP3數(shù)據(jù)或識(shí)別結(jié)果不充分時(shí),LD3320通過INTB端觸發(fā)中斷信號(hào)通知STC10L08XE進(jìn)行處理。在數(shù)據(jù)出現(xiàn)極端冗余的情況下,STC10L08XE可直接將RSTB端置低,通知LD3320進(jìn)行語音識(shí)別和輸出功能的復(fù)位。
圖2 LD3320語音識(shí)別芯片接線原理圖
低頻RFID標(biāo)簽具有無源、信號(hào)穿透力強(qiáng)、價(jià)格低和通信距離近等使用特性[4],可以在室內(nèi)環(huán)境中實(shí)現(xiàn)批量布置。由于125 kHz低頻RFID的通信距離通常在3~10 cm之間,且低頻閱讀器和標(biāo)簽采用一對(duì)一的通信模式,當(dāng)1個(gè)讀寫器處于2個(gè)標(biāo)簽的讀寫范圍內(nèi)時(shí)會(huì)引發(fā)讀取紊亂的狀況,因此低頻標(biāo)簽必須以一定布局成組定義,才可確保機(jī)器人正確讀取。
低頻RFID閱讀器和標(biāo)簽布局圖如圖3所示,左圖為導(dǎo)盲機(jī)器人俯視圖,閱讀器分布在機(jī)器人的車體底盤上;右圖為閱讀器和標(biāo)簽重合的幾種形式,標(biāo)簽成組設(shè)置在環(huán)境關(guān)鍵點(diǎn)處,并以邊數(shù)最少的正多邊形和等邊三角形作為陣列的基本單位。
設(shè)標(biāo)簽的通信區(qū)域直徑為D,相鄰標(biāo)簽間距為s;閱讀器線圈直徑為d,閱讀器線圈共4組(A0~A3),其中,A0位于底盤中心,A1~A3分布在邊長(zhǎng)為L(zhǎng)的等邊三角形端點(diǎn)處。
圖3 低頻RFID閱讀器和標(biāo)簽布局圖
當(dāng)機(jī)器人位于關(guān)鍵點(diǎn)處時(shí),RFID標(biāo)簽正確觸發(fā)其語音系統(tǒng)的兩個(gè)充分條件為:
① 當(dāng)A0不處于低頻標(biāo)簽的信號(hào)覆蓋范圍內(nèi)時(shí),A1~A3則必須同時(shí)處于3個(gè)不同的低頻標(biāo)簽的信號(hào)覆蓋范圍內(nèi);
② 當(dāng)A1~A3中至少有一個(gè)不處于低頻標(biāo)簽的信號(hào)覆蓋范圍內(nèi)時(shí),A0則必須處于唯一低頻標(biāo)簽的信號(hào)覆蓋范圍內(nèi)。
A1~A3之間任意兩點(diǎn)的直線約束數(shù)學(xué)關(guān)系為:
A0~A3組成的等邊三角形與標(biāo)簽間的約束數(shù)學(xué)關(guān)系為:
當(dāng)機(jī)器人的4組RFID閱讀器和標(biāo)簽組的布局設(shè)置滿足以上數(shù)學(xué)關(guān)系式時(shí),即可確保機(jī)器人進(jìn)入關(guān)鍵點(diǎn)區(qū)域時(shí)正確啟動(dòng)語音交互系統(tǒng)。
非特定語音識(shí)別和輸出原理框圖如圖4所示。
圖4 語音識(shí)別及輸出原理框圖
當(dāng)LD3320識(shí)別外部語音信號(hào)后,以拼音串的形式傳入STC10L08XE中,由內(nèi)部程序再進(jìn)行拼音串和關(guān)鍵詞的匹配,確定匹配后根據(jù)關(guān)鍵詞屬性確定是進(jìn)行語音輸出還是上傳動(dòng)作信號(hào)。
STC10L08XE內(nèi)部程序流程如下。
① 語音識(shí)別和通用初始化。對(duì)各寄存器進(jìn)行初始化設(shè)置,單片機(jī)通過RSTB發(fā)送低電平以復(fù)位LD3320內(nèi)各數(shù)據(jù)處理模塊,并重新設(shè)定模式、始終頻率和FIFO[8-10]。
② 將各關(guān)鍵詞寫入識(shí)別列表。關(guān)鍵詞包括機(jī)器人的運(yùn)動(dòng)控制詞語、目的地和目的物品詞語以及簡(jiǎn)單的詢問詞語,每個(gè)關(guān)鍵詞都有其所屬編號(hào),不同關(guān)鍵詞可享有同一編號(hào),即使用者所發(fā)出的相近語音指令都可以歸屬于導(dǎo)盲機(jī)器人同一個(gè)執(zhí)行結(jié)果。關(guān)鍵詞采用以空格相間的拼音串形式設(shè)定,在導(dǎo)盲機(jī)器人啟動(dòng)前已寫入STC10L08XE的EEPROM中。
③ 準(zhǔn)備識(shí)別外部語音。向寄存器寫入麥克風(fēng)音量ADC增益,設(shè)置寄存器清空和芯片狀態(tài),開啟ADC和中斷并準(zhǔn)備識(shí)別外部語音。
④ 響應(yīng)中斷并識(shí)別。當(dāng)麥克風(fēng)采集到增益范圍所能接收的音頻信號(hào)時(shí),LD3320通知STC10L08XE產(chǎn)生中斷并識(shí)別。在LD3320進(jìn)行識(shí)別后,往BA寄存器中寫入所有可能匹配結(jié)果,往C5寄存器中寫入最佳分析結(jié)果。在讀取寄存器結(jié)果時(shí),若C5中沒有出現(xiàn)所屬類的結(jié)果,而BA寄存器中存在該結(jié)果,則單片機(jī)自動(dòng)將程序跳轉(zhuǎn)至語音輸出動(dòng)作。申請(qǐng)使用者重復(fù)語音指令并重復(fù)識(shí)別,若重復(fù)識(shí)別次數(shù)達(dá)到3次仍不匹配,則跳出識(shí)別。
⑤ 關(guān)鍵詞匹配和動(dòng)作輸出。若外部語音識(shí)別結(jié)果與關(guān)鍵詞匹配成功,則單片機(jī)STC10L08XE關(guān)閉識(shí)別中斷,以防止多余語音信息構(gòu)成中斷干擾,并準(zhǔn)備執(zhí)行機(jī)器人的具體執(zhí)行動(dòng)作。導(dǎo)盲機(jī)器人的語音執(zhí)行動(dòng)作按形式分為兩類。一類是語音輸出形式,機(jī)器人應(yīng)要求為使用者提供語音播報(bào),如當(dāng)前運(yùn)行狀況、大致位置信息以及所經(jīng)過的可識(shí)別物品等。導(dǎo)盲機(jī)器人的MP3語音輸出信息存放在與STC10L08XE相連的外置Flash寄存器中。為節(jié)省空間并構(gòu)成更多的輸出信息,這里將MP3語音輸出信息分段存儲(chǔ),播放時(shí)按要求尋找所需語段,這些語段的存放首地址和末地址按順序組合,通過揚(yáng)聲器一同輸出。這種方法使得語音系統(tǒng)的輸出內(nèi)容變得更加智能、靈活和多變。另一類是機(jī)器人運(yùn)動(dòng)的輸出形式,包括機(jī)器人的前進(jìn)、后退、左轉(zhuǎn)和右轉(zhuǎn)等運(yùn)動(dòng)信息。當(dāng)這類信息進(jìn)行匹配后,單片機(jī)將運(yùn)動(dòng)控制字上傳至485總線,與其他模塊信息的優(yōu)先級(jí)分配后,最終轉(zhuǎn)化為機(jī)器人電機(jī)的具體動(dòng)作。
導(dǎo)盲機(jī)器人的語音識(shí)別狀態(tài)判定程序位于導(dǎo)盲機(jī)器人從機(jī)1的主程序中,每個(gè)掃描周期都會(huì)判斷當(dāng)前的識(shí)別狀態(tài),當(dāng)有外部語音的中斷且識(shí)別出結(jié)果時(shí),程序執(zhí)行LD_ASR_FOUNDOK。在Output (nAsrRes)子程序中,單片機(jī)主要負(fù)責(zé)對(duì)識(shí)別結(jié)果的匹配和具體輸出動(dòng)作。為便于對(duì)應(yīng)識(shí)別結(jié)果和行為的管理,本文定義了使用者和導(dǎo)盲機(jī)器人對(duì)話管理單元的二維數(shù)組。由于LD3320最多可設(shè)置50項(xiàng)候選識(shí)別關(guān)鍵詞,每項(xiàng)拼音段長(zhǎng)度不能超過79 B[10],因此結(jié)合該芯片特性和導(dǎo)盲機(jī)器人功能要求設(shè)計(jì)的對(duì)話管理數(shù)組如表1所示。
表1 語音單元管理數(shù)組設(shè)計(jì)
表1中,識(shí)別數(shù)組和動(dòng)作數(shù)組分別存在3種分類屬性,在識(shí)別和匹配時(shí)可以方便程序更加快速地比對(duì)和尋找。動(dòng)作數(shù)組和識(shí)別數(shù)組的同項(xiàng)目之間為一一對(duì)應(yīng)的關(guān)系。為豐富機(jī)器人的語音輸出信息,本文設(shè)計(jì)的動(dòng)作數(shù)組中一個(gè)關(guān)鍵詞最多可對(duì)應(yīng)10個(gè)動(dòng)作組合,運(yùn)動(dòng)動(dòng)作和語音動(dòng)作可列為同一動(dòng)作數(shù)組中,以便機(jī)器人完成更復(fù)雜的任務(wù)。
本文根據(jù)研究?jī)?nèi)容自主設(shè)計(jì)了基于RFID的語音導(dǎo)盲機(jī)器人試驗(yàn)樣機(jī),并分別進(jìn)行了10組功能試驗(yàn)測(cè)試。每組試驗(yàn)中,機(jī)器人進(jìn)入低頻信標(biāo)組的角度均不同,其中機(jī)器人車體直徑為50 cm,行走速度設(shè)定為0.5 m/s,在機(jī)器人進(jìn)入信標(biāo)區(qū)域的前方設(shè)定有超聲波探測(cè)頭。當(dāng)超聲波探測(cè)頭探測(cè)到機(jī)器人經(jīng)過時(shí),開始計(jì)時(shí)直至識(shí)別RFID并觸發(fā)語音交互系統(tǒng)。試驗(yàn)測(cè)得每組角度均能正常觸發(fā)機(jī)器人的語音交互系統(tǒng)。由于需滿足一定的條件,系統(tǒng)才可正確啟動(dòng),因此每組試驗(yàn)的延時(shí)時(shí)間存在差異。試驗(yàn)中最長(zhǎng)延時(shí)時(shí)間為1 142 ms,最短延時(shí)時(shí)間為272 ms,平均延時(shí)時(shí)間約為516 ms,基本符合機(jī)器人的功能制定要求。
在RFID觸發(fā)LD3320工作后,對(duì)不同語速和不同語音內(nèi)容的識(shí)別率進(jìn)行測(cè)試,其中每組試驗(yàn)中共有1項(xiàng)供識(shí)別測(cè)試的語音內(nèi)容、2種不同的語速,其測(cè)試統(tǒng)計(jì)結(jié)果如表2所示。
表2 語音試驗(yàn)識(shí)別結(jié)果統(tǒng)計(jì)
本文設(shè)計(jì)了一種RFID和非特定人聲語音識(shí)別技術(shù)相結(jié)合的導(dǎo)盲機(jī)器人的語音交互系統(tǒng)。以特定布局的低頻RFID標(biāo)簽組作為語音交互系統(tǒng)觸發(fā)信標(biāo),觸發(fā)機(jī)器人啟動(dòng)語音識(shí)別和輸出系統(tǒng),并著重設(shè)計(jì)了LD3320芯片的語音識(shí)別和輸出程序流程,以及導(dǎo)盲機(jī)器人的對(duì)話管理數(shù)組及分類,最后通過研發(fā)導(dǎo)盲機(jī)器人樣機(jī)試驗(yàn)驗(yàn)證了語音交互系統(tǒng)的可執(zhí)行性。同時(shí)總結(jié)了關(guān)于提高系統(tǒng)識(shí)別率的一些方法。本語音交互系統(tǒng)使用方便,可擴(kuò)展性強(qiáng),可擴(kuò)展至更多的有需求的智能化控制平臺(tái)中使用。
[1] Roland S,Illah R N.自主移動(dòng)機(jī)器人導(dǎo)論[M].李人厚,譯.西安:西安交通大學(xué)出版社,2006:5-23.
[2] Yuan D,Santa C,Manduchi R.Dynamic environment exploration using a virtual white cane[J].Computer Vision and Pattern Recognition,2005(1):243-249.
[3] Spenko M,Yu H,Dubowsky S.Robotic personal aids for mobility and monitoring for the elderly[J].IEEE Transactions on Neural Systems and Rehabilitation Engineering,2006,14(3):344-350.
[4] Want R.An introduction to RFID technology[J].IEEE Pervasive Computing,2006,5(1):25-33.
[5] 游戰(zhàn)清,劉克勝,吳翔,等.無線射頻(RFID)與條碼技術(shù)[M].北京:機(jī)械工業(yè)出版社,2007:3-15.
[6] 陳斌,郭大勇,施克仁.用于擬任機(jī)器人的嵌入式語音交互系統(tǒng)研究[J].機(jī)器人,2003,25(5):452-455.
[7] 賴于樹,李迅波,熊燕.一種低功耗多功能手持射頻讀卡儀設(shè)計(jì)[J].自動(dòng)化儀表,2006,27(12):13-15.
[8] 陳喜春.基于LD3320語音識(shí)別專用芯片實(shí)現(xiàn)的語音控制[J].電子技術(shù),2011,38(11):20-21.
[9] ICRoute INC.LD332X開發(fā)手冊(cè)[DB/OL].[2011-10-13].http://www.icroute.com/web_cn/LD332X_Dev.html.
[10]ICRoute INC.LD3320芯片簡(jiǎn)明調(diào)試步驟[DB/OL].[2011-10-13].http://www.icroute.com/web_cn/LD332X_Debug-Process.html.