車載導(dǎo)航人機(jī)語音交互系統(tǒng)的實(shí)現(xiàn)
摘要: 支持語音交互是車載導(dǎo)航系統(tǒng)的一個發(fā)展趨勢。本文討論了車載導(dǎo)航系統(tǒng)人機(jī)語音交互的實(shí)現(xiàn)方法,包括對話模式、關(guān)鍵詞識別、語音控制命令、名稱識別、語音合成。試驗(yàn)結(jié)果證明,系統(tǒng)能滿足車載導(dǎo)航人機(jī)語音交互的要求。
關(guān)鍵詞: 車載語音導(dǎo)航;人機(jī)語音交互;語音識別;語音合成
引言
語音作為自然的人機(jī)接口,可以使車載導(dǎo)航系統(tǒng)實(shí)現(xiàn)更安全、更人性化的操作。通過國內(nèi)外車載導(dǎo)航系統(tǒng)的功能對比可知,支持語音交互是車載導(dǎo)航系統(tǒng)的一個發(fā)展趨勢。另外,市場信息服務(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ù)已經(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所示。
圖1 語音導(dǎo)航系統(tǒng)的硬件框架
語音導(dǎo)航系統(tǒng)和用戶之間的人機(jī)交互接口由觸摸屏、按鈕、話筒、顯示屏和擴(kuò)音器等五個交互設(shè)備組成。該硬件框架可實(shí)現(xiàn)常規(guī)的手動交互方式,也可以實(shí)現(xiàn)語音交互方式。整個系統(tǒng)劃分為三個子系統(tǒng):導(dǎo)航子系統(tǒng)、語音識別子系統(tǒng)和語音合成子系統(tǒng),各子系統(tǒng)間通過接口進(jìn)行通信,協(xié)調(diào)完成語音導(dǎo)航任務(wù)。
車載導(dǎo)航人機(jī)語音交互系統(tǒng)對話模式設(shè)計(jì)
導(dǎo)航系統(tǒng)的狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)
整個導(dǎo)航系統(tǒng)是一個復(fù)雜的人機(jī)交互系統(tǒng),為便于語音交互對話模式的設(shè)計(jì),首先對系統(tǒng)作狀態(tài)劃分,然后從人機(jī)交互的角度描述整個系統(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é)點(diǎn)代表系統(tǒng)的各個狀態(tài),帶箭頭的連線代表從源狀態(tài)到目標(biāo)狀態(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é)點(diǎn)對話模式設(shè)計(jì)
為便于描述各狀態(tài)節(jié)點(diǎn)內(nèi)部的對話模式,將狀態(tài)節(jié)點(diǎn)按圖2所示編號為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)中的對話模型。重新定義轉(zhuǎn)換的描述方式,用四個屬性來描述狀態(tài)節(jié)點(diǎn)內(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è)計(jì)的過程。地圖瀏覽狀態(tài)由兩個互斥的子狀態(tài)組成:地圖漫游狀態(tài)和車輛引導(dǎo)狀態(tài)(參見圖2)。這兩種子狀態(tài)的人機(jī)交互大部分相同,所以將二者統(tǒng)一劃分在地圖瀏覽狀態(tài)下。對于區(qū)分對待這兩個子狀態(tài)的交互過程,可以通過附加條件來判斷當(dāng)前子狀態(tài),再作不同的處理。地圖瀏覽狀態(tài)節(jié)點(diǎn)的對話模式設(shè)計(jì)如圖3所示。
圖2 導(dǎo)航系統(tǒng)的狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)
圖3 地圖瀏覽狀態(tài)的對話模式
人機(jī)語音交互系統(tǒng)的實(shí)現(xiàn)
語音控制命令的實(shí)現(xiàn)
語音控制命令的實(shí)現(xiàn)方案如圖4所示。圖中左邊方框代表整個語音導(dǎo)航系統(tǒng)對話模式的狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)STN。根據(jù)對話模式的設(shè)計(jì),將系統(tǒng)分為地圖瀏覽狀態(tài)、功能選擇狀態(tài)、路徑規(guī)劃狀態(tài)等7個狀態(tài)節(jié)點(diǎn),每個狀態(tài)節(jié)點(diǎn)內(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)生。
圖4 語音控制命令的實(shí)現(xiàn)設(shè)計(jì)方案框圖
語音控制命令的實(shí)現(xiàn)過程分為以下四個步驟:
*語音識別引擎根據(jù)當(dāng)前命令詞表識別用戶語音,得到識別結(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)判斷是否需要更改當(dāng)前命令詞表,若需要則通過管理窗口更改當(dāng)前命令詞表。
POI名稱的識別方法
識別子系統(tǒng)除了要識別控制命令以外,還需要識別POI(興趣點(diǎn)、標(biāo)志點(diǎn))名稱。POI名稱識別與控制命令識別最大的區(qū)別在于其候選集合在規(guī)模上的差異。在本系統(tǒng)中,進(jìn)行控制命令識別時(shí)候選集合的規(guī)模最大約為30個,但進(jìn)行POI名稱識別時(shí),以所用的北京電子地圖為例,其POI點(diǎn)的個數(shù)為20,172個,此時(shí)其候選集合的規(guī)模比控制命令識別時(shí)大幾個數(shù)量級。
利用命令詞識別引擎進(jìn)行識別時(shí),必須為引擎提供一個當(dāng)前詞表,需要先將候選集合中的詞條轉(zhuǎn)化為詞表,才能真正地進(jìn)行識別。同時(shí),基于中小詞表的ASR識別引擎不能生成規(guī)模達(dá)2萬多的詞表,所以對于POI名稱識別,采取了不同于控制命令識別的方案。在對控制命令進(jìn)行識別時(shí),因?yàn)楹蜻x集合可以用一個詞表來表示,采取了在線識別的方法。而對POI名稱進(jìn)行識別時(shí),單個詞表無法容納所有的POI名稱,由此提出了利用識別引擎離線識別功能的離線遍歷識別方案。該方案利用多個詞表來描述整個候選集合。實(shí)現(xiàn)的具體流程如圖5所示。
圖5 離線遍歷識別PIO名稱的流程
該方案將候選POI集合劃分為n個子集,并生成各子集的詞表,然后以各詞表為當(dāng)前詞表進(jìn)行離線識別,并將這些局部的識別結(jié)果匯總形成一個臨時(shí)詞表,最后在這個臨時(shí)詞表中進(jìn)行識別,得出全局的最優(yōu)識別結(jié)果。該過程遍歷了各個子集,相當(dāng)于在整個候選集合中匹配出最優(yōu)識別結(jié)果,所以識別正確率得到了保證。同時(shí)由于識別次數(shù)的增加,導(dǎo)致識別時(shí)間相應(yīng)地變長。
導(dǎo)航系統(tǒng)語音提示的實(shí)現(xiàn)方案
導(dǎo)航系統(tǒng)的語音提示由專門的語音合成子系統(tǒng)完成。將語音提示的實(shí)現(xiàn)過程分為提出請求和執(zhí)行請求兩步。請求的提出方和執(zhí)行方構(gòu)成客戶/服務(wù)器(C/S)模型,其中,語音合成子系統(tǒng)充當(dāng)服務(wù)器。由于語音合成引擎通常不能同時(shí)輸出多線合成的語音,所以會遇到請求沖突的情況。發(fā)生請求沖突時(shí),最直接的處理策略是:中止正在進(jìn)行的合成轉(zhuǎn)而進(jìn)行下一個合成,或者維持正在進(jìn)行的合成而忽略新的合成請求。為此在語音合成子系統(tǒng)中設(shè)計(jì)了管理模塊用于決定發(fā)生合成沖突時(shí)的處理方式。
對于語音合成子系統(tǒng),合成請求的提出是一個隨機(jī)事件,將這類隨機(jī)事件記為Qi。每個合成請求Qi都具有優(yōu)先級的屬性,其優(yōu)先級的高低取決于請求的提示信息的重要程度,見表1。管理模塊的處理流程見圖6。如果下一請求Qi+1的優(yōu)先級高于當(dāng)前請求Qi,則優(yōu)先合成Qi+1。
圖6 合成子系統(tǒng)優(yōu)先級管理程序流程
車載語音導(dǎo)航系統(tǒng)的試驗(yàn)驗(yàn)證
圖7為本文的車載語音導(dǎo)航系統(tǒng)的實(shí)物照片。對本系統(tǒng)進(jìn)行了語音導(dǎo)航的驗(yàn)證試驗(yàn),通過語音交互完成了表2中所示的車載導(dǎo)航功能。試驗(yàn)表明,系統(tǒng)的狀態(tài)能夠完全正確地按照設(shè)計(jì)的對話模式進(jìn)行轉(zhuǎn)換,并能正確完成各種導(dǎo)航功能的人機(jī)對話過程;同時(shí),系統(tǒng)的語音提示也能正確工作。
圖7 車載語音導(dǎo)航系統(tǒng)
另外測試了系統(tǒng)正確響應(yīng)語音控制命令的能力。測試中,用清晰平穩(wěn)的語音,對地圖瀏覽狀態(tài)所有語音控制命令的49個識別詞進(jìn)行了測試,共測試49
評論