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