車載導(dǎo)航人機語音交互系統(tǒng)的設(shè)計實現(xiàn)
語音作為自然的人機接口,可以使車載導(dǎo)航系統(tǒng)實現(xiàn)更安全、更人性化的操作。通過國內(nèi)外車載導(dǎo)航系統(tǒng)的功能對比可知,支持語音交互是車載導(dǎo)航系統(tǒng)的一個發(fā)展趨勢。另外,市場信息服務(wù)公司J.D Power and Associates的調(diào)研數(shù)據(jù)也表明,56%的消費者更傾向于選擇聲控的導(dǎo)航系統(tǒng)。因此,開發(fā)車載語音導(dǎo)航系統(tǒng)是很有意義的。目前,國內(nèi)已經(jīng)具備開發(fā)車載語音導(dǎo)航系統(tǒng)的技術(shù)基礎(chǔ),特別是文語轉(zhuǎn)換TTS技術(shù)和基于中小詞匯量的語音命令識別技術(shù)已經(jīng)達到比較實用的程度。本文在課題組的車載導(dǎo)航系統(tǒng)和國內(nèi)兩款語音引擎的基礎(chǔ)上,開發(fā)了一套支持語音交互的車載導(dǎo)航系統(tǒng)。
車載語音導(dǎo)航系統(tǒng)結(jié)構(gòu)
車載語音導(dǎo)航系統(tǒng)從功能上分為車載導(dǎo)航和導(dǎo)航語音交互兩方面。其中車載導(dǎo)航功能包括GPS衛(wèi)星導(dǎo)航定位、電子地圖瀏覽查詢、智能的路徑規(guī)劃、車輛地理位置和速度等導(dǎo)航信息的實時顯示;導(dǎo)航語音交互功能分為語音操作和語音提示兩部分。在系統(tǒng)的設(shè)計中,根據(jù)人機交互的需求,設(shè)計語音導(dǎo)航系統(tǒng)的硬件框架如圖 1所示。
語音導(dǎo)航系統(tǒng)和用戶之間的人機交互接口由觸摸屏、按鈕、話筒、顯示屏和擴音器等五個交互設(shè)備組成。該硬件框架可實現(xiàn)常規(guī)的手動交互方式,也可以實現(xiàn)語音交互方式。整個系統(tǒng)劃分為三個子系統(tǒng):導(dǎo)航子系統(tǒng)、語音識別子系統(tǒng)和語音合成子系統(tǒng),各子系統(tǒng)間通過接口進行通信,協(xié)調(diào)完成語音導(dǎo)航任務(wù)。
車載導(dǎo)航人機語音交互系統(tǒng)對話模式設(shè)計
導(dǎo)航系統(tǒng)的狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)
整個導(dǎo)航系統(tǒng)是一個復(fù)雜的人機交互系統(tǒng),為便于語音交互對話模式的設(shè)計,首先對系統(tǒng)作狀態(tài)劃分,然后從人機交互的角度描述整個系統(tǒng)的狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)。將系統(tǒng)劃分為地圖瀏覽、功能選擇等六個功能狀態(tài)和一個退出狀態(tài)。圖2描述了這些狀態(tài)之間的狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)。
圖中的節(jié)點代表系統(tǒng)的各個狀態(tài),帶箭頭的連線代表從源狀態(tài)到目標狀態(tài)的轉(zhuǎn)換。狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)接收用戶的操作作為驅(qū)動事件,完成從一個狀態(tài)到另一狀態(tài)的轉(zhuǎn)換,網(wǎng)絡(luò)中的一條路徑便代表著特定的交互過程。
導(dǎo)航系統(tǒng)各狀態(tài)節(jié)點對話模式設(shè)計
為便于描述各狀態(tài)節(jié)點內(nèi)部的對話模式,將狀態(tài)節(jié)點按圖2所示編號為S1~S7,用Tmn表示狀態(tài)節(jié)點Sm到狀態(tài)節(jié)點Sn的轉(zhuǎn)換。另外,借鑒狀態(tài)流 stateflow模型的表示方法,提出用于描述車載導(dǎo)航人機語音交互系統(tǒng)中的對話模型。重新定義轉(zhuǎn)換的描述方式,用四個屬性來描述狀態(tài)節(jié)點內(nèi)的一次轉(zhuǎn)換:
T={P1,P2,P3,P4} (1)
其中,t用于表示一個轉(zhuǎn)換,P1~P4為轉(zhuǎn)換的屬性:P1為語音事件;P2為語音輸出;P3為附加條件;P4為轉(zhuǎn)換動作。
這樣,一個轉(zhuǎn)換t便描述了一次對話中用戶的語音輸入、系統(tǒng)的語音輸出、對話受到的限制條件以及系統(tǒng)執(zhí)行的動作。
以地圖瀏覽狀態(tài)為例,說明對話模式設(shè)計的過程。地圖瀏覽狀態(tài)由兩個互斥的子狀態(tài)組成:地圖漫游狀態(tài)和車輛引導(dǎo)狀態(tài)(參見圖2)。這兩種子狀態(tài)的人機交互大部分相同,所以將二者統(tǒng)一劃分在地圖瀏覽狀態(tài)下。對于區(qū)分對待這兩個子狀態(tài)的交互過程,可以通過附加條件來判斷當前子狀態(tài),再作不同的處理。地圖瀏覽狀態(tài)節(jié)點的對話模式設(shè)計如圖3所示。
人機語音交互系統(tǒng)的實現(xiàn)
語音控制命令的實現(xiàn)
語音控制命令的實現(xiàn)方案如圖4所示。圖中左邊方框代表整個語音導(dǎo)航系統(tǒng)對話模式的狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)STN。根據(jù)對話模式的設(shè)計,將系統(tǒng)分為地圖瀏覽狀態(tài)、功能選擇狀態(tài)、路徑規(guī)劃狀態(tài)等7個狀態(tài)節(jié)點,每個狀態(tài)節(jié)點內(nèi)部均存在各自的語音對話模式,對話模式由若干內(nèi)部轉(zhuǎn)換組成。因此,整個語音導(dǎo)航系統(tǒng)是一個兩層結(jié)構(gòu)的狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò),其內(nèi)部轉(zhuǎn)換由語音事件驅(qū)動。語音事件由導(dǎo)航子系統(tǒng)的接口模塊根據(jù)語音識別子系統(tǒng)發(fā)送的用戶意圖而產(chǎn)生。
語音控制命令的實現(xiàn)過程分為以下四個步驟:
語音識別引擎根據(jù)當前命令詞表識別用戶語音,得到識別結(jié)果。
管理窗口獲取到識別結(jié)果,通過查詢“識別詞-控制命令”映射,得到識別結(jié)果對應(yīng)的控制命令,并將控制命令作為用戶意圖發(fā)送至導(dǎo)航子系統(tǒng)的接口模塊。
接口模塊響應(yīng)用戶意圖,通過語音事件改變語音導(dǎo)航系統(tǒng)的狀態(tài)。
接口模塊根據(jù)語音導(dǎo)航系統(tǒng)的狀態(tài)判斷是否需要更改當前命令詞表,若需要則通過管理窗口更改當前命令詞表。
POI名稱的識別方法
識別子系統(tǒng)除了要識別控制命令以外,還需要識別POI(興趣點、標志點)名稱。POI名稱識別與控制命令識別最大的區(qū)別在于其候選集合在規(guī)模上的差異。在本系統(tǒng)中,進行控制命令識別時候選集合的規(guī)模最大約為30個,但進行POI名稱識別時,以所用的北京電子地圖為例,其POI點的個數(shù)為20,172 個,此時其候選集合的規(guī)模比控制命令識別時大幾個數(shù)量級。
利用命令詞識別引擎進行識別時,必須為引擎提供一個當前詞表,需要先將候選集合中的詞條轉(zhuǎn)化為詞表,才能真正地進行識別 。同時,基于中小詞表的ASR 識別引擎不能生成規(guī)模達2萬多的詞表,所以對于POI名稱識別,采取了不同于控制命令識別的方案。在對控制命令進行識別時,因為候選集合可以用一個詞表來表示,采取了在線識別的方法。而對POI名稱進行識別時,單個詞表無法容納所有的POI名稱,由此提出了利用識別引擎離線識別功能的離線遍歷識別方案。該方案利用多個詞表來描述整個候選集合。實現(xiàn)的具體流程如圖5所示。
該方案將候選POI集合劃分為n個子集,并生成各子集的詞表,然后以各詞表為當前詞表進行離線識別,并將這些局部的識別結(jié)果匯總形成一個臨時詞表,最后在這個臨時詞表中進行識別,得出全局的最優(yōu)識別結(jié)果。該過程遍歷了各個子集,相當于在整個候選集合中匹配出最優(yōu)識別結(jié)果,所以識別正確率得到了保證。同時由于識別次數(shù)的增加,導(dǎo)致識別時間相應(yīng)地變長。
導(dǎo)航系統(tǒng)語音提示的實現(xiàn)方案
導(dǎo)航系統(tǒng)的語音提示由專門的語音合成子系統(tǒng)完成。將語音提示的實現(xiàn)過程分為提出請求和執(zhí)行請求兩步。請求的提出方和執(zhí)行方構(gòu)成客戶/服務(wù)器(C/S) 模型,其中,語音合成子系統(tǒng)充當服務(wù)器。由于語音合成引擎通常不能同時輸出多線合成的語音,所以會遇到請求沖突的情況。發(fā)生請求沖突時,最直接的處理策略是:中止正在進行的合成轉(zhuǎn)而進行下一個合成,或者維持正在進行的合成而忽略新的合成請求。為此在語音合成子系統(tǒng)中設(shè)計了管理模塊用于決定發(fā)生合成沖突時的處理方式。
對于語音合成子系統(tǒng),合成請求的提出是一個隨機事件,將這類隨機事件記為Qi。每個合成請求Qi都具有優(yōu)先級的屬性,其優(yōu)先級的高低取決于請求的提示信息的重要程度,見表1。管理模塊的處理流程見圖6。如果下一請求Qi+1的優(yōu)先級高于當前請求Qi,則優(yōu)先合成Qi+1。
車載語音導(dǎo)航系統(tǒng)的試驗驗證
圖7為本文的車載語音導(dǎo)航系統(tǒng)的實物照片。對本系統(tǒng)進行了語音導(dǎo)航的驗證試驗,通過語音交互完成了表2中所示的車載導(dǎo)航功能。試驗表明,系統(tǒng)的狀態(tài)能夠完全正確地按照設(shè)計的對話模式進行轉(zhuǎn)換,并能正確完成各種導(dǎo)航功能的人機對話過程;同時,系統(tǒng)的語音提示也能正確工作。
另外測試了系統(tǒng)正確響應(yīng)語音控制命令的能力。測試中,用清晰平穩(wěn)的語音,對地圖瀏覽狀態(tài)所有語音控制命令的49個識別詞進行了測試,共測試49×3=147次,成功132次,失敗15次,成功率為89.8%??梢姡到y(tǒng)語音控制命令的有效性較好。
在海量POI名稱識別的試驗中,對字數(shù)為2至10的POI名稱進行了測試。對于每一長度的POI名稱,分別取10個進行測試。其中每個POI名稱最多做兩次測試,當且僅當?shù)谝淮螠y試失敗才繼續(xù)第二次測試。試驗結(jié)果如表3所示。
可見,離線遍歷識別方案的一次識別正確率為86.7%,二次識別正確率為93.3%。其正確識別的平均耗時為6.1s至10.4s之間,按POI名稱的字數(shù)統(tǒng)計分布計算加權(quán)的平均耗時為8.3s。以上數(shù)據(jù)說明,該方案能夠利用小詞匯量的關(guān)鍵詞識別引擎實現(xiàn)大詞匯量POI名稱的識別,并且獲得了滿意的識別正確率,但是耗時較長。
結(jié)語
本文主要完成了車載導(dǎo)航人機語音交互系統(tǒng)的設(shè)計和實現(xiàn),并在實驗室環(huán)境中對系統(tǒng)進行了實驗驗證。
證明利用合成的語音,可以實現(xiàn)豐富靈活的語音提示,使用戶可以在不分散過多精力的前提下使用導(dǎo)航系統(tǒng)。進一步的工作是提高識別正確率和降低正確識別的平均耗時。
參考文獻:
1. 丁捷. 車載GPS自主導(dǎo)航方法的研究:[碩士學(xué)位論文] . 北京:清華大學(xué)汽車工程系,2003
2. 孟祥旭,李學(xué)慶. 人機交互技術(shù)—原理與應(yīng)用. 北京:清華大學(xué)出版社,2004. 131~136
3. 劉加,劉潤生. 語音識別技術(shù). 北京:清華大學(xué)電子工程系,2001
評論