葉鵬,田會峰,宗航飛
(江蘇科技大學(xué)蘇州理工學(xué)院電氣與信息工程學(xué)院,江蘇張家港215600)
隨著計算機以及電子技術(shù)的不斷發(fā)展,人機交互越來越頻繁,人機交互的模式也發(fā)生著巨大改變[1]。人們不滿足于僅僅實現(xiàn)基本功能,對交互方式提出了更多需求,而語音交互以其有效、直接、自然的特點成為替代傳統(tǒng)按鍵與屏幕交互的理想方式。對此已有諸多探索,例如將語音交互技術(shù)應(yīng)用于智能家居[2]與無人駕駛車輛[3]中。
此前嵌入式系統(tǒng)中語音交互的研究重點都集中于在各種硬件平臺例如可編程邏輯門陣列(Field-Programmable Gate Array,F(xiàn)PGA)[4],STM32[5]或者數(shù)字信號處理器(Digital Signal,DSP)[6]上實現(xiàn)實時語音算法。然而在硬件上集成語音識別算法不僅對硬件的成本要求過高,并且由于嵌入式平臺的計算資源有限,識別效率并不高。文中提出了一種基于云計算[7]與ZigBee無線通信技術(shù)[8]的人機交互系統(tǒng),該系統(tǒng)借助云端識別引擎以較低成本獲得了較高的識別率。
人機對話的目的是通過模擬人與人自然語言交流的過程實現(xiàn)人機交互,涉及的技術(shù)包括連續(xù)語音識別,智能問答系統(tǒng),文本轉(zhuǎn)語音(Text To Speech,TTS)等,圖1為其主要流程。

圖1 人機對話流程圖
語音識別是機器通過識別和理解過程把語音信號轉(zhuǎn)變?yōu)橄鄳?yīng)的文本文件或命令的技術(shù),作為一門交叉學(xué)科,它涉及聲學(xué)、語音學(xué)、語言學(xué)、人工智能、數(shù)字信號處理理論、信息理論、模式識別理論、最優(yōu)化理論、計算機科學(xué)等眾多科學(xué)緊密相連,除此之外,其應(yīng)用前景也非常廣闊。

圖2 連續(xù)語音識別框圖
如圖2所示,一個完整的語音識別系統(tǒng)由四個部分組成:特征提取,聲學(xué)模型訓(xùn)練,語言模型訓(xùn)練和解碼器特征提取[9]。語音識別分兩個階段進行。首先需要進行模型的訓(xùn)練。其中,聲學(xué)模型的訓(xùn)練指根據(jù)訓(xùn)練語音庫的特征參數(shù)訓(xùn)練出聲學(xué)模型參數(shù);語言模型的訓(xùn)練指對訓(xùn)練文本數(shù)據(jù)庫進行語法、語義分析,經(jīng)過基于統(tǒng)計模型訓(xùn)練得到語言模型。其次,語音識別階段,需要先提取語音特征,即去除語音信號中對于語音識別無用的冗余信息,保留能夠反映語音本質(zhì)特征的信息,并用一定的形式表示出來。再將提取的特征進行解碼,即通過聲學(xué)模型和語言模型將訓(xùn)練集外的語音數(shù)據(jù)識別成文字。
而語音識別的基本框架可由如下公式表示。

上式中W表示文字序列,Y表示語音輸入。公式(1)表示語音識別的目標(biāo)是在給定語音輸入的情況下,找到可能性最大的文字序列。根據(jù)貝葉斯公式,可以得到公式(2),其中分母表示出現(xiàn)這條語音的概率,它相比于求解的文字序列沒有參數(shù)關(guān)系,可以在求解時忽略,進而得到公式(3)。公式(3)中第一部分表示一個給定的文字序列出現(xiàn)這條音頻的概率,即語音識別中的聲學(xué)模型(Acoustic Model,AM);第二部分表示出現(xiàn)這個文字序列的概率,即語音識別中的語言模型(Language Model,LM)。
自動問答系統(tǒng)是自然語言處理領(lǐng)域的一個重要方向,旨在讓用戶直接用自然語言提問并獲得答案,。傳統(tǒng)的搜索引擎是根據(jù)關(guān)鍵詞檢索并將返回大量相關(guān)文檔集合,需要用戶親自去查找自己相關(guān)的資料。從這樣的比較可以看到,問答系統(tǒng)的實現(xiàn)將使用戶在海量數(shù)據(jù)中查找相關(guān)資料時節(jié)省大量的時間。

圖3 問答系統(tǒng)的處理框架
如圖3所示,其處理框架主要包括問句理解、信息檢索、答案生成與驗證3個部分[10],其中問句理解實現(xiàn)詞法分析、句法分析和問題分類等基本功能以保證系統(tǒng)的高準(zhǔn)確率;信息檢索這步通過傳統(tǒng)信息檢索技術(shù)獲得可能存在答案的文檔并對文檔進行排序;答案生成及驗證部分指對信息檢索得到的候選文檔進行詞法、句法、語義等方面的分析,并且根據(jù)問題的類別抽取相應(yīng)的答案返回給用戶。
目前,自動問答系統(tǒng)還處在起步階段,其準(zhǔn)確率還較低,例如在一項改進微信平臺的自動問答系統(tǒng)的工作中,問答系統(tǒng)的準(zhǔn)確率為76.77%[11]。
TTS是語音合成應(yīng)用的一種,它可以將文本轉(zhuǎn)換成自然語音輸出。其處理流程如圖4所示。

