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