何松 黃維 吳昔遙 周曾豪 楊東澤
摘? 要:現(xiàn)有的語音交互機器人多采用用戶提問、機器人回答的單向交流方式,人機交互的智能性和靈活性較差。本文研究運用樹莓派(Raspberry Pi)計算機和配套的語音板作為硬件載體,融合語音喚醒、語音識別、語音合成、自然語言處理等人工智能技術(shù),調(diào)用科大訊飛開放云平臺、在線圖靈機器人,搭建一種基于云平臺的智能語音交互機器人系統(tǒng),并結(jié)合自主開發(fā)的本地知識庫和問題庫,使智能語音交互機器人能夠根據(jù)不同環(huán)境與任務(wù)需求實現(xiàn)雙向互動交流,實現(xiàn)由機器人采集信息和交流反饋,以提供高適應(yīng)性的無接觸人機語音交互服務(wù)。
關(guān)鍵詞:人工智能;自然語言處理;語音交互機器人;樹莓派;云平臺
中圖分類號:TP24? ? ?文獻標識碼:A
文章編號:2096-1472(2021)-04-55-05
Abstract: Existing voice interactive robots mostly use user questions and the one-way communication method of robot answers, which is less intelligent and flexible in human-computer interaction. This paper proposes to build an intelligent voice interactive robot system based on cloud platform. The proposed system uses Raspberry Pi computer and the supporting voice board as hardware carriers, and integrates artificial intelligence technologies such as voice wake-up, voice recognition, speech synthesis, natural language processing. It also makes use of the services of IFLYTEK open cloud platform and online Turing robot. Combined with self-developed local knowledge base and question library, the intelligent voice interactive robot can conduct two-way interactive communication according to different environment and task requirements, collect information, and exchange feedback. It provides highly adaptable contactless human-machine voice interaction service.
Keywords: artificial intelligence; natural language processing; voice interactive robot; Raspberry Pi; cloud platform
1? ?引言(Introduction)
隨著人工智能技術(shù)的快速發(fā)展,深度學(xué)習(xí)在語音技術(shù)領(lǐng)域取得突破性進展[1]。與此同時,在互聯(lián)網(wǎng)快速發(fā)展的驅(qū)動下,云端技術(shù)架構(gòu)不斷成熟穩(wěn)定,基于語音的人機交互技術(shù)應(yīng)用越來越廣泛,涵蓋教育、醫(yī)療、家居等各行業(yè)領(lǐng)域[2],如服務(wù)機器人、情感交互機器人、教育機器人等[3]。在語音交互方面,云端保存著由海量數(shù)據(jù)通過深度學(xué)習(xí)訓(xùn)練而成的各種模型[4],并通過其強勁的處理能力為終端提供諸如語音識別、語義理解、語音合成等計算量較大的服務(wù)[5]。
語音識別技術(shù)的研究工作始于20世紀50年代,至今已經(jīng)走過70年的歷程[6],在國內(nèi)外被廣泛研究[7]。2011年的蘋果第四代語音助手Siri的出現(xiàn),帶來了國外語音交互產(chǎn)業(yè)的高峰期[8];2014年亞馬遜的智能音箱Echo是人機交互技術(shù)進入家庭電器產(chǎn)業(yè)的重要節(jié)點[9]。隨著深度學(xué)習(xí)算法升級、硬件計算能力提升,大量數(shù)據(jù)不斷參與訓(xùn)練優(yōu)化模型,語音識別和自然語音理解不斷取得突破性進展,國內(nèi)領(lǐng)先的科大訊飛、百度等公司語音識別準確率達97%以上[10]。語音交互技術(shù)鏈條不斷成熟,讓機器人具備語音交互功能已然成為一種趨勢。本文主要研究整合現(xiàn)有資源,調(diào)整傳統(tǒng)語音交互系統(tǒng)軟件設(shè)計方案,基于云服務(wù)平臺和ROS(Robot Operating System)框架,設(shè)計智能語音交互系統(tǒng),并且可以安裝于小型集成計算機上。作為安裝于病房內(nèi)的“智能語音交互機器人”,降低語音交互系統(tǒng)開發(fā)難度和研發(fā)成本,使無接觸式就醫(yī)得以實現(xiàn),并且擴展應(yīng)用功能。
2? ?語音交互模塊需求分析(Demand analysis of voice interaction)
通過分析疫情防控與病情監(jiān)測等環(huán)境的需要,我們構(gòu)想將自然語言處理(Natural Language Processing,NLP)技術(shù)整合應(yīng)用至機器人,實現(xiàn)信息采集和交流反饋的主要功能,最終以文本+語音的形式進行輸出。
人工信息采集工作重復(fù)、枯燥且效率較低,采用機器人進行信息采集相當(dāng)于機器人提問,人來回答,可以實現(xiàn)自動化、智能化和高效化。信息采集技術(shù)路線:(1)預(yù)置問題庫;(2)將問題文本轉(zhuǎn)語音輸出;(3)采集用戶回答的語音;(4)調(diào)用語音識別模塊將語音轉(zhuǎn)文字;(5)提取用戶回答的文本中的關(guān)鍵詞信息;(6)將對應(yīng)的問題和回答作為采集的信息存入數(shù)據(jù)庫。
交流反饋則是機器人通過采集聲音信號,檢測語音信息,傳輸至本地知識庫和云端服務(wù)器中尋找相應(yīng)匹配信息,確認答案后以語音和文本的形式輸出反饋。人機交互式的信息采集與交流反饋既可以從病毒傳播途徑上降低傳染風(fēng)險,又能夠利用預(yù)設(shè)問答庫完成反饋,有效節(jié)約了人力資源。
3? 智能語音交互機器人總體設(shè)計(Overall design of intelligent voice interactive robot)
智能語音交互機器人的整體框架有兩層:云端服務(wù)平臺位于云端服務(wù)器(本例中采用科大訊飛開放云平臺作為云端服務(wù)器),云端保存著由海量數(shù)據(jù)通過深度學(xué)習(xí)訓(xùn)練而成的各種模型,可降低終端的解析壓力,為系統(tǒng)提供一系列在線支持,主要是對本地計算機向云端發(fā)送的數(shù)據(jù)包提供解析、反饋與下載等服務(wù)——包括語音識別、語義理解、語音合成等。本地計算機交互系統(tǒng)主要分為三層:最底層是物理層,為Linux內(nèi)核,是系統(tǒng)運行環(huán)境(本例中采用Ubuntu 16.04系統(tǒng)),對應(yīng)的機器人操作系統(tǒng)ROS版本為kinetic;其次是中間層,該層主要是第三方庫以及ROS操作系統(tǒng);最上層稱為應(yīng)用層,主管系統(tǒng)的業(yè)務(wù)處理邏輯,可根據(jù)任務(wù)需要設(shè)置功能模塊區(qū),如在隔離病房中的計算機需具備“病情匯報”“內(nèi)外交流”等功能。系統(tǒng)架構(gòu)如圖1所示。
3.1? ?基于在線云平臺的語音交互
智能語音交互機器人主要模塊包含語音采集、語音喚醒、語音檢測、云端識別、本地知識庫檢索、圖靈機器人交互、語音合成、輸出設(shè)備播放、判斷結(jié)束,從而構(gòu)成邏輯完整、滿足功能需要的語音交互系統(tǒng)。在線語音交互流程如圖2所示。
語音采集是控制麥克風(fēng)采集音頻將其轉(zhuǎn)換為可供后續(xù)流程使用的信號,在系統(tǒng)中以wav文件形式保存。定義get-audio()函數(shù)來設(shè)定麥克風(fēng)使用參數(shù),如CHANNELS(聲道數(shù))和RATE(采樣率)等,從而實現(xiàn)麥克風(fēng)采集數(shù)據(jù)的功能。
語音喚醒環(huán)節(jié)是通過識別輸入的音頻信號中特定的詞語,當(dāng)識別引擎計算得分超過預(yù)設(shè)的門限值時,返回喚醒結(jié)果為“真”,回調(diào)預(yù)設(shè)的函數(shù),進行下一步的處理。
語音檢測是對采集的音頻文件進行分析,判斷是否有有效語音數(shù)據(jù)輸入,并且檢測語音文件是否符合識別要求,實際上是對環(huán)境噪聲等低相關(guān)性的過濾,以及對不規(guī)范音頻文件的篩選。通過對CHANNELS(聲道數(shù))和RATE(采樣率)等參數(shù)的調(diào)用判別,提高采樣精度,則能更好完善用戶體驗。
語音識別模塊是將語音輸入轉(zhuǎn)為文本輸入的過程,基于科大訊飛開放平臺所提供的適用于Linux系統(tǒng)下的軟件開發(fā)工具包(Software Development Kit,SDK),本地計算機對語音提問進行錄制、檢測并上傳至云端識別引擎,轉(zhuǎn)換成文本數(shù)據(jù)后,通過互聯(lián)網(wǎng)重新返回到使用者終端。通過val=os.popen()函數(shù)執(zhí)行訊飛SDK包并將返回結(jié)果保存在文件中,并利用函數(shù)readlines()循環(huán)查詢找到語音識別的結(jié)果,截取結(jié)果,輸出到用戶終端。因此,到“科大訊飛云端識別”的步驟為止完成了對用戶的語音提問轉(zhuǎn)為文本數(shù)據(jù)的過程,后續(xù)步驟會進一步提交文本數(shù)據(jù)進行問答匹配與語音合成輸出。
檢索知識庫是先讀取本地知識庫,將語音識別出的文本數(shù)據(jù)導(dǎo)入其中匹配,若存在匹配項,則返回為“真”,并將匹配文本數(shù)據(jù)導(dǎo)入科大訊飛SDK文件,轉(zhuǎn)語音合成輸出;若不存在匹配項,則調(diào)用圖靈機器人,將識別出的文本數(shù)據(jù)進行在線檢索。Fo=open()函數(shù)用來打開知識庫,readlines()函數(shù)將知識庫讀取為列表變量,進行結(jié)果查詢。本步驟完成了問答匹配流程,并提供了本地知識庫匹配和云端知識庫匹配兩種途徑。
語音合成即從文本輸入到語音輸出的過程,把知識庫匹配的答案上傳至云端服務(wù)器,轉(zhuǎn)為語音數(shù)據(jù)后返回用戶終端播放。在線語音聽寫和在線語音合成都屬于通過音頻文件/文本文件向云端識別引擎請求服務(wù)并獲得識別結(jié)果的方式,相較于建立傳輸控制協(xié)議/互聯(lián)協(xié)議(Transmission Control Protocol/Internet Protocol,TCP/IP)長連接的方式發(fā)送實時音頻數(shù)據(jù)流的方式,前者實時性較差但不必長時間占用計算機資源。通過os.popen()函數(shù)執(zhí)行科大訊飛的語音合成SDK文件,以匹配所得的文本數(shù)據(jù)為對象,生成wav格式的音頻文件,并將該文本數(shù)據(jù)輸出到終端,實現(xiàn)語音和文字兩種形式輸出。
設(shè)備輸出音頻是通過調(diào)用生成的語音文件輸出給外設(shè)麥克風(fēng)實現(xiàn)的。利用os.popen()函數(shù)調(diào)用play指令播放音頻,并根據(jù)合成音頻文件的文本數(shù)據(jù)長度決定暫停時間長短,保證語音輸出的完整性。
3.2? ?離線語音交互
針對涉密或隱私情況下離線語音交互的需要,可將基于云端服務(wù)器的識別處理轉(zhuǎn)為發(fā)送至本地計算機進行。通過更改各節(jié)點間的訂閱關(guān)系,將原發(fā)送至云平臺的數(shù)據(jù)轉(zhuǎn)發(fā)給本地程序處理,以實現(xiàn)離線的語音交互。
其基本步驟是:語音交互系統(tǒng)啟動后,由用戶輸入指定喚醒詞,將系統(tǒng)由待機狀態(tài)喚醒至工作狀態(tài),調(diào)用system()函數(shù)對用戶的提問進行錄音,生成指定wav文件。利用回調(diào)函數(shù)將該wav文件輸入科大訊飛離線語音識別SDK進行識別,識別理解轉(zhuǎn)化成文本數(shù)據(jù)返回。調(diào)用system()函數(shù)對文本數(shù)據(jù)進行獲取,將問題文本數(shù)據(jù)導(dǎo)入預(yù)先編好的本地語料庫中進行匹配,得到對應(yīng)的回復(fù)文本數(shù)據(jù)。利用回調(diào)函數(shù)將該回復(fù)文本數(shù)據(jù)輸入科大訊飛離線語音合成SDK進行合成,得到特定內(nèi)容的wav音頻文件。最后調(diào)用system()函數(shù)對合成的wav音頻文件進行播放,即完成一次完整的語音交互過程。
3.3? ?基于語音交互的信息采集
信息采集功能是通過機器人主導(dǎo)交互實現(xiàn)的。利用科大訊飛離線的語音合成SDK文件將設(shè)定的問題處理為語音,再通過揚聲器播放出來,被采集者聽到問題的反饋將被麥克風(fēng)收錄,SDK文件將語音文件識別為文本,提取關(guān)鍵詞。作為采集信息,機器人將問題和對應(yīng)采集信息存入數(shù)據(jù)庫,實現(xiàn)了無接觸的信息采集功能。
交流反饋功能是通過使用者主導(dǎo)交互實現(xiàn)的。先通過語音喚醒,使機器人調(diào)用麥克風(fēng)采集聲音,然后將聲音信號發(fā)至基于科大訊飛開放平臺的語音識別模塊,提取識別結(jié)果并在知識庫中檢索,將得到的相關(guān)文本發(fā)至語音合成模塊,再將輸出結(jié)果連入揚聲器播放,最終反饋至使用者。信息采集與交流反饋流程圖如圖3所示。
3.4? ?語音交互機器人在病房中的實際應(yīng)用
經(jīng)過對體積與應(yīng)用性的考量,該機器人采用樹莓派(M4PB型)作為硬件載體,以體積小和集成度高適應(yīng)便攜性需求,并且應(yīng)用了科大訊飛開放云平臺的在線資源和本地語料庫,通過將語音數(shù)據(jù)經(jīng)由網(wǎng)絡(luò)傳輸?shù)皆贫朔?wù)器,利用云計算技術(shù)得到識別結(jié)果并返回。云端資源豐富,可以更好地利用知識庫資源,同時本地語料庫的準備適用于不同情況下的不同需要,分析設(shè)計其相對應(yīng)的資料庫,并延伸相關(guān)的可靠性設(shè)計與適應(yīng)性設(shè)計,可以實現(xiàn)更廣泛的用途。語音交互系統(tǒng)采用ROS節(jié)點消息發(fā)布和訂閱機制。ROS是開源的機器人操作系統(tǒng)軟件,提供類似于操作系統(tǒng)的服務(wù)。ROS通過將龐大繁雜的系統(tǒng)任務(wù)切分成功能單一的子任務(wù),再通過以消息或服務(wù)的方式將子任務(wù)鏈接起來形成可以完成復(fù)雜任務(wù)的系統(tǒng),實現(xiàn)代碼復(fù)用,降低設(shè)計難度,同時ROS支持C、Python多編程語言,功能包豐富,測試方便。在通信過程中,節(jié)點將消息以特定主題發(fā)布到ROS核心控制器,ROS核心控制器異步地將該消息轉(zhuǎn)發(fā)給訂閱該主題的節(jié)點進而實現(xiàn)通信。ROS節(jié)點消息傳遞示意圖如圖4所示。
4? ?優(yōu)化設(shè)計(Optimal design)
由于采樣識別的開放式環(huán)境會帶來大量數(shù)據(jù)和樣本,易造成數(shù)據(jù)冗雜和過擬合問題,并且計算機一一識別將會提高識別難度并增加運算時間,進而降低產(chǎn)品的使用壽命,因此語音數(shù)據(jù)預(yù)處理和特征工程,即對數(shù)據(jù)進行降噪、轉(zhuǎn)換和分類的專項篩選處理可以節(jié)省大量資源并提高語音交互模型性能。本系統(tǒng)從以下四個方面進行處理。
(1)特征提取
特征提取是通過以相對較低的數(shù)據(jù)采樣速率將波形數(shù)據(jù)轉(zhuǎn)換為參數(shù)表示形式,而后進行后續(xù)處理和分析來完成的。這通常稱為前端信號處理,它將經(jīng)過處理的波形語音信號通過函數(shù)如感知線性預(yù)測(PLP)、線性預(yù)測編碼(PC)和頻率倒譜系數(shù)(MFCC),轉(zhuǎn)換成一種簡潔而有邏輯的表示形式,比實際信號更有鑒別性和可靠性。
(2)特征降維
數(shù)據(jù)降維是在降低特征數(shù)量的同時,盡可能保留原數(shù)據(jù)主要的信息,利用同一特性的最優(yōu)特征篩除冗余特征,最終得到對構(gòu)建模型最有貢獻度的特征。降維處理后的數(shù)據(jù)集合具有更小的規(guī)模,這樣的集合更易于儲存并且可以有效降低運算的復(fù)雜性,還可以大幅降低模型的復(fù)雜性,防止過擬合的情況出現(xiàn)。
(3)特征過濾
特征過濾是特征選用方法中最為常見和基本的一種,可以通過設(shè)立閾值來限制無關(guān)數(shù)據(jù)的輸入,比如在喚醒程序中設(shè)置音量閾值,可以簡單有效地過濾外部雜音和自身移動碰撞產(chǎn)生的噪音,大幅降低運算的復(fù)雜程度和運算資源的占用量。
(4)特征構(gòu)造
特征構(gòu)造是建立使用者或使用環(huán)境下常見有效輸入的聲學(xué)模型(例如在病房中使用時構(gòu)造出現(xiàn)頻度高的醫(yī)學(xué)詞匯),通過近似模型來過濾差異較大的無關(guān)信息,將擬合程度高的特征信息輸入系統(tǒng),大幅減少數(shù)據(jù)處理量。
語音材料的預(yù)處理在特征工程之前進行。預(yù)處理的步驟是預(yù)強調(diào)(濾波)—幀阻塞(將語音信號按幀分割)—語音信號加窗(加漢明窗和矩形窗對信號進行均勻化處理),以及必要的降噪與放大處理等。
5? 實驗結(jié)果與分析(The results and analysis of experiment)
5.1? ?實驗環(huán)境
硬件配置由樹莓派4 B、樹莓派3 B+和語音版組成,內(nèi)置4核處理器ARMv7 process rev3,主頻1500 MHz,內(nèi)存容量1.00 GB,磁盤容量16 GB。搭載Ubuntu 16.04 LST系統(tǒng)+ROS系統(tǒng),Linux內(nèi)核版本為4.19.75-v71,ROS系統(tǒng)版本為kinetic。實驗環(huán)境配置如表1所示。
5.2? ?實驗結(jié)果
在線語音交互流程是:(1)人與智能機器人進行語音交互;(2)智能機器人通過麥克風(fēng)對交互語音進行采集,生成語音wave文件;(3)語音識別節(jié)點通過互聯(lián)網(wǎng)將wave語音文件傳輸?shù)娇拼笥嶏w語音識別服務(wù)器,科大訊飛語音識別服務(wù)器通過智能語音識別算法將語音文件識別并轉(zhuǎn)換成文本文件,通過互聯(lián)網(wǎng)發(fā)回智能機器人終端;(4)語言處理節(jié)點將識別出的文本通過互聯(lián)網(wǎng)發(fā)送到在線圖靈機器人;(5)在線圖靈機器人通過傳入的文本內(nèi)容和前后文語境,在知識庫中查找最佳的回復(fù)信息,并通過互聯(lián)網(wǎng)傳回智能機器人終端;(6)語音合成節(jié)點收到圖靈機器人的文本回復(fù)信息后,將其再次發(fā)送到科大訊飛云在線語音合成平臺;(7)科大訊飛云在線語音合成系統(tǒng)將文本內(nèi)容轉(zhuǎn)換成語音數(shù)據(jù),以MP3格式文件發(fā)給智能機器人;(8)智能機器人通過音頻輸出接口播放回復(fù)的語音文件,完成語音數(shù)據(jù)輸出。詢問天氣的語音交互過程如圖5所示。
基于語音交互的信息采集是機器人提問,由人來回答問題,完成信息采集任務(wù)??蓪柎鹞谋緦崟r合成語音,也可提前把設(shè)定好的信息采集音頻合成好,不用每次信息采集的時候當(dāng)場合成,提高程序運行效率。由機器人詢問并采集某用戶姓名、編號、體溫的語音交互過程如圖6至圖8所示。
通過測試,得到語音交互系統(tǒng)的各項參數(shù)如表2所示。
6? ?結(jié)論(Conclusion)
在人工智能技術(shù)飛速發(fā)展的今天,智能化的設(shè)備已經(jīng)融入人們生活的方方面面,提高了生活的便捷性。本文設(shè)計了應(yīng)用于疫情防控與病情監(jiān)測的ROS智能語音交互機器人,通過對錄入音頻信號的預(yù)處理和特征提取,利用科大訊飛SDK文件和圖靈機器人模塊,以及有針對性的知識庫,同時充分考慮信號復(fù)雜性,設(shè)計降噪濾波方案,實現(xiàn)了無接觸式智能語音交互,減輕了醫(yī)護人員的工作量并從傳播途徑上降低了感染風(fēng)險。由于并未考慮多階段對話中復(fù)雜邏輯交互的情況,對話時邏輯復(fù)雜會對語義理解造成不利影響,比如上下文理解困難、微型機算力不足等,因此設(shè)計并優(yōu)化多階段復(fù)雜邏輯的識別和處理能力將是下一步研究的重點。
參考文獻(References)
[1] 戴禮榮,張仕良.深度語音信號與信息處理:研究進展與展望[J].數(shù)據(jù)采集與處理,2014,29(02):171-179.
[2] 林楓亭,羅藝,孔凡立,等.一種基于云平臺的智能機器人語音交互系統(tǒng)設(shè)計[J].電子測試,2018(Z1):40-42.
[3] 楊國慶,黃銳,李健,等.智能服務(wù)機器人語音交互的設(shè)計與實現(xiàn)[J].科技視界,2020(09):129-131.
[4] 秦偉.基于語音的人機交互平臺的設(shè)計與實現(xiàn)[D].武漢:華中科技大學(xué),2019.
[5] Shenzhen Aukey Smart Information Technology Co., Ltd.. "AI Voice Interaction Method, Device And System" in Patent Application Approval Process (USPTO 20200105268)[J]. Telecommunications Weekly, 2020.
[6] YAO D, KATIE S T. Bridging the gap in mobile interaction design for children with disabilities: Perspectives from a pediatric speech language pathologist[J]. International Journal of Child-Computer Interaction, 2020:23-24.
[7] 楊加平.面向指控系統(tǒng)的嵌入式語音交互技術(shù)設(shè)計與實現(xiàn)[J].機械與電子,2015(04):72-74.
[8] 廖彬全,羅佩,馬遠佳.基于智能語音交互系統(tǒng)的翻譯機器人[J].信息與電腦(理論版),2019,31(17):110-112.
[9] 陳鑫源.智能語音交互技術(shù)及其標準化[J].電聲技術(shù),2018, 42(05):78-80.
[10] 郝歐亞,吳璇,劉榮凱.智能語音識別技術(shù)的發(fā)展現(xiàn)狀與應(yīng)用前景[J].電聲技術(shù),2020,44(03):24-26.
作者簡介:
何? ?松(1988-),男,碩士,講師.研究領(lǐng)域:模式識別,人工智能.
黃? ?維(1999-),男,本科生.研究領(lǐng)域:自然語言處理.
吳昔遙(1999-),男,本科生.研究領(lǐng)域:自然語言處理.
周曾豪(2000-),男,本科生.研究領(lǐng)域:自然語言處理.
楊東澤(2000-),男,本科生.研究領(lǐng)域:自然語言處理.