圖4 文字轉(zhuǎn)語音系統(tǒng)框架圖
如圖中所示,語音轉(zhuǎn)文字系統(tǒng)有3個模塊:文本處理模塊、韻律處理模塊、聲音合成模塊[12]。因為本文中介紹的是基于云計算的系統(tǒng),所以韻律生成模塊會在云端進行訓(xùn)練與調(diào)用。文本處理模塊位于系統(tǒng)的前端,其內(nèi)容有文本分詞、非標(biāo)準(zhǔn)詞正則化、字音轉(zhuǎn)換。韻律處理模塊主要負(fù)責(zé)從文本中提取韻律結(jié)構(gòu)、重音和語調(diào)等與韻律有關(guān)的信息。聲音合成模塊是語音合成系統(tǒng)的后端模塊,主要進行聲音合成并對其進行修改與輸出。
隨著深神經(jīng)網(wǎng)絡(luò)技術(shù)的興起,已有不少學(xué)者對深度神經(jīng)網(wǎng)絡(luò)在語音生成上的應(yīng)用做出諸多嘗試[13]。
1.5.1 總體結(jié)構(gòu)
如圖5所示,系統(tǒng)總體可以分為云端和硬件交互系統(tǒng)兩大部分。其中云端上搭載訓(xùn)練好的語音模型,實現(xiàn)連續(xù)語音識別、自動問答、語音轉(zhuǎn)文字3個人機對話的核心功能,并且云端也可以實現(xiàn)數(shù)據(jù)存儲以及硬件節(jié)點的控制。硬件交互系統(tǒng)主要負(fù)責(zé)語音的采集播放以及傳感器信息、語音信息、云端控制信息在節(jié)點、主控和云端之間的傳遞,它包含五部分:基站、節(jié)點、機器人平臺、麥克風(fēng)陣列、連接在節(jié)點上的傳感器和執(zhí)行機構(gòu)。
其中,節(jié)點與基站之間通過ZigBee通信技術(shù)實現(xiàn)無線通信,并且每個節(jié)點以單片機作為主控,單片機上連接了多個傳感器與執(zhí)行機構(gòu),可以將云端解析出的語音信息變成相應(yīng)的執(zhí)行動作。

圖5 系統(tǒng)總體結(jié)構(gòu)圖
1.5.2 系統(tǒng)運作模型
如圖6所示,使用該人機交互系統(tǒng)進行交互的過程是一個用戶、硬件與云端相互合作的過程。本文將系統(tǒng)劃分為用戶、基站和節(jié)點、云端3個對象主體,基于UML活動圖[14]建立了系統(tǒng)整體運作模型,該圖描述了用戶與系統(tǒng)進行交互過程中涉及的各個對象主體的主要活動和相互之間的動態(tài)行為。
由系統(tǒng)的運作模型可知,實現(xiàn)用戶與系統(tǒng)交互有3個主要環(huán)節(jié):一是用戶操作,二是硬件采集和播放聲音,節(jié)點執(zhí)行機構(gòu)執(zhí)行指令和傳感器采集環(huán)境信息,三是調(diào)用云端引擎。具體的運行邏輯可以從基站與節(jié)點兩個方面闡述。
首先是基站,基站主要設(shè)計了兩部分功能,本地的語音交互功能與遠距離的手機APP控制功能。基站通過采音設(shè)備采集各個節(jié)點處的語音信號并將其上傳至云端語音識別引擎進行解析,解析出的結(jié)果會以文本的形勢返回。基站再對返回的文本進行匹配,如果匹配上事先設(shè)置好的控制命令則會通過ZigBee網(wǎng)絡(luò)傳輸給節(jié)點執(zhí)行相應(yīng)的命令以實現(xiàn)語音交互中的控制功能;如果沒有匹配到事先設(shè)置好的命令,則會將此文本上傳至云端的TTS引擎進行文字轉(zhuǎn)語音,并將解析出的語音信號返回本地播放,從而實現(xiàn)語音交互中的對話功能。

