佘彩東 肖培 宮鶴 胡天立
摘 ?要:目前,語音交互系統(tǒng)大多數(shù)為一對一模式,為了解決這一問題,設(shè)計了一套基于人臉識別的語音交互系統(tǒng),實現(xiàn)了一對一到一對多模式的轉(zhuǎn)換。系統(tǒng)的硬件部分選用開源硬件領(lǐng)域中較為高階的樹莓派3代b+開發(fā)板,運行l(wèi)inux操作系統(tǒng),圖像采集裝置為500萬像素攝像頭,音頻輸入裝置為即插即用的USB麥克風(fēng);系統(tǒng)軟件部分的開發(fā)語言為Python這一腳本語言。
關(guān)鍵詞:語音交互系統(tǒng);人臉識別;樹莓派3代;Python;API
中圖分類號:TP391.4 ? ? ? 文獻標(biāo)志碼:A 文章編號:2095-2945(2019)13-0111-03
Abstract: At present, most of the speech interaction systems are one-to-one mode. In order to solve this problem, a set of speech interaction system based on face recognition is designed, and the conversion from one-to-one to one-to-many mode is realized. In the hardware part of the system, the higher order raspberry pie third generation b+development board in the open source hardware field is selected, which runs Linux operating system. The image acquisition device is a 5 million pixel camera, and the audio input device is a USB microphone for plugging and playing. The development language of the software part of the system is Python, which is a script language.
Keywords: speech interaction system; face recognition; Raspberry Pie Generation 3; Python; API
傳統(tǒng)的人機交互中信息的輸入主要是通過按鍵或者觸摸屏來完成,并通過顯示器實現(xiàn)輸出,該方式較為被動,且在某些領(lǐng)域中,存在相關(guān)缺陷,例如在車載交互系統(tǒng)中,使用該方式則會存在相關(guān)的安全隱患。
語音交互系統(tǒng)作為目前人機交互中的新寵兒,在工業(yè)控制、軍事、醫(yī)療等領(lǐng)域中得到了大量應(yīng)用,與傳統(tǒng)的交互系統(tǒng)相比,語音交互系統(tǒng)更為主動。目前,語音交互系統(tǒng)大多數(shù)為一對一模式,即不管使用用戶為何人,系統(tǒng)都會將其歸為同一用戶,為了解決這一問題,通過結(jié)合人臉識別技術(shù)設(shè)計了一套基于人臉識別的語音交互系統(tǒng),實現(xiàn)了一對一到一對多模式的轉(zhuǎn)換。
考慮到整個系統(tǒng)除了負責(zé)圖像以及語音數(shù)據(jù)的采集與處理之外,還需要運行對應(yīng)的圖形界面以及應(yīng)用程序,而普通的單核開發(fā)板很難滿足設(shè)計要求。因此整個系統(tǒng)采用主頻為1.2GHz的四核樹莓派3代b+開發(fā)板,該開發(fā)板在性能上能夠完美的達到設(shè)計要求。
1 語音識別及人臉識別介紹
1.1 語音識別技術(shù)
語言作為人們生活中最常用的信息交互方式,如果機器能夠通過語言來與人進行信息交互,是不是能夠為人們提供更便捷的服務(wù),于是語音識別技術(shù)應(yīng)運而生。語音識別技術(shù)起始于20世紀(jì)50年代,由貝爾實驗室Davis等人使用模擬電路實現(xiàn)了一臺10個英文數(shù)字的語音識別系統(tǒng)AUDREY。20世紀(jì)60年代末Baum等人將隱馬爾科夫模型(HMM)加入語音識別領(lǐng)域。之后各種新技術(shù)的逐漸出現(xiàn),使得語音識別技術(shù)逐漸成熟?,F(xiàn)在,語音識別正朝著自然連續(xù)語音的方向發(fā)展。
1.2 人臉識別技術(shù)
人臉識別是人體生物特征識別方法中的一個主要研究方向,它具有主動性、非侵犯性和用戶友好等許多優(yōu)點。最早的自動人臉識別研究論文見于1965年Chan & Bledsoe在Panoramic Research Inc發(fā)表的技術(shù)報告,到現(xiàn)在已有五十多年的歷史。人臉識別可分為二維人臉識別和三維人臉識別,二維人臉識別易受光照、表情等因素的影響,使得識別準(zhǔn)確性受到限制,而三維人臉識別技術(shù)則能夠很好地解決這一問題,因此,通過三維信息數(shù)據(jù)進行人臉識別將是今后的主要研究手段。
2 系統(tǒng)硬件設(shè)計
圖1是系統(tǒng)的硬件結(jié)構(gòu)圖,系統(tǒng)的主控制器為樹莓派3代b+開發(fā)板,圖像采集部分采用可自動調(diào)焦的500萬像素攝像頭,語音采集部分采用即插即用的USB麥克風(fēng),顯示部分為一塊7寸HDMI接口的LCD觸控屏,最后的語音輸出則使用功率放大器加喇叭。
2.1 樹莓派3代b+開發(fā)板
樹莓派是一個信用卡大小的“卡片電腦”(Single board Computer,單板機)。包括運行頻率1.2GHz的Broadcom BCM2837芯片組、一個64位四核ARM Cortex-A53處理器、一個雙核Videocore IV@ 多媒體協(xié)處理器、一個1GB LPDDR2存儲器、四個USB 2.0接口、一個HDMI視頻接口、一個RCA音頻接口、一個CSI攝像機接口和40個GPIO口等,板載藍牙和WIFI,可連接電源、鍵盤、鼠標(biāo)和網(wǎng)線,具備PC機的基本功能。除了具備豐富的外部接口,還具有價格低、體積小、性能強、功率小、資源多等特點;支持raspbian、ubuntu、Android、Win10 IOT等多種操作系統(tǒng)。
綜上所述,樹莓派3代b+開發(fā)板的性能及其所具有的外設(shè)能夠很好地滿足系統(tǒng)設(shè)計要求。系統(tǒng)主要用到樹莓派中的HDMI視頻接口、RCA音頻接口、CSI攝像機接口和有一個USB接口。
2.2 其他模塊介紹
除了主控制器之外,系統(tǒng)還需要以下各個模塊協(xié)同工作才能實現(xiàn)設(shè)計要求:
微雪500萬像素攝像頭:該攝像頭兼容樹莓派的任何版本,支持自動調(diào)焦,自帶紅外補光燈,支持紅外夜視,感光芯片為OV5647。該模塊用于系統(tǒng)的圖像采集。
USB麥克風(fēng):高靈敏度,有效距離2米以上,即插即用,無需安裝任何驅(qū)動,適合任何一款帶USB接口的電腦機型。該模塊用于語音信號的采集。
7寸LCD電容觸摸液晶屏:800*480分辨率,顯示清晰,USB供電,與樹莓派3代開發(fā)板配套使用支持觸摸功能。該模塊用于界面的顯示。
TPA3116D2數(shù)字功放模塊:帶開關(guān)、音量可調(diào)、電源反接保護,雙聲道2*50W。該模塊用于語音信號的輸出。
3 系統(tǒng)軟件設(shè)計
3.1 軟件運行環(huán)境配置
系統(tǒng)通過調(diào)用百度語音的API接口來實現(xiàn)語音的識別與合成,調(diào)用圖靈機器人的API接口來實現(xiàn)智能對話,調(diào)用opencv庫來進行人臉檢測,調(diào)用face++API接口來進行人臉識別。
配置相關(guān)運行環(huán)境首先需要移植Raspbian操作系統(tǒng),然后通過apt-get配置好opencv相關(guān)運行環(huán)境,然后使用pip安裝API請求相關(guān)庫,主要有pyaudio、numpy、wave、picamera等,命令使用方法為pip install pyaudio。最后前往對應(yīng)網(wǎng)站申請相關(guān)apikey。
3.2 軟件執(zhí)行流程
如圖2所示,系統(tǒng)軟件執(zhí)行流程大致可分為三大步。
第一步為人臉檢測,此步驟使用HaarCascade來進行人臉檢測,需要用到識別人臉的XML文件在安裝opencv的時候已經(jīng)安裝完成,除了可以使用自帶的XML外,也可以自己訓(xùn)練所需的Cascade文件,在此不做詳細介紹,以下為部分代碼:
# 加載所需XML文件
face_cascade = cv2.CascadeClassifier( '/opencv/data/lbpcascades/lbpcascade_frontalface.xml' )
#對圖片進行灰度化處理
gray = cv2.cvtColor( image, cv2.COLOR_BGR2GRAY )
#調(diào)用函數(shù)檢測人臉,返回人臉坐標(biāo)列表
faces = face_cascade.detectMultiScale(gray)
在第一步檢測到對應(yīng)人臉之后,第二步就是調(diào)用face++的API接口來進行人臉識別,首先需要將第一步中識別的圖片進行base64編碼處理;接下來通過requests的post請求進行調(diào)用,將會返回對應(yīng)的JSON字符串,其中人臉唯一標(biāo)識字段是face_token;然后在本地數(shù)據(jù)庫中搜尋對應(yīng)標(biāo)識信息,如果存在對用用戶,則會加載對應(yīng)用戶配置信息用于接下來的語音識別,如果不存在該用戶,則會在本地數(shù)據(jù)庫中添加該用戶,以下為部分代碼:
#對圖片進行base64編碼處理
img_b64=base64.b64encode(dts.read())
#post請求,url_search為請求地址,post_face_compare為請求數(shù)據(jù)
r = requests.post(url_search, data=post_face_compare)
最后一步就是進行語音交互,在第二步中已經(jīng)加載對應(yīng)的用戶信息,也就是說系統(tǒng)現(xiàn)在已經(jīng)知道服務(wù)的對象為誰。該步驟首先會檢測是否有語音信號(通過設(shè)置對應(yīng)閾值實時檢測),有的話通過分別調(diào)用語音識別、智能回答、語音合成的API接口來進行實時交互,以下為部分代碼:
#獲取最大值,通過與閾值進行對比就可以判斷是否有語音信號
temp = np.max(audio_data)
#以wav格式存儲語音數(shù)據(jù),filename為文件名,save_buffer為語音數(shù)據(jù)
save_wave_file(filename, save_buffer)
#對語音信號進行base64編碼處理
speech_base64=base64.b64encode(s_file).decode(“utf
8”)
#使用post方法調(diào)用語音合成API
m_res=requests.post(url=asr_server,headers=m_header,data=json_data)
#調(diào)用圖靈機器人API接口獲取回答結(jié)果
r=requests.post(url,data=json.dumps(values))
#使用mpg123播放在線語音數(shù)據(jù)
os.system('mpg123 ?\“%s\” '%(geturl.encode('utf8')))
經(jīng)過測試,系統(tǒng)除了達到設(shè)計要求外,還具有很強的拓展性,通過修改本地用戶配置信息數(shù)據(jù)庫或圖靈機器人中的知識庫,系統(tǒng)可用于多種不同場合,例如用于智能家居時,通過在圖靈機器人的知識庫中添加對應(yīng)家電操作語句,就能夠識別對應(yīng)家電操作指令,通過在本地配置文件中添加用戶備忘錄字段,就能根據(jù)用戶的不同展示對應(yīng)的備忘信息。
4 結(jié)束語
該系統(tǒng)在現(xiàn)有語音交互系統(tǒng)的基礎(chǔ)上加以改進,添加人臉識別技術(shù),實現(xiàn)了語音交互系統(tǒng)由一對一到一對多模式的轉(zhuǎn)換,使系統(tǒng)的服務(wù)更加人性化。據(jù)中國報告大廳發(fā)布的《2014-2020年中國智能家居行業(yè)競爭格局分析及投資可行性分析報告》一文指出,預(yù)計到2020年國內(nèi)智能家居產(chǎn)業(yè)規(guī)模將達到3576億元。如果將該系統(tǒng)用作智能家居的交互系統(tǒng),其前景是十分廣闊的。
參考文獻:
[1]韋銀,王杰輝.基于語音識別模塊的家庭交互系統(tǒng)設(shè)計[J].福建電腦,2016,32(12):22-23.
[2]梁漢泉,陳錦彪.基于語音控制的人機交互智能系統(tǒng)研究[J].新技術(shù)新工藝,2015(09):84-86.
[3]卜秋月.基于OpenCV的人臉識別系統(tǒng)的設(shè)計與實現(xiàn)[D].吉林大學(xué),2015.
[4]夏振杰.基于人臉識別技術(shù)的身份認(rèn)證系統(tǒng)實現(xiàn)簡介[J].科技信息,2010.
[5]李生筆.基于OMAP5912平臺的人機語音交互系統(tǒng)[D].太原理工大學(xué),2008.
[6]李麟.家用機器人語音識別及人機交互系統(tǒng)的研究[D].哈爾濱工業(yè)大學(xué),2007.
[7]何昀.基于虹膜的人體特征識別方法研究與實現(xiàn)[D].東北師范大學(xué),2006.
[8]邴志剛,劉媛,崔世鋼.機器人開發(fā)平臺中語音交互系統(tǒng)的實現(xiàn)[J].天津職業(yè)技術(shù)師范學(xué)院學(xué)報,2004.