楊國(guó)慶 黃銳 李健 呂俊濤 杜修明
摘 要
隨著科技的不斷發(fā)展,在營(yíng)業(yè)場(chǎng)所中智能服務(wù)機(jī)器人漸漸走進(jìn)我們的生活。同時(shí)智能服務(wù)機(jī)器人的出現(xiàn)給我們的生活也帶來(lái)了諸多便利。本文分析了智能服務(wù)機(jī)器人語(yǔ)音交互控制的應(yīng)用需求,基于微軟語(yǔ)音應(yīng)用程序接口設(shè)計(jì)開(kāi)發(fā)了一套人機(jī)語(yǔ)音交互控制系統(tǒng)。詳細(xì)闡述了系統(tǒng)的設(shè)計(jì)思想及關(guān)鍵步驟,重點(diǎn)包括語(yǔ)音識(shí)別、語(yǔ)音合成、語(yǔ)法規(guī)則創(chuàng)建為維護(hù)等方面的內(nèi)容,并就如何進(jìn)一步提高識(shí)別率進(jìn)行了研究。
關(guān)鍵詞
智能服務(wù)機(jī)器人;人機(jī)交互;語(yǔ)音識(shí)別;語(yǔ)音應(yīng)用程序接口
中圖分類(lèi)號(hào): TP242 ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.19694/j.cnki.issn2095-2457.2020.09.052
0 引言
使用機(jī)器人進(jìn)行服務(wù),不但會(huì)讓營(yíng)業(yè)場(chǎng)所添色,更能夠體現(xiàn)現(xiàn)代化、科技感。目前,智能服務(wù)機(jī)器人可以實(shí)現(xiàn)集自主引導(dǎo)、互動(dòng)交流等功能為一體的一系列“類(lèi)人”活動(dòng),智能服務(wù)機(jī)器人的出現(xiàn),不僅節(jié)省了人力和時(shí)間成本,還展現(xiàn)了當(dāng)下智能時(shí)代感[1-2]。
智能服務(wù)機(jī)器人采用最前沿的技術(shù)與智能設(shè)備、人機(jī)交互等相互應(yīng)用,可提供更快更準(zhǔn)的個(gè)性化服務(wù),也為營(yíng)業(yè)場(chǎng)所帶來(lái)了全新的智能體驗(yàn)[3]。
目前,由于技術(shù)的逐步發(fā)展和多地推廣應(yīng)用?,F(xiàn)場(chǎng)應(yīng)用對(duì)機(jī)器人的控制方式提出了新的要求,希望能夠以語(yǔ)音命令控制機(jī)器人,并且實(shí)現(xiàn)與機(jī)器人的交互對(duì)話。著眼于智能服務(wù)機(jī)器人語(yǔ)音交互控制的功能需求,本文以語(yǔ)音識(shí)別和語(yǔ)音合成的應(yīng)用開(kāi)發(fā)為手段,實(shí)現(xiàn)了可靠快捷的機(jī)器人語(yǔ)音控制與交互會(huì)話。
1 功能概述與性能指標(biāo)
對(duì)機(jī)器人的交互控制是讓機(jī)器人識(shí)別接收到的有效對(duì)話和語(yǔ)音操作指令,根據(jù)識(shí)別結(jié)果做出應(yīng)答或完成指定操作[4-5]。
利用語(yǔ)音識(shí)別技術(shù)正確識(shí)別操作人員發(fā)出的語(yǔ)音指令,再根據(jù)識(shí)別結(jié)果判斷語(yǔ)音指令的類(lèi)型。語(yǔ)音指令有兩種類(lèi)型,一種是控制指令,即讓機(jī)器人完成指定的操作,如“開(kāi)始充電”、“停止充電”、“開(kāi)啟超聲”等進(jìn)而根據(jù)識(shí)別結(jié)果做出應(yīng)答或執(zhí)行指定的操作;正確識(shí)別到控制指令需要控制機(jī)器人完成對(duì)應(yīng)操作。另外一種指令是應(yīng)答指令,如“你叫什么名字”、“你會(huì)做什么”等,識(shí)別到這類(lèi)指令后機(jī)器人需要根據(jù)事先設(shè)定好的內(nèi)容應(yīng)答。
為適應(yīng)現(xiàn)場(chǎng)應(yīng)用需求,語(yǔ)音交互控制系統(tǒng)應(yīng)滿(mǎn)足以下性能指標(biāo):
(1)喚醒詞的喚醒率>95%;
(2)近場(chǎng)通用場(chǎng)景識(shí)別率>98%;
(3)遠(yuǎn)場(chǎng)通用場(chǎng)景識(shí)別率>95%;
(4)識(shí)別結(jié)果響應(yīng)時(shí)間低于200ms。
2 流程設(shè)計(jì)
分析機(jī)器人語(yǔ)音交互控制的功能需求,為實(shí)現(xiàn)該系統(tǒng)可將其分解為語(yǔ)音采集、語(yǔ)音識(shí)別、對(duì)話應(yīng)答和執(zhí)行操作等四個(gè)模塊。
2.1 語(yǔ)音采集
利用聲音傳感器采集交互語(yǔ)音信號(hào),提供給后續(xù)環(huán)節(jié)的進(jìn)行分析處理。
2.2 語(yǔ)音識(shí)別
通過(guò)對(duì)采集到的語(yǔ)音信號(hào)進(jìn)行分析處理、提取特征進(jìn)行比對(duì)識(shí)別出語(yǔ)音內(nèi)容,然后據(jù)此判定是否是合法指令及指令類(lèi)型,進(jìn)而控制機(jī)器人做出相應(yīng)的響應(yīng)。
2.3 對(duì)話應(yīng)答
識(shí)別出合法的應(yīng)答指令,在應(yīng)答列表中搜索相應(yīng)的應(yīng)答內(nèi)容,然后使機(jī)器人說(shuō)出應(yīng)答內(nèi)容以實(shí)現(xiàn)人機(jī)對(duì)話。
2.4 執(zhí)行操作
通過(guò)語(yǔ)音識(shí)別確定合法的操作指令,向機(jī)器人發(fā)送指令完成相應(yīng)的操作。
在上述諸環(huán)節(jié)中,語(yǔ)音信號(hào)采集技術(shù)成熟、結(jié)構(gòu)簡(jiǎn)單,完成語(yǔ)音傳感器(話筒)、采集卡(聲卡)的物理連接,開(kāi)發(fā)語(yǔ)音采集配套程序即可進(jìn)行語(yǔ)音采集。語(yǔ)音識(shí)別是整個(gè)系統(tǒng)中的核心部分,對(duì)話應(yīng)答和執(zhí)行操作都依賴(lài)語(yǔ)音識(shí)別的結(jié)果。對(duì)話應(yīng)答要求機(jī)器人具備說(shuō)話能力,通過(guò)語(yǔ)音合成技術(shù)將應(yīng)答內(nèi)容轉(zhuǎn)換為會(huì)話語(yǔ)音。執(zhí)行操作部分是向機(jī)器人發(fā)布控制命令,可直接利用機(jī)器人已有的指令控制方式。語(yǔ)言交互控制的處理流程如圖2所示。
3 語(yǔ)音交互詳細(xì)設(shè)計(jì)
由前述分析可知,實(shí)現(xiàn)機(jī)器人語(yǔ)音交互控制的關(guān)鍵是語(yǔ)音識(shí)別和用于對(duì)話應(yīng)答的語(yǔ)音合成。結(jié)合系統(tǒng)需求和語(yǔ)音技術(shù)發(fā)展?fàn)顩r,采用基于現(xiàn)有語(yǔ)音開(kāi)發(fā)包的方式實(shí)現(xiàn)了整個(gè)語(yǔ)音交互控制系統(tǒng)。
3.1 選擇開(kāi)發(fā)方式
語(yǔ)音識(shí)別技術(shù)就是讓機(jī)器通過(guò)識(shí)別和理解過(guò)程把語(yǔ)音信號(hào)轉(zhuǎn)變?yōu)橄鄳?yīng)的文本或命令的高技術(shù),技術(shù)內(nèi)容主要包括特征提取技術(shù)、模式匹配準(zhǔn)則及模型訓(xùn)練技術(shù)三個(gè)方面[6]??陀^地講,盡管有一些公司提供了某些語(yǔ)音識(shí)別的商業(yè)應(yīng)用,但真正高效可靠的語(yǔ)音識(shí)別技術(shù)仍然是一個(gè)技術(shù)難點(diǎn),相對(duì)而言抗干擾性差、對(duì)語(yǔ)音輸入要求高[7]。
目前常用的語(yǔ)音開(kāi)發(fā)工具有微軟公司的SAPI語(yǔ)言引擎和國(guó)內(nèi)科大訊飛提供的InterReco語(yǔ)音識(shí)別系統(tǒng)。對(duì)機(jī)器人語(yǔ)音交互這類(lèi)命令式識(shí)別而言,兩者效果相當(dāng),因科大訊飛開(kāi)發(fā)包成本高而采用微軟的SAPI進(jìn)行語(yǔ)音識(shí)別開(kāi)發(fā)。
SAPI(Speech Application Programming Interface)是微軟語(yǔ)音開(kāi)發(fā)包(Microsoft Speech SDK)提供的關(guān)于語(yǔ)音(Speech)處理的一套應(yīng)用程序編程接口,包含了實(shí)現(xiàn)文字-語(yǔ)音識(shí)別(Speech Recognition)和語(yǔ)音合成(Text-to-Speech)程序的基本函數(shù),大大簡(jiǎn)化了語(yǔ)音編程的難度,降低了語(yǔ)音編程的工作量[8]。
下圖所示是微軟SAPI的開(kāi)發(fā)架構(gòu),語(yǔ)音引擎通過(guò)設(shè)備驅(qū)動(dòng)接口DDI層SAPI運(yùn)行庫(kù)通信,應(yīng)用程序則通過(guò)應(yīng)用程序接口API層和SAPI交互。通過(guò)使用這些API進(jìn)行語(yǔ)音識(shí)別和語(yǔ)音合成方面的開(kāi)發(fā)。
3.2 語(yǔ)音識(shí)別的詳細(xì)開(kāi)發(fā)
3.2.1 SAPI工作模式
用SAPI構(gòu)建語(yǔ)音識(shí)別系統(tǒng)可以采用兩種識(shí)別模式:語(yǔ)音命令控制模式和語(yǔ)音聽(tīng)寫(xiě)模式[9]。采用語(yǔ)音命令控制模式構(gòu)建的語(yǔ)音識(shí)別系統(tǒng),適合小詞匯量、孤立詞、非特定人的語(yǔ)音識(shí)別,但是需要?jiǎng)?chuàng)建語(yǔ)法規(guī)則,識(shí)別范圍只能局限于語(yǔ)法規(guī)則內(nèi)所設(shè)計(jì)的短語(yǔ)或字詞,適應(yīng)性差但限定內(nèi)容識(shí)別率高。語(yǔ)音聽(tīng)寫(xiě)模式構(gòu)建的語(yǔ)音識(shí)別系統(tǒng)適合于大詞匯、連續(xù)語(yǔ)音的識(shí)別,同時(shí)無(wú)須構(gòu)建復(fù)雜的語(yǔ)法規(guī)則,語(yǔ)音識(shí)別的適應(yīng)性強(qiáng),但識(shí)別率相對(duì)要低一些。
機(jī)器人語(yǔ)音交互控制的指令是有限且相對(duì)固定的,因此采用識(shí)別率更高的命令控制識(shí)別模式。按照SAPI的開(kāi)發(fā)流程,完成語(yǔ)音識(shí)別的基本配置和識(shí)別引擎初始化即可進(jìn)行語(yǔ)音識(shí)別。
3.2.2 語(yǔ)法規(guī)則的創(chuàng)建與維護(hù)
語(yǔ)音命令識(shí)別模式的關(guān)鍵問(wèn)題是語(yǔ)音規(guī)則,是對(duì)能夠識(shí)別的命令庫(kù)的標(biāo)準(zhǔn)化描述。SAPI的語(yǔ)法規(guī)則采用XML(eXtensible Markup Language,可擴(kuò)展標(biāo)記語(yǔ)言)格式。在進(jìn)行識(shí)別工作之前需要編寫(xiě)一個(gè)語(yǔ)法規(guī)則文件,其中定義了需要識(shí)別的字和短語(yǔ),SDK語(yǔ)音識(shí)別引擎加載該語(yǔ)法規(guī)則來(lái)識(shí)別用戶(hù)的語(yǔ)音。
在XML中每個(gè)實(shí)體或元素是由開(kāi)始標(biāo)記<屬性名>和結(jié)束標(biāo)記屬性名>所組成,在其中間夾的語(yǔ)句就是該實(shí)體或元素包含的文法內(nèi)容。文法的內(nèi)容可以是普通文字,或者是文法元素的子元素。XML規(guī)范中對(duì)于合法的文法內(nèi)容的正式定義是采用多集合表達(dá)式的形式。利用這些定義,就可以精確定義文件的語(yǔ)法和文法中的規(guī)則。在文法中,
和
中插入的是一組待識(shí)別的字或短語(yǔ),而為可選擇項(xiàng)的可能匹配用戶(hù)語(yǔ)音的字或短語(yǔ)。
圖4所示是機(jī)器人語(yǔ)音交互控制采用的部分語(yǔ)法規(guī)則。其中GRAMMAR LANGID="804",指明了識(shí)別對(duì)象是中文漢字,在識(shí)別過(guò)程中將調(diào)用漢語(yǔ)聲學(xué)模型;位于
和
之間的是諸條識(shí)別命令。XML語(yǔ)法文件可根據(jù)識(shí)別命令手工編輯,當(dāng)識(shí)別命令發(fā)生變化時(shí)需要同步更新并加載XML文件,語(yǔ)音識(shí)別引擎才能識(shí)別新的指令。因此手工編輯方式不便于更新語(yǔ)法,在開(kāi)發(fā)過(guò)程中根據(jù)XML規(guī)則實(shí)現(xiàn)了語(yǔ)法文件的程序化更新,采用MSXML2::IXMLDOMDocumentPtr和MSXML2::IXMLDOMEl ementPtr對(duì)XML文件進(jìn)行編輯。
3.3 語(yǔ)音合成
語(yǔ)音合成又稱(chēng)文語(yǔ)轉(zhuǎn)換,能將任意文字信息實(shí)時(shí)轉(zhuǎn)化為標(biāo)準(zhǔn)流暢的語(yǔ)音朗讀出來(lái)[10]。通過(guò)計(jì)算機(jī)語(yǔ)音合成可以在任何時(shí)候?qū)⑷我馕谋巨D(zhuǎn)換成具有高自然度的語(yǔ)音,從而真正實(shí)現(xiàn)讓機(jī)器“像人一樣開(kāi)口說(shuō)話”。這正是機(jī)器人語(yǔ)音交互應(yīng)答的需求。
采用微軟SAPI實(shí)現(xiàn)語(yǔ)音合成的步驟與語(yǔ)音識(shí)別大致類(lèi)似,同樣包含基本設(shè)置(音量和語(yǔ)速)和引擎初始化。其中的一個(gè)關(guān)鍵問(wèn)題是選擇發(fā)音庫(kù),即讓機(jī)器人以什么樣的腔調(diào)說(shuō)話。微軟SAPI包含了中英文的發(fā)音庫(kù),但在SAPI 5.4及以下版本里中文發(fā)音類(lèi)型少且效果較差;可通過(guò)安裝第三方的語(yǔ)音庫(kù)增強(qiáng)語(yǔ)音合成效果,如Neospeech語(yǔ)音庫(kù)。
4 提高識(shí)別率的方法
按照上述流程完成了機(jī)器人語(yǔ)音交互控制系統(tǒng)的開(kāi)發(fā),經(jīng)現(xiàn)場(chǎng)測(cè)試正確識(shí)別率超過(guò)90%。要進(jìn)一步提高語(yǔ)音識(shí)別率,可加入語(yǔ)音預(yù)處理及用戶(hù)訓(xùn)練。特別地,本文在語(yǔ)法規(guī)則設(shè)計(jì)上進(jìn)行了實(shí)驗(yàn)研究。
采用圖4所示的語(yǔ)法形式,在語(yǔ)音識(shí)別時(shí)對(duì)每條指令的判斷是采用整體比對(duì),最終的識(shí)別結(jié)果是與上述列表中最為接近的選項(xiàng)。實(shí)驗(yàn)證明此種形式的語(yǔ)法規(guī)則下正確識(shí)別率較高,但是虛警率偏高,即可能將某些干擾音輕易地識(shí)別為某條指令,特別是一些短的指令,如“打開(kāi)”等。分析產(chǎn)生這種問(wèn)題的原因,應(yīng)該是某些干擾中含有與這些短指令類(lèi)似的語(yǔ)音成分。為了保證識(shí)別率,這種整體指令形式的語(yǔ)法規(guī)則下的比對(duì)并不是非常嚴(yán)格的比對(duì),因?yàn)樽R(shí)別系統(tǒng)要容忍一定程度的輸入偏差,如將“山東”讀成“三東”也應(yīng)能識(shí)別出來(lái),畢竟用戶(hù)的發(fā)音可能千差萬(wàn)別的。
因此,在上述語(yǔ)法規(guī)則下一些短的指令往往被誤識(shí)。為改善這一問(wèn)題,設(shè)計(jì)了更為嚴(yán)格的比對(duì)規(guī)則,如圖5所示。在這種分段形式的語(yǔ)法規(guī)則下實(shí)現(xiàn)了更為嚴(yán)格的匹配識(shí)別。實(shí)驗(yàn)結(jié)果也驗(yàn)證了這種分析,采用這種比對(duì)語(yǔ)法能顯著地降低誤識(shí)率。
對(duì)比圖4、5所示兩種不同形式的識(shí)別語(yǔ)法,可以說(shuō)各有所長(zhǎng),因此如何合理地設(shè)計(jì)語(yǔ)法規(guī)則是改善語(yǔ)音識(shí)別效果的一個(gè)途徑。
5 結(jié)論
為增強(qiáng)智能服務(wù)機(jī)器人的語(yǔ)音交互功能,根據(jù)應(yīng)用需求設(shè)計(jì)了完整的語(yǔ)音交互開(kāi)發(fā)流程。在此基礎(chǔ)上基于微軟語(yǔ)音應(yīng)用程序接口SAPI,完成了一套人機(jī)語(yǔ)音交互控制系統(tǒng)?,F(xiàn)場(chǎng)測(cè)試結(jié)果表明,系統(tǒng)的各項(xiàng)性能指標(biāo)滿(mǎn)足設(shè)計(jì)要求。限于語(yǔ)音識(shí)別技術(shù)的發(fā)展水平,機(jī)器人的語(yǔ)音識(shí)別能力與人相比還有很大差距,仍是下一步亟須解決的問(wèn)題。
參考文獻(xiàn)
[1]李安琪,蘇偉,吳燕.服務(wù)機(jī)器人技術(shù)的發(fā)展[J].科教導(dǎo)刊-電子版(下旬),2018, (11):261-262.
[2]李強(qiáng),喬克,顏紅,江熙.基于人工智能技術(shù)的電力營(yíng)業(yè)廳機(jī)器人設(shè)計(jì)[J].智能城市,2018,4(24):10-11.
[3]王博瑋,陸中成.基于云的餐廳服務(wù)機(jī)器人系統(tǒng)設(shè)計(jì)[J].自動(dòng)化儀表,2019,40(8):65-69.
[4]翁劍鵬,彭軍發(fā),李金林,易向東.基于語(yǔ)音識(shí)別的人形機(jī)器人的設(shè)計(jì)與實(shí)現(xiàn)[J]. 科技創(chuàng)新導(dǎo)報(bào),2019,16(18):138-139.
[5]黎世銀,任瑾,任家毅.基于語(yǔ)音控制的自主尋跡與避障智能小車(chē)設(shè)計(jì)[J].電子世界,2019(5):133-134.
[6]吳麗麗.孤立詞語(yǔ)音識(shí)別算法的研究與系統(tǒng)仿真[D].東北大學(xué),2012:1-77.
[7]唐美麗,胡瓊,馬廷淮.基于循環(huán)神經(jīng)網(wǎng)絡(luò)的語(yǔ)音識(shí)別研究[J].現(xiàn)代電子技術(shù), 2019,42(14):152-156.
[8]羅志增,趙敬斌.機(jī)器人語(yǔ)音控制及其實(shí)現(xiàn)[J].杭州電子工業(yè)學(xué)院學(xué)報(bào),2004,24(1):30-34.
[9]初琦.Speech SDK在語(yǔ)音機(jī)器人開(kāi)發(fā)中的應(yīng)用[J].北京工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2008,7(4) :32-36.
[10]邱澤宇,屈丹,張連海.基于WaveNet的端到端語(yǔ)音合成方法[J].計(jì)算機(jī)應(yīng)用, 2019,39(5):1325-1329.