赛马会26码会员图|香港赛马会怎么去|

面向兒童的智能聊天機器人設計

2020-02-07 13:02:52 物聯網技術 2020年1期

朱向慶 朱萬鴻 何昌毅 甘海杰 陳澤銳

摘 要:文中設計可陪伴孩子聊天的機器人,以STM32F103ZET6單片機為控制中心,使用SYN7318語音識別模塊、PAJ7620手勢識別模塊、OpenMV3 Cam M7攝像頭模塊、WiFi模塊、HMI觸摸屏和GSM模塊等完成語音識別、合成,MP3播放,手勢、圖像獲取及識別,遠程語音通話。實驗結果證明,所提系統能對語音進行準確的識別,并做出相應的動作;識別到關鍵詞時開啟遠程親子互動,家長可通過智能手機遠程查看兒童的狀態信息及相關圖片。系統性能良好,操作簡便,成本低廉,適合在智能化市場推廣應用。

關鍵詞:聊天機器人;手勢識別;語音識別;語音合成;圖像獲取;語音通話

中圖分類號:TP273;TN915文獻標識碼:A文章編號:2095-1302(2020)01-00-04

0 引 言

目前,國內外出現了眾多功能各異的聊天機器人,但是很多聊天機器人缺乏語料庫,只能在一定程度上解決人們的問題。在個別領域,人工智能的發展可以很快被應用到聊天機器人身上,但是整體來說還有待加強[1]。而同時兼備語音、圖像及手勢識別功能的聊天機器人相對較少[2]。

現如今,很多家長經常都會因為工作繁忙,沒能照顧孩子,甚至讓孩子獨自留在家中,導致孩子嚴重缺乏與家長的交流互動。針對于此現象,專門設計一款可陪伴孩子聊天的機器人。它能夠與孩子進行智能對話,模仿家長回答孩子日常生活中所遇到的“為什么”,還可以通過實時監控了解孩子的情緒問題并及時處理。本聊天機器人自帶智能攝像頭,能實時捕獲家里及孩子的情況,家長可通過智能手機遠程連接聊天機器人,與小孩進行語音通話。同時,聊天機器人含智能串口觸摸屏,可結合語音識別進行相關界面的切換。

1 系統的硬件結構

本系統硬件結構如圖1所示,它以STM32F103ZET6微控制器為核心,搭載OpenMV3攝像頭模塊、USART HMI智能串口觸摸屏、GPRS/GSM模塊IoT-GA6、WiFi模塊ESP8266、手勢識別模塊PAJ7620、語音識別模塊SYN7318和舵機等。

STM32F103ZET6是意法半導體公司(ST公司)推出的一款以ARM Cortex-M3為內核的32位微控制器,擁有144個引腳,112個通用I/O口,512 KB的FLASH ROM及64 KB的SRAM,具有3路12位的A/D轉換器,2路12位D/A輸出,4個通用定時器,2個高級定時器,2個基本定時器,3路SPI接口,2路I2C接口,5路USART,1個USB從設備接口,1個CAN接口,1個SDIO接口,兼容SRAM,NOR和NAND FLASH接口的16位總線FSMC[3-4]。STM32F103ZET6內部資源豐富,完全滿足設計要求。

1.1 SYN7318語音識別模塊

語音服務采用龍邱科技的SYN7318 中文語音交互模塊,它集成非特定語音識別、語音合成、語音喚醒和MP3音頻播放功能[5]。SYN7318中文語音交互模塊的UART與STM32串口直接相連,接收命令幀,如控制命令幀、待合成的文本數據,或將語音識別結果發送給STM32單片機。

1.2 手勢識別模塊

手勢識別使用ATK-PAJ7620模塊,其內部采用的PAJ7620U2傳感器是原相科技(Pixart)的一款內部集成光學陣列式傳感器。該模塊具有體積小、功能多、反應快等特點,支持9種手勢識別,輸出速率高達240 Hz,支持接近檢測和物體大小識別,兼容3.3 V與5 V系統。STM32單片機通過I2C通信協議與ATK-PAJ7620模塊通信。

1.3 OpenMV3攝像頭模塊

聊天機器人采用OpenMV3 CAm M7攝像頭模塊獲取家里的圖像信息,OpenMV是低成本、可擴展、基于MicroPython機器視覺的模塊,它是一個可編程的攝像頭,內置一些圖像處理算法,通過MicroPython語言可以實現自定義邏輯[6-7]。OpenMV通過串口與STM32相連,完成數據交換。

1.4 MG90S舵機模塊

借助舵機MG90S控制攝像頭模塊,可以自動切換攝像頭視角。MG90S舵機的控制信號是周期為20 ms的脈寬調制(PWM)信號,其中脈沖寬度為0.5~2.5 ms,相對應舵盤的位置為0°~180°,呈線性變化。STM32的PWM輸出口PC6連接舵機MG90S的控制線,通過輸出不同的占空比控制舵機的旋轉角度,完成攝像頭的視覺切換。

