楊鵬,楊會,潘杰,陸思奇,劉錦燁
(宿遷學院 信息工程學院,江蘇宿遷,223800)
在浮躁的社會環境下,人們越來越喜歡前往博物館品味歷史文化,感受歷史積淀。可是博物館講解人員接受教育程度、職業技能水平、道德素質參差不齊,而現有的藍牙耳機定點講解過于死板,有著信號干擾、游客互動性差等缺點,不能滿足游客的用戶體驗[1]。所以本文設計一款可為游客提供引導講解的機器人語音交互系統,通過人工智能技術的引入促使博物館轉入新的發展方向,更加智慧化、智能化[2]。
文獻[3]利用科大訊飛開放云平臺,搭建一種基于云平臺的智能語音交互機器人系統,使機器人能夠根據不同的環境與任務需求實現雙向互動交流[3]。文獻[4]就介紹了一種運用于煤礦的機器人語音交互系統,該系統可以提高煤礦機器人的人機交互性能,使現場作業人員與機器人的交互更加便利,也可以與機器人管理系統配合,提高機器人的協調作業能力[4]。文獻[5]利用語音識別技術中的動態時間規整算法,針對系統中的指定的詞匯進行測試,實驗結果表明DTW 算法可以很好地實現系統中指定的詞匯識別,具有較好的魯棒性和抗噪性能,識別率高[5]。在上述研究的基礎上,我們針對博物館、藝術館等室內場景,設計了一款識別能力較優的語音交互系統。

圖1 語音交互系統總體框架圖
智慧博物館下導游機器人語音交互系統搭載在Jestnano-NX 上,主要由以下三個層次構成:最底層是物理層,系統運行環境為Ubantu18.04,對應的機器人操作系統ROS 版本為Melodic;其次是中間層,該層主要是科大訊飛SDK 以及ROS操作系統;最上層為應用層,主要是機器人進行語音交互,分為語音識別、語義理解、對話生成、文本轉語音四個模塊。
導游機器人所用語音交互系統主要模塊包含語音采集、語音喚醒、語音檢測、語音識別、本地語音庫的檢索、語音交互、語音合成、輸出設備播放從而構成滿足功能需要的語音交互系統。
一次完整的語音交互,包含:語音識別(ASR)→語義理解(NLU)→對話生成(NLG)→文本轉語音(TTS)的流程。

圖2 語音交互流程圖
語音識別(ASR)用于將聲學語音進行分析,并得到對應的文字或拼音信息。語音識別系統一般分為:訓練和解碼兩階段。訓練即通過大 量標注的語音數據訓練數學模型,通過大量標注的文本數據訓練語言模型。解碼則是通過聲學和語言模型將語音數據識別成文字。機器人通過訓練與解碼實現對語音指令的識別。
語義理解(NLU)為了讓機器人能夠理解到它所識別的,我們對機器構造語義網絡表達對世界的認知,用有序的詞語映射到語義網絡,并且特定詞語和語義網絡中特定元素對應。使其能夠理解所說的話。
對話生成(NLG)即機器人根據理解所得到的結構化的數據、文本等,生成人類可以理解的自然語言形式的文本。實現文本到文本(text-to-text)等。
文字轉語音(TTS)就是將得到的信息從文本轉換成語音,讓機器說話。一般主要使用兩種做法:一種是拼接法,一種是參數法。我們使用的是參數法,即使用統計模型來產生語音參數并轉化成波形。
(1)動態時間規整識別算法
假設參考模板為{R1,R2,…Rm…,RM}共有M 幀;測試語音為{T1,2T,…Tn…,TN}共有N 幀。由于M ≠N,則動態時間規整通過尋找一個時間規整函數m=w(n),使得測試語音的時間軸n 通過非線性變換函數w 映射到參考模板的時間軸m,并使得該函數滿足一下關系式:
在這里,[TN,]是第n 幀測試語音特征矢量和第m 幀參考模板特征矢量之間的距離。D 是處于最優時間規整情況下兩矢量的累積距離。由于DTW 一直在計算兩矢量的距離并尋找最優的匹配路徑,所以得到的是兩矢量匹配時累積距離最小所對應的規整函數,這就保證了它們之間存在的最大聲學相似性。基本的DTW 算法對端點檢測非常敏感,它要求進行比較的兩個模板起點和終點分別對應,并且對端點檢測的精度要求很高,在背景噪聲較大或者語音中存在摩擦音時,端點檢測往往不會非常精準,端點檢測結果可能會對動態規整造成不可預知的誤差。此時,必須將邊界約束條件放寬。通常的做法是放寬區域中邊界約束條件不再要求起點和終點嚴格對齊,這樣就解決了由于端點檢測算法的缺陷帶來的參考模板和測試模板的起點和終點不能分別對齊的問題。實際中,起點和終點分別在橫軸和縱軸兩個方向上各放寬2~3 幀,即起點(1,1)、(1,2)、(1,3)、(2,1)、(3,1)處,終點類推,就可以在不影響識別結果的前提下解決端點檢測缺陷問題。
(2)基于TDOA 的聲源定位算法
TDOA 定位算法是目前應用與研究最廣泛的聲源定位算法,該算法主要原理是利用接收器接收到的聲音信號,求取聲音信號到達各個接收器的時間延遲,時間延遲即對應三維空間中各個接收器與聲源之間的聲程差,再利用聲程差與定位方程解算方法求解聲源位置坐標。基于TDOA 的定位算法的主要流程可以分為兩個步驟:
步驟一:時延估計,即從導游機器人的聲音信號中得到聲源與接收器之間的時間延遲的過程。
步驟二:位置解算,即得到時間延遲后,利用接收器坐標求取導游機器人聲源坐標的過程。位置解算中的主流算法包括迭代法以及球面插值法等。
TDOA 的定位算法的所需的計算復雜度大為減小,因此很容易滿足算法的實時性,但是也存在一些不足之處。第一步的時延估計算法對于噪聲與混響比較敏感,因此主要適用于低噪低混響環境。引入PHAT、SCOT、ROTH 等許多加權函數來弱化實際環境中的噪聲與混響帶來的影響,銳化互相關峰值。第二步中的位置解算方法中,牛頓迭代法最為基本,但是在實際使用中經常會遇到迭代結果無法收斂的情景,并且迭代情況受迭代初始值影響較大,為此使用封閉解來避免定位結果發散等算法被提出。封閉解的推導也成為位置解算方法中的常用改進方法。
我們的語音硬件系統采用的是科大訊飛的麥克風陣列,麥克風陣列是由一定數目的聲學傳感器組成,對聲場的空間特性進行采樣并處理的系統。其主要作用有聲源定位,抑制背景噪聲、干擾、混響、回聲,信號提取與分離。
麥克風陣列采用平面式分布結構,包含6 個麥克風,可實現360 度等效拾音,喚醒分辨率為1 度。可以使用麥克風陣列獲取原始和降噪音頻,獲取喚醒角度,主麥編號。圖3 為麥克風陣列圖。

