劉祥臻 王紅梅* 徐明澤 戚成功 張鑫旺 李平武
(東北林業(yè)大學交通學院,黑龍江 哈爾濱150040)
隨著人工智能汽車的研發(fā)和車聯(lián)網(wǎng)概念的逐步形成,人機交互的時代已經(jīng)到來。目前,國外一些公司對車載人機交互尤其是車載語音控制的研究走在世界的前列,但他們提供的車載語音控制產(chǎn)品僅面向安裝在高端汽車市場,難以普及到大眾,而且在我國傳統(tǒng)的汽車消費體系中,中低端市場才是打開汽車消費市場的主力軍。
因此,研發(fā)設計一款可應用于傳統(tǒng)家用車的基于安卓平臺的車載語音控制智能音樂播放器,通過喚醒語音助手后由語音指令實時控制車載終端智能音樂播放器,大大提高了車載娛樂系統(tǒng)的安全性、娛樂性與便捷性,具有十分重要的意義。
語音交互過程大致可分為三部分:首先是語音喚醒,在語音喚醒前需要提示打開系統(tǒng)麥克風的使用權限,通過說“輸入指令”或者點擊屏幕上的喚醒按鈕來初始化語音服務,并啟動語音助手;然后進行語音識別,如果識別正確,則在語音播報相應結果后執(zhí)行反饋,如果識別錯誤,則播報“不好意思,我還聽不懂以下指令+識別結果,請聯(lián)系開發(fā)人員添加指令”,提示用戶進行修正輸入;最后將系統(tǒng)的文本信息轉(zhuǎn)換成標準流暢的語言播報,即語音合成(Text to Speech),下文簡稱TTS,以自然流暢接近人聲的語音進行語音播報。
在該系統(tǒng)實現(xiàn)的整個過程中,要保證系統(tǒng)在不同的噪音環(huán)境下對語音指令做出準確響應,并且有較高的交互成功率。
軟件通過View的顯示與隱藏起到頁面切換的效果,各個頁面具有各自的根LinearLayout,由唯一ID 標識. view_list 為列表界面,view_play 為播放器主界面,view_other 為相關的擴展功能界面。
圖1 系統(tǒng)UI 界面設計簡圖
軟件開啟時讀取相應文件夾下的列表文件(csv 文件),并解析出音樂文件,專輯圖片文件,歌詞文件的位置,讀進列表中。
列表的播放/暫停與播放界面的“播放/暫?!卑粹o功能完全一樣,列表的喜歡與播放界面的“喜歡”按鈕功能完全一樣,列表欄的排序按鈕可按照預設的排序規(guī)則對列表進行排序,讀入按鈕可載入新的列表,并將當前列表備份。
播放界面可顯示專輯圖片、播放進度、歌詞以及實時幅度譜(由FFT 得到)。
該軟件通過百度AI 平臺的語音轉(zhuǎn)文字(短語音識別)與文字轉(zhuǎn)語音(語音合成)的API,實現(xiàn)程序的語音交互。
語音識別由自定義類iSpeechRecognition 完成,類設置喚醒詞監(jiān)聽管理器WP (WaitListener) 與語音指令監(jiān)聽管理器ASR(SoundListener)。通過iSpeechRecognition()進行類初始化后,start()啟動語音輸入監(jiān)聽,為節(jié)省系統(tǒng)資源與網(wǎng)絡資源,完成后WP 處于激活狀態(tài)(等待監(jiān)聽詞輸入),ASR 則處于休眠狀態(tài)。當用戶點按語音控制鍵或者使用喚醒詞喚醒后ASR 激活,此時可以使用相應語音指令進行控制。當WP 激活,ASR 休眠時,說話時只有WP 的onEvent()事件響應,此時若說出正確的喚醒詞(“輸入指令”)且類控制符isWakeUp 為false 時則將音樂播放器音量調(diào)整為15% (防止音樂播放聲音干擾ASR 識別),并進行語音提示,提示完成后激活ASR,點按語音輸入鍵也有類似效果。當ASR激活時isWakeUp 為true,WP 不響應喚醒詞,此時說話由ASR的onEvent()響應,短語音識別完成后獲得識別結果keyword 調(diào)用OnFinishListen(String keyword)對識別結果進行相應的判斷與識別,并執(zhí)行相關操作。ASR 進行語音識別時需要網(wǎng)絡支持,當網(wǎng)絡出錯時會無法識別出結果從而無法進行正確的反應,此時需要手動關閉語音,并進行網(wǎng)絡設置才可用。當一段時間無語音輸入時系統(tǒng)調(diào)用超時代碼,語音提示后休眠ASR,設置isWakeUp 為false,將音量調(diào)整為100%,此時WP 重新響應喚醒詞。點按語音輸入鍵或說出關閉指令也有類似效果。語音播報由自定義類iTextToSpeech 完成,類設置SpeechSynthesizer ssr。
iTextToSpeech()初始化完成后處于待機狀態(tài),當需要使用的時候調(diào)用ssr.speak(String)即可播報出String 的內(nèi)容。播報過程中為防止播報聲音由ASR 收錄產(chǎn)生套娃現(xiàn)象,當isWakeUp 為true 時ssr 設置的監(jiān)聽器 (SpeechSynthesizerListener) 調(diào)用onSynthesizeStart(String s)時休眠ASR,調(diào)用onSpeechFinish(String s)時重新激活ASR,因為ssr 進行TTS 需要網(wǎng)絡支持,所以當網(wǎng)絡出錯時會調(diào)用onError (String s, SpeechError speechError),無法重新激活ASR 從而產(chǎn)生錯誤,此時需要手動關閉語音,并進行網(wǎng)絡設置才可用。
圖2 系統(tǒng)實現(xiàn)流程圖
本系統(tǒng)按照軟件工程開發(fā)理論,進行了系統(tǒng)整體架構設計和實際實施測試與開發(fā),發(fā)現(xiàn)其滿足需求分析與要求,該軟件充分挖掘了用戶的需求并滿足用戶的使用體驗,且具有安全率高、運行穩(wěn)定、故障率低等優(yōu)點,但在防干擾和語音降噪方面還有所不足,識別率和執(zhí)行率還有待于加強。