1.5 GPRS/GSM模塊

為實現語音通話服務,使用GPRS/GSM模塊IoT-GA6,它支持2G,3G,4G的移動卡或聯通卡,支持數字音頻和模擬音頻,支持標準AT和TCP/IP命令,其尺寸小,功耗低,能提供完善的GPRS/GSM短信、數據傳輸及語音通話服務。為用戶提供遠程互動的語音通話功能。GPRS/GSM模塊控制方式為串口,它與STM32串口直接相連,以完成數據交換。

1.6 HMI顯示屏模塊

系統使用USART HMI智能串口觸摸屏實現人機交互,該觸摸屏具有解析度高、傳輸速度快、存儲空間大、穩點性高、使用方便的優點。觸摸屏封裝好底層功能以后,通過串口與用戶STM32單片機進行交互。

單片機可以隨時通過串口發指令通知設備:切換某個頁面或者改變某個組件的屬性。設備也可以隨時通過串口通知操作者:目前觸摸頁面上的某個組件或者設備進入某個頁面。

1.7 WiFi模塊

借助ESP8266 WiFi模塊和互聯網,當系統連接服務器后,家長可以在手機端遠程查看家庭狀況,或通過GPRS/GSM模塊與小孩通話,進行遠程互動。WiFi模塊內置樂鑫公司出品的物聯網芯片ESP8266。該模塊可工作于三種模式:AP模式、Station模式以及混合模式。STM32單片機通過串口連接WiFi模塊,使用AT指令進行控制,完成通信[8-9]。

遠程服務器工作框架如圖2所示,它使用百度智能云服務器及圖靈機器人服務器,其中百度智能云負責語音識別,圖靈機器人負責回答問題[10]。所有的數據都通過ESP8266模塊上傳至服務器,完成STM32與服務器的數據交換,實現遠程監控及在線語音服務。

2 軟件設計與實現

為提高系統穩定性和實時性,STM32單片機程序使用FreeRTOS操作系統[11],用Keil μVision 5軟件編寫,編譯生成的機器碼由ST-LinkV2仿真器下載至單片機[12];OpenMV的程序則采用Python語言設計[13]。

HMI觸摸屏使用USART HMI軟件編寫控件及指令代碼,編譯生成的*.tft文件放置于SD卡中,SD卡插進HMI觸摸屏SD卡槽,HMI觸摸屏自帶的控制器會自動讀取該文件完成燒寫功能,燒寫完成后斷電,拔掉SD卡即可。

2.1 FreeRTOS系統任務設計

FreeRTOS是一個輕量級的操作系統,能夠簡化應用軟件的設計,縮短開發時間,并為系統提供實時性和可靠性[14-16]。

圖3是FreeRTOS系統各任務流程,開機后初始化各模塊及外部設備,并建立多個任務及其運行環境,隨即開啟任務調度,始終運行高優先級任務。

2.1.1 任務1:語音聊天

任務1首先創建一個語音識別二值信號量,并用于任務同步。當串口接收到語音喚醒指令后,釋放該信號量,系統立即任務同步,隨即啟動錄音并把錄音文件上傳至百度語音服務器進行識別,識別完成后將結果上傳至圖靈語音聊天服務器進行匹配語音回答,最后播放語音回答。識別結果為相關操作時,將控制系統對應模塊。如果系統的WiFi模塊未連接上熱點,那么將匹配自定義本地庫進行語音回答。

2.1.2 任務2:手勢識別

任務2負責手勢識別,其能夠識別向上、向下、向左、向右、向前、向后、順時針、逆時針和揮動共9種手勢,同時還支持接近識別。當檢測到人的相關手勢后,會執行相應的動作。例如:當檢測到人接近時,自動喚醒系統,并通過SYN7318中文語音交互模塊合成提示語;當檢測到手勢時,執行兒歌的播放、暫停、上一首、下一首等;當檢測到人離開時,系統進入睡眠模式,以降低功耗。手勢識別每250 ms檢測一次,隨即切換為接近檢測,兩種識別模式一直循環下去。

2.1.3 任務3:人機交互

任務3主要是人機交互界面的操控,接收語音及手勢的操控指令,進行圖形化界面的切換。當觸摸顯示屏相關界面的按鈕時,會同步語音及攝像頭模塊進行動作。例如,在撥號界面時,號碼的輸入及修改等操作由上位機編寫的固件程序自動處理,只有點擊撥號按鈕,才向主控器發送撥號指令,主控器根據指令執行相關模塊動作,同時顯示屏與主控器實時交換數據,同步圖形化界面的更新。最后任務掛起200 ms。

2.1.4 任務4:WiFi自動重連

任務4以1 s的時間間隔檢查網絡狀態,當網絡斷開時,系統自動重連熱點;當系統連上互聯網后,與服務器交換數據。

2.1.5 任務5:圖像識別

