楊鵬,楊會(huì),潘杰,陸思奇,劉錦燁
(宿遷學(xué)院 信息工程學(xué)院,江蘇宿遷,223800)
在浮躁的社會(huì)環(huán)境下,人們?cè)絹碓较矚g前往博物館品味歷史文化,感受歷史積淀??墒遣┪镳^講解人員接受教育程度、職業(yè)技能水平、道德素質(zhì)參差不齊,而現(xiàn)有的藍(lán)牙耳機(jī)定點(diǎn)講解過于死板,有著信號(hào)干擾、游客互動(dòng)性差等缺點(diǎn),不能滿足游客的用戶體驗(yàn)[1]。所以本文設(shè)計(jì)一款可為游客提供引導(dǎo)講解的機(jī)器人語音交互系統(tǒng),通過人工智能技術(shù)的引入促使博物館轉(zhuǎn)入新的發(fā)展方向,更加智慧化、智能化[2]。
文獻(xiàn)[3]利用科大訊飛開放云平臺(tái),搭建一種基于云平臺(tái)的智能語音交互機(jī)器人系統(tǒng),使機(jī)器人能夠根據(jù)不同的環(huán)境與任務(wù)需求實(shí)現(xiàn)雙向互動(dòng)交流[3]。文獻(xiàn)[4]就介紹了一種運(yùn)用于煤礦的機(jī)器人語音交互系統(tǒng),該系統(tǒng)可以提高煤礦機(jī)器人的人機(jī)交互性能,使現(xiàn)場(chǎng)作業(yè)人員與機(jī)器人的交互更加便利,也可以與機(jī)器人管理系統(tǒng)配合,提高機(jī)器人的協(xié)調(diào)作業(yè)能力[4]。文獻(xiàn)[5]利用語音識(shí)別技術(shù)中的動(dòng)態(tài)時(shí)間規(guī)整算法,針對(duì)系統(tǒng)中的指定的詞匯進(jìn)行測(cè)試,實(shí)驗(yàn)結(jié)果表明DTW 算法可以很好地實(shí)現(xiàn)系統(tǒng)中指定的詞匯識(shí)別,具有較好的魯棒性和抗噪性能,識(shí)別率高[5]。在上述研究的基礎(chǔ)上,我們針對(duì)博物館、藝術(shù)館等室內(nèi)場(chǎng)景,設(shè)計(jì)了一款識(shí)別能力較優(yōu)的語音交互系統(tǒng)。
圖1 語音交互系統(tǒng)總體框架圖
智慧博物館下導(dǎo)游機(jī)器人語音交互系統(tǒng)搭載在Jestnano-NX 上,主要由以下三個(gè)層次構(gòu)成:最底層是物理層,系統(tǒng)運(yùn)行環(huán)境為Ubantu18.04,對(duì)應(yīng)的機(jī)器人操作系統(tǒng)ROS 版本為Melodic;其次是中間層,該層主要是科大訊飛SDK 以及ROS操作系統(tǒng);最上層為應(yīng)用層,主要是機(jī)器人進(jìn)行語音交互,分為語音識(shí)別、語義理解、對(duì)話生成、文本轉(zhuǎn)語音四個(gè)模塊。
導(dǎo)游機(jī)器人所用語音交互系統(tǒng)主要模塊包含語音采集、語音喚醒、語音檢測(cè)、語音識(shí)別、本地語音庫的檢索、語音交互、語音合成、輸出設(shè)備播放從而構(gòu)成滿足功能需要的語音交互系統(tǒng)。
一次完整的語音交互,包含:語音識(shí)別(ASR)→語義理解(NLU)→對(duì)話生成(NLG)→文本轉(zhuǎn)語音(TTS)的流程。
圖2 語音交互流程圖
語音識(shí)別(ASR)用于將聲學(xué)語音進(jìn)行分析,并得到對(duì)應(yīng)的文字或拼音信息。語音識(shí)別系統(tǒng)一般分為:訓(xùn)練和解碼兩階段。訓(xùn)練即通過大 量標(biāo)注的語音數(shù)據(jù)訓(xùn)練數(shù)學(xué)模型,通過大量標(biāo)注的文本數(shù)據(jù)訓(xùn)練語言模型。解碼則是通過聲學(xué)和語言模型將語音數(shù)據(jù)識(shí)別成文字。機(jī)器人通過訓(xùn)練與解碼實(shí)現(xiàn)對(duì)語音指令的識(shí)別。
語義理解(NLU)為了讓機(jī)器人能夠理解到它所識(shí)別的,我們對(duì)機(jī)器構(gòu)造語義網(wǎng)絡(luò)表達(dá)對(duì)世界的認(rèn)知,用有序的詞語映射到語義網(wǎng)絡(luò),并且特定詞語和語義網(wǎng)絡(luò)中特定元素對(duì)應(yīng)。使其能夠理解所說的話。
對(duì)話生成(NLG)即機(jī)器人根據(jù)理解所得到的結(jié)構(gòu)化的數(shù)據(jù)、文本等,生成人類可以理解的自然語言形式的文本。實(shí)現(xiàn)文本到文本(text-to-text)等。
文字轉(zhuǎn)語音(TTS)就是將得到的信息從文本轉(zhuǎn)換成語音,讓機(jī)器說話。一般主要使用兩種做法:一種是拼接法,一種是參數(shù)法。我們使用的是參數(shù)法,即使用統(tǒng)計(jì)模型來產(chǎn)生語音參數(shù)并轉(zhuǎn)化成波形。
(1)動(dòng)態(tài)時(shí)間規(guī)整識(shí)別算法
假設(shè)參考模板為{R1,R2,…Rm…,RM}共有M 幀;測(cè)試語音為{T1,2T,…Tn…,TN}共有N 幀。由于M ≠N,則動(dòng)態(tài)時(shí)間規(guī)整通過尋找一個(gè)時(shí)間規(guī)整函數(shù)m=w(n),使得測(cè)試語音的時(shí)間軸n 通過非線性變換函數(shù)w 映射到參考模板的時(shí)間軸m,并使得該函數(shù)滿足一下關(guān)系式:
在這里,[TN,]是第n 幀測(cè)試語音特征矢量和第m 幀參考模板特征矢量之間的距離。D 是處于最優(yōu)時(shí)間規(guī)整情況下兩矢量的累積距離。由于DTW 一直在計(jì)算兩矢量的距離并尋找最優(yōu)的匹配路徑,所以得到的是兩矢量匹配時(shí)累積距離最小所對(duì)應(yīng)的規(guī)整函數(shù),這就保證了它們之間存在的最大聲學(xué)相似性?;镜腄TW 算法對(duì)端點(diǎn)檢測(cè)非常敏感,它要求進(jìn)行比較的兩個(gè)模板起點(diǎn)和終點(diǎn)分別對(duì)應(yīng),并且對(duì)端點(diǎn)檢測(cè)的精度要求很高,在背景噪聲較大或者語音中存在摩擦音時(shí),端點(diǎn)檢測(cè)往往不會(huì)非常精準(zhǔn),端點(diǎn)檢測(cè)結(jié)果可能會(huì)對(duì)動(dòng)態(tài)規(guī)整造成不可預(yù)知的誤差。此時(shí),必須將邊界約束條件放寬。通常的做法是放寬區(qū)域中邊界約束條件不再要求起點(diǎn)和終點(diǎn)嚴(yán)格對(duì)齊,這樣就解決了由于端點(diǎn)檢測(cè)算法的缺陷帶來的參考模板和測(cè)試模板的起點(diǎn)和終點(diǎn)不能分別對(duì)齊的問題。實(shí)際中,起點(diǎn)和終點(diǎn)分別在橫軸和縱軸兩個(gè)方向上各放寬2~3 幀,即起點(diǎn)(1,1)、(1,2)、(1,3)、(2,1)、(3,1)處,終點(diǎn)類推,就可以在不影響識(shí)別結(jié)果的前提下解決端點(diǎn)檢測(cè)缺陷問題。
(2)基于TDOA 的聲源定位算法
TDOA 定位算法是目前應(yīng)用與研究最廣泛的聲源定位算法,該算法主要原理是利用接收器接收到的聲音信號(hào),求取聲音信號(hào)到達(dá)各個(gè)接收器的時(shí)間延遲,時(shí)間延遲即對(duì)應(yīng)三維空間中各個(gè)接收器與聲源之間的聲程差,再利用聲程差與定位方程解算方法求解聲源位置坐標(biāo)?;赥DOA 的定位算法的主要流程可以分為兩個(gè)步驟:
步驟一:時(shí)延估計(jì),即從導(dǎo)游機(jī)器人的聲音信號(hào)中得到聲源與接收器之間的時(shí)間延遲的過程。
步驟二:位置解算,即得到時(shí)間延遲后,利用接收器坐標(biāo)求取導(dǎo)游機(jī)器人聲源坐標(biāo)的過程。位置解算中的主流算法包括迭代法以及球面插值法等。
TDOA 的定位算法的所需的計(jì)算復(fù)雜度大為減小,因此很容易滿足算法的實(shí)時(shí)性,但是也存在一些不足之處。第一步的時(shí)延估計(jì)算法對(duì)于噪聲與混響比較敏感,因此主要適用于低噪低混響環(huán)境。引入PHAT、SCOT、ROTH 等許多加權(quán)函數(shù)來弱化實(shí)際環(huán)境中的噪聲與混響帶來的影響,銳化互相關(guān)峰值。第二步中的位置解算方法中,牛頓迭代法最為基本,但是在實(shí)際使用中經(jīng)常會(huì)遇到迭代結(jié)果無法收斂的情景,并且迭代情況受迭代初始值影響較大,為此使用封閉解來避免定位結(jié)果發(fā)散等算法被提出。封閉解的推導(dǎo)也成為位置解算方法中的常用改進(jìn)方法。
我們的語音硬件系統(tǒng)采用的是科大訊飛的麥克風(fēng)陣列,麥克風(fēng)陣列是由一定數(shù)目的聲學(xué)傳感器組成,對(duì)聲場(chǎng)的空間特性進(jìn)行采樣并處理的系統(tǒng)。其主要作用有聲源定位,抑制背景噪聲、干擾、混響、回聲,信號(hào)提取與分離。
麥克風(fēng)陣列采用平面式分布結(jié)構(gòu),包含6 個(gè)麥克風(fēng),可實(shí)現(xiàn)360 度等效拾音,喚醒分辨率為1 度??梢允褂名溈孙L(fēng)陣列獲取原始和降噪音頻,獲取喚醒角度,主麥編號(hào)。圖3 為麥克風(fēng)陣列圖。
圖3 麥克風(fēng)陣列硬件圖
導(dǎo)游機(jī)器人的語音交互系統(tǒng)主要是語音交互底層節(jié)點(diǎn)與麥克風(fēng)運(yùn)行節(jié)點(diǎn)、導(dǎo)航節(jié)點(diǎn)、雷達(dá)避障節(jié)點(diǎn)等相互作用。設(shè)計(jì)思路主要是進(jìn)行節(jié)點(diǎn)狀態(tài)的識(shí)別與反饋,還要確保節(jié)點(diǎn)的開啟/關(guān)閉,不與基本節(jié)點(diǎn)進(jìn)行沖突,如圖4 所示。
圖4 底層運(yùn)行節(jié)點(diǎn)構(gòu)成
根據(jù)以上設(shè)計(jì)思路,進(jìn)行程序結(jié)構(gòu)設(shè)計(jì),如圖5 所示。
圖5 程序設(shè)計(jì)結(jié)構(gòu)
成功開啟語音交互節(jié)點(diǎn)的時(shí)候,就表明我們已經(jīng)建立好了語音交互的入口,可以進(jìn)行無接觸語音控制小車探索功能,再配合自啟動(dòng)語音交互,可以實(shí)現(xiàn)無電腦等輔助設(shè)備的情況下,進(jìn)行小車控制。小車識(shí)別到開啟指令的時(shí)候,并開啟相關(guān)功能然后把標(biāo)志位flag 置1,標(biāo)志flag 位置1之后會(huì)進(jìn)行成功打開的語音播報(bào);當(dāng)接收到關(guān)閉的指令后,殺死相關(guān)的節(jié)點(diǎn)然后進(jìn)行語音播報(bào)。每當(dāng)小車識(shí)別到小車成功開啟、關(guān)閉節(jié)點(diǎn)的時(shí)候,需要進(jìn)行語音反饋進(jìn)行狀態(tài)的識(shí)別,同時(shí)添加了音頻庫,可以加強(qiáng)游客對(duì)語音交互功能的體驗(yàn)。
通過語音驅(qū)使機(jī)器人的動(dòng)作是導(dǎo)游機(jī)器人工作必不可少的一環(huán),圖6 為本文設(shè)計(jì)的基于語音交互系統(tǒng)的導(dǎo)游機(jī)器人的錄音識(shí)別動(dòng)作圖。
圖6 錄音識(shí)別動(dòng)作流程圖
圖6 中的SDK 源文件主要有三個(gè)作用,第一方面,它有麥克風(fēng)陣列的回調(diào)函數(shù),可以獲取麥克風(fēng)陣列錄制的音頻流,喚醒的方向以及它的主麥編號(hào);第二個(gè)方面,可以調(diào)用科大訊飛的離線識(shí)別引擎,把音頻信號(hào)送入到識(shí)別引擎里面;第三個(gè)方面,SDK 節(jié)點(diǎn)里面有很多服務(wù)類的函數(shù),錄音調(diào)用節(jié)點(diǎn)會(huì)請(qǐng)求SDK 的錄音識(shí)別服務(wù),去請(qǐng)求SDK 的錄音,SDK 接收到錄音請(qǐng)求之后,發(fā)送給硬件科大訊飛去進(jìn)行錄音,錄音完,會(huì)把音頻流數(shù)據(jù)傳輸給SDK,然后SDK就會(huì)把收到的音頻文件送入到科大訊飛的識(shí)別引擎,識(shí)別引擎識(shí)別以后把文本類的識(shí)別結(jié)果再返回到SDK 節(jié)點(diǎn)中,再把識(shí)別結(jié)果作為服務(wù)類型的請(qǐng)求結(jié)果返回到錄音調(diào)用節(jié)點(diǎn),這是一個(gè)完整的錄音識(shí)別的動(dòng)作調(diào)用。
在麥克風(fēng)陣列喚醒狀態(tài)下,錄音調(diào)用節(jié)點(diǎn)會(huì)不斷的去請(qǐng)求SDK 的錄音,得到識(shí)別結(jié)果后,通過話題的方式發(fā)布出去,而命令控制器節(jié)點(diǎn),訂閱了識(shí)別結(jié)果的話題后,根據(jù)話題的信息和我們預(yù)設(shè)好的指令去匹配,判定動(dòng)作指令,再將動(dòng)作指令發(fā)送到我們的底盤運(yùn)動(dòng)控制器,由底盤運(yùn)動(dòng)控制器去控制小車的底盤運(yùn)動(dòng),同時(shí)底盤運(yùn)動(dòng)控制器在收到命令控制器發(fā)的速度指令之后,根據(jù)小車目前的位置狀態(tài),根據(jù)雷達(dá)所反饋的信息去判斷小車適不適合執(zhí)行這個(gè)動(dòng)作,倘若前方有障礙物的情況下,就會(huì)屏蔽這個(gè)信息,產(chǎn)生雷達(dá)避障的效果。
在實(shí)驗(yàn)室環(huán)境下,對(duì)導(dǎo)游機(jī)器人搭載的語音交互功能進(jìn)行測(cè)試,通過麥克風(fēng)陣列對(duì)語音進(jìn)行采集,回復(fù)的語音內(nèi)容通過語音播放器進(jìn)行播放,挑選五句交互語句,每句測(cè)試50 次,分別針對(duì)博物館信息,作品講解以及機(jī)器人介紹信息,將語音識(shí)別置信度設(shè)置為47,發(fā)現(xiàn)平均識(shí)別率能達(dá)到96%以上,滿足博物館內(nèi)游客對(duì)于語音交互功能的使用,識(shí)別結(jié)果統(tǒng)計(jì)如表1 所示。
表1 語音交互識(shí)別結(jié)果
本文主要介紹了針對(duì)博物館、藝術(shù)館,基于語音交互系統(tǒng)的導(dǎo)游機(jī)器人的設(shè)計(jì),并經(jīng)過測(cè)試與驗(yàn)證,發(fā)現(xiàn)該設(shè)計(jì)方案的語音交互系統(tǒng)識(shí)別率高,有很強(qiáng)的可行性。語音系統(tǒng)與機(jī)器人的結(jié)合證明了機(jī)器人應(yīng)用于導(dǎo)游行業(yè)的可行性,通過該語音系統(tǒng)能夠給游客帶來優(yōu)質(zhì)的旅行體驗(yàn),給導(dǎo)游行業(yè)帶來更好的發(fā)展。