圖6 系統(tǒng)交互UML活動圖
基站主控還連接開源的物聯(lián)網(wǎng)云平臺YeeLink,借助配套的手機APP,我們可以遠距離查看與節(jié)點相連的設(shè)備狀態(tài),并且可以通過手機遠程控制家里的家電設(shè)備。
節(jié)點有兩種工作模式,第一種模式下它可以作為交互系統(tǒng)的終端執(zhí)行機構(gòu)和環(huán)境信息的采集裝置,第二種模式下它可以單獨作為一個自動運行的控制器,例如在智能家居的應(yīng)用場景中,
通過設(shè)置可以讓節(jié)點工作于兩種狀態(tài),用戶通過說出“進入用戶模式”的指令控制節(jié)點進入第一種狀態(tài),此時節(jié)點等待用戶的指令,如果此時用戶有打開窗戶的指令,節(jié)點就會驅(qū)動相應(yīng)的執(zhí)行機構(gòu)動作,實現(xiàn)開窗的操作,如果用戶說出“進入自動模式”就會進入第二種模式,此時節(jié)點就會按照事先設(shè)定的程序自動運行,例如下雨關(guān)窗,天黑關(guān)窗簾等。
基站由樹莓派開發(fā)板作為主控,它是一款基于ARM的微型電腦主板,以MicroSD卡為內(nèi)存硬盤,卡片主板周圍有4個USB接口和一個以太網(wǎng)接口,可連接鍵盤、鼠標(biāo)和網(wǎng)線,同時擁有視頻模擬信號的電視輸出接口和HDMI高清視頻輸出接口。
主控與一塊ZigBee通信模塊相連,它是一種自組網(wǎng)多跳無線通信模塊。該模塊上電后會與周圍的模塊自動組成一個無線多跳網(wǎng)絡(luò),此網(wǎng)絡(luò)為對等網(wǎng)絡(luò),不需要中心節(jié)點。模塊頻率為2.4~2.45 GHz,屬于全球免費的無線頻段。將ZigBee模塊設(shè)置為串口透傳工作模式后,可以通過串口將基站或節(jié)點單片機上的數(shù)據(jù)自動打包成相應(yīng)的數(shù)據(jù)格式并借助ZigBee網(wǎng)絡(luò)發(fā)送給對方,實現(xiàn)傳感器數(shù)據(jù)與控制信號的本地網(wǎng)絡(luò)傳輸。
基站還連接多個采音設(shè)備以及一個揚聲器,其電路圖如圖7所示。

圖7 基站電路圖
其中所有的語音采集設(shè)備和揚聲器均通過延長線伸展至節(jié)點附近,用戶只需在節(jié)點附近靠近麥克風(fēng)處發(fā)出語音命令就能進行交互,節(jié)點不承擔(dān)相關(guān)語音采集以及處理等計算資源的消耗。
考慮到采音設(shè)備的采音質(zhì)量會對最后的識別率與準(zhǔn)確識別的距離產(chǎn)生較大影響,此處我們選擇使用麥克風(fēng)陣列的模塊提高采音質(zhì)量。
節(jié)點的電路圖如圖8所示,STC15F2K60S2單片機做為主控,外接一個光敏傳感器,一個溫濕度傳感器DHT11,一個ZigBee通信模塊與多個舵機等執(zhí)行機構(gòu)。

圖8 ZigBee無線節(jié)點電路
其中,溫度和濕度傳感器都為數(shù)字式傳感器,無需對獲得的數(shù)據(jù)再做數(shù)模轉(zhuǎn)換。
因為本系統(tǒng)采用的云端語音識別引擎為百度語音,官方公布的平均正確識別率為97%,為了測試本系統(tǒng)的實際識別率,我們通過用手機錄制特定命令,并以相同的音量播放,通過多次實地測試,得到圖9所示的不同距離下的識別準(zhǔn)確率。
由于識別準(zhǔn)確率不僅受云端的影響,具體應(yīng)用時還受到采音設(shè)備性能[15]的影響,本文中設(shè)計的交互系統(tǒng)采用的是麥克風(fēng)陣列采集語音信息,由圖9數(shù)據(jù)易知,本文中設(shè)計的系統(tǒng)在距離為3.5 m范圍內(nèi),識別率在90%以上,在距離較近時,甚至接近官方公布的97%的準(zhǔn)確率。

圖9 不同距離的識別率曲線
由下面表1易知,在兩面墻的測試環(huán)境之下,節(jié)點之間的通信距離仍有20 m,由于節(jié)點之間是組網(wǎng)通信,模塊會自動尋找最優(yōu)的信號傳輸路徑,在此通信距離之下,該系統(tǒng)適用于絕大多數(shù)的實際家居、辦公場景。
文中以ARM作為基站主控,單片機作為節(jié)點主控,在嵌入式平臺上實現(xiàn)了語音交互功能。
首先,借助云端語音識別引擎解決了傳統(tǒng)嵌入式系統(tǒng)移植開發(fā)語音算法成本過高與識別率不高[15]的問題,并借助云端智能問答系統(tǒng)和語音轉(zhuǎn)文字引擎實現(xiàn)了實時聊天對話的功能。
其次,應(yīng)用ZigBee通信技術(shù)實現(xiàn)了語音信息、傳感器信息、云端控制信息在各個節(jié)點間的傳遞與執(zhí)行。本文設(shè)計的嵌入式無線交互系統(tǒng)可應(yīng)用于家庭、醫(yī)院、養(yǎng)老中心、餐廳、智能車載等場景。但是在實際驗證系統(tǒng)時發(fā)現(xiàn)系統(tǒng)的聲音采集設(shè)備還存在較大問題,拾音距離不夠理想,后期的工作集中于尋找更好的遠距離聲音采集方案。