任務5主要用于圖像識別后的相應操作。系統的圖像識別功能可以識別小孩的面部表情和行為動作,進而進行對應的交流。當OpenMV檢測某個自定義人臉(如孩子“哭”的表情)時,就會將該表情信息傳遞到單片機,接收到表情的單片機會將其與對應的操作進行匹配并做出對應處理,如播放愉快的兒歌。用戶可以自定義錄入孩子不同時候的表情,再選擇不同的界面并播放不同的歌曲。每識別完一次表情,任務掛起2 s。

2.2 OpenMV程序設計

OpenMV是基于Python的嵌入式機器視覺模塊,它成本低、易拓展,開發環境友好,除了用于圖像處理外,還可以用Python調用其硬件資源,進行I/O控制,與現實世界進行交互。OpenMV的程序采用Python語言設計,它負責圖像捕獲、追蹤和識別,并將圖像信息上傳到服務器。OpenMV程序流程如圖4所示,在程序開始時,初始化ESP8266并捕獲攝像頭的圖像信息。若未捕獲到孩子的面部或動作信息,會自動調節舵機,再次進行圖像捕獲;若捕獲到孩子的面部或動作信息,則將其與本地庫圖像進行快速對比,直到匹配到最合適的庫,并輸出該庫的信息,通過串口傳輸到單片機。另外,當OpenMV接收到服務器回傳的“監控”信號后,會將此時捕獲的孩子圖像傳輸到遠程服務器端,供家長遠程查看。

3 實驗結果

圖5為硬件實物。實驗結果證明,系統能夠正常運行,可實現語音聊天,并且根據結果做出相應的動作。系統手勢識別準確率高,圖像識別、語音通話、遠程控制、監控等運行良好。語音識別率達到98%,識別后語音回答有2~3 s的延遲;圖像識別率達到95%,響應延遲1~2 s。

4 結 語

本文通過互聯網、云服務器、圖像識別、語音識別和語音合成等技術,成功研制出可陪伴孩子成長的機器人。實驗證明采用互聯網方式,語音及圖像的識別率都得到明顯提高。由于人的表情圖像具有動態性,其識別效果良好。系統性能良好、實時性較高、成本較低,適合在智能化市場上推廣應用。

參 考 文 獻

[1]朱思坤.聊天機器人對話一致性和可延續性的研究[D].重慶:重慶大學,2018.

[2]王浩暢,李斌.聊天機器人系統研究進展[J].計算機應用與軟件,2018,35(12):1-6.

[3]張勇.ARM Cortex-M3嵌入式開發與實踐:基于STM32F103[M].北京:清華大學出版社,2017.

[4]朱向慶,何昌毅,朱萬鴻,等.基于STM32單片機的通信技術實驗系統設計[J].實驗技術與管理,2019,36(8):81-84.

[5]劉堯,祝小雅,胡安正.基于SYN7318語音識別的智能家居嵌入式控制系統設計與開發[J].電子制作,2019(12):18-19.

[6]劉義亭,董夢超,黃家才,等.基于OpenMV的目標跟蹤系統設計[J].南京工程學院學報(自然科學版),2019,17(1):39-44.

[7]梅妍玭,傅榮.基于OpenMV的3D定位識別系統[J].新技術新工藝,2018(2):50-52.

[8]常欣,王琦.用STM32和ESP8266實現的可擴展物聯網系統[J].單片機與嵌入式系統應用,2018,18(12):58-61.

[9]張延順,景加榮,黃濤,等.基于ESP8266的分子泵無線監控系統設計與實現[J].工業儀表與自動化裝置,2019(3):106-110.

[10]林承師.基于Java平臺與圖靈聊天機器人的接入實現[J].信息與電腦(理論版),2018(21):113 -116.

[11]朱迪.FreeRTOS實時操作系統任務調度優化的研究與實現[D].南京:南京郵電大學,2015.

[12]夏傳東.淺談ST-LINK調試器的時間線調試技巧[J].單片機與嵌入式系統應用,2017,17(8): 25-28.

[13]劉鵬,張燕,李肖俊,等.Python語言[M].北京:清華大學出版社,2019.

[14] GUAN F,PENG L,PERNEEL L,et al. Open source FreeRTOS as a case study in real-time operating system evolution [J]. Journal of systems and software,2016,118: 19-35.

[15]劉迎澍,楊珂,丁緯航.基于FreeRTOS的智能用電監控系統[J].電子設計工程,2017,25(21):157 -160.

[16]劉火良,楊森.FreeRTOS內核實現與應用開發實戰指南:基于STM32[M].北京:機械工業出版社,2019.

?
赛马会26码会员图
顶呱刮 25选7中奖规则 貔喜脉动棋牌倒闭了吗 新浪竞彩篮球比分直搐 即时比分-中国足彩网比分直播 黑龙江十一选五 贴吧文赚钱吗 6个数复式四中四多少组 云南时时彩计划 gtv网络棋牌频道象棋