圖3 麥克風陣列硬件圖
導游機器人的語音交互系統主要是語音交互底層節點與麥克風運行節點、導航節點、雷達避障節點等相互作用。設計思路主要是進行節點狀態的識別與反饋,還要確保節點的開啟/關閉,不與基本節點進行沖突,如圖4 所示。

圖4 底層運行節點構成
根據以上設計思路,進行程序結構設計,如圖5 所示。

圖5 程序設計結構
成功開啟語音交互節點的時候,就表明我們已經建立好了語音交互的入口,可以進行無接觸語音控制小車探索功能,再配合自啟動語音交互,可以實現無電腦等輔助設備的情況下,進行小車控制。小車識別到開啟指令的時候,并開啟相關功能然后把標志位flag 置1,標志flag 位置1之后會進行成功打開的語音播報;當接收到關閉的指令后,殺死相關的節點然后進行語音播報。每當小車識別到小車成功開啟、關閉節點的時候,需要進行語音反饋進行狀態的識別,同時添加了音頻庫,可以加強游客對語音交互功能的體驗。
通過語音驅使機器人的動作是導游機器人工作必不可少的一環,圖6 為本文設計的基于語音交互系統的導游機器人的錄音識別動作圖。

圖6 錄音識別動作流程圖
圖6 中的SDK 源文件主要有三個作用,第一方面,它有麥克風陣列的回調函數,可以獲取麥克風陣列錄制的音頻流,喚醒的方向以及它的主麥編號;第二個方面,可以調用科大訊飛的離線識別引擎,把音頻信號送入到識別引擎里面;第三個方面,SDK 節點里面有很多服務類的函數,錄音調用節點會請求SDK 的錄音識別服務,去請求SDK 的錄音,SDK 接收到錄音請求之后,發送給硬件科大訊飛去進行錄音,錄音完,會把音頻流數據傳輸給SDK,然后SDK就會把收到的音頻文件送入到科大訊飛的識別引擎,識別引擎識別以后把文本類的識別結果再返回到SDK 節點中,再把識別結果作為服務類型的請求結果返回到錄音調用節點,這是一個完整的錄音識別的動作調用。
在麥克風陣列喚醒狀態下,錄音調用節點會不斷的去請求SDK 的錄音,得到識別結果后,通過話題的方式發布出去,而命令控制器節點,訂閱了識別結果的話題后,根據話題的信息和我們預設好的指令去匹配,判定動作指令,再將動作指令發送到我們的底盤運動控制器,由底盤運動控制器去控制小車的底盤運動,同時底盤運動控制器在收到命令控制器發的速度指令之后,根據小車目前的位置狀態,根據雷達所反饋的信息去判斷小車適不適合執行這個動作,倘若前方有障礙物的情況下,就會屏蔽這個信息,產生雷達避障的效果。
在實驗室環境下,對導游機器人搭載的語音交互功能進行測試,通過麥克風陣列對語音進行采集,回復的語音內容通過語音播放器進行播放,挑選五句交互語句,每句測試50 次,分別針對博物館信息,作品講解以及機器人介紹信息,將語音識別置信度設置為47,發現平均識別率能達到96%以上,滿足博物館內游客對于語音交互功能的使用,識別結果統計如表1 所示。

表1 語音交互識別結果
本文主要介紹了針對博物館、藝術館,基于語音交互系統的導游機器人的設計,并經過測試與驗證,發現該設計方案的語音交互系統識別率高,有很強的可行性。語音系統與機器人的結合證明了機器人應用于導游行業的可行性,通過該語音系統能夠給游客帶來優質的旅行體驗,給導游行業帶來更好的發展。