# 基於情感處理之情緒辨識聊天機器人 ### 使用說明 1. 請先註冊自己的Discord帳號並下載安裝Discord程式。 2. 建立一個自己的伺服器(或是和朋友一起的也可以)。 3. 請在網頁瀏覽器中點擊以下連結加入機器人至伺服器。 [作品機器人邀請連結](https://ppt.cc/fPP6Yx) [使用者問卷調查](https://forms.gle/Dfxq35xi4pfyGyuVA) [![](http://img.youtube.com/vi/v5ob6n9s0YM/0.jpg)](http://www.youtube.com/watch?v=v5ob6n9s0YM "基於情感處理之情緒辨識聊天機器人") ![](https://i.imgur.com/bPxP1WJ.jpg) --- ### 前言 > 死亡,是每個人都會經歷的一個過程,而在面對親人的離去,每個人所擁有的反應都各不相同,有的人會十分的痛苦沒有辦法自己走出這個陰霾,也有的人會對親人的死亡十分坦然,認為這是一個自然發生的現象,但大多數因為意外或是生病死亡的親人,在世的親人常常會十分的傷心。 ### 研究動機與目的 > 在我們實驗室中有一位學長,這位學長在去年的時候不幸確診癌症晚期,自認時日無多,但是學長家裡的狀況有點小特殊,學長一家三口,學長和母親的關係特別好,在淡江大學電機系就讀時,幾乎每天都會趕回家陪母親吃晚餐,也會怕母親沒吃飯,特別買飯或親自下廚給母親享用,但在學長確診癌症後治療期間,父親也確診了癌症並且病情迅速惡化,離他們而去。如此這剩下身體虛弱的學長和老母親相依為命,另外,學長母親生活的重心都是以他們一家為主,也沒有親近的親戚或是交友圈,再加上母親個性緣故,導致學長十分擔心,當自己也倒下時,是否老母親會無法接受最親近的人接連離她而去,而選擇輕生或自暴自棄。 > > 而根據這位學長的故事,我們希望能夠做出一個裝置可以去紀念亡者或讓生者能夠慢慢撫平傷痛、走出喪親之痛,而因為在市面上有許多裝置或特定實體物品去紀念逝者,像是紀念性的數位相簿、時光膠囊等物品,因此我們希望往APP的方向去做應用。 > > 而我們在網路上看到國外有一個「Dad Bot」的聊天機器人,利用一些技術製作出一個仿若作者父親真實的在用通訊軟體回復他,這也是本專題重要的啟源的想法之一,藉由「Dad Bot」的運作模式及對話內容做為基底出發,往對話機器人的方向去開發。在找資料的時候,我們也發現Hear Hear 聽聽這個APP,這個APP可以根據使用者說話的語調與聲紋特徵,來判斷使用者的說話時的情緒。 > > 且我們希望這個ChatBot並不是只限於特定的使用者,而是能所有人會遇到親友過世時,皆通用的情況下去訓練我們的資料並優化,並根據使用者輸入話語的情緒來做回應的依據,最終達成一個給予正面情緒回應的通用性聊天機器人。 ### 使用流程 ##### 使用者操作流程 ![使用者操作流程](https://i.imgur.com/F3wGLTm.png) ##### 伺服器端處理流程 ![伺服器端處理流程](https://i.imgur.com/7rMD3NH.png) ### 系統架構圖 ![](https://i.imgur.com/Aiu5J5D.jpg) ### 系統使用情境 > 使用者必須要先註冊Discord帳號,並在程式內部建立一個伺服器(或者是有自己管理的伺服器),再來就可以透過[邀請連結](https://ppt.cc/fPP6Yx)讓機器人加入伺服器了。此時已經可以和機器人溝通了,每天和機器人開始聊天前必須先跟他打招呼,例如:你好、嗨、早安。隨後使用者的輸入就會以Google API分析並回傳相對應的語句。結束對話時可以跟機器人道別,例如:再見、晚安、掰,在道別句過後,機器人就不會給予情緒回覆。另外使用者在輸入框也可以打上特殊的指令,以取得有用的資訊或者進行簡易的故障排除,指令用法如下表所示,以下小節會以實際使用截圖說明每一種情緒以及指令。 | 指令內容 | 用途 | | -------- | -------- | | T!status | 顯示此使用者之情緒分數統計,有平均情緒分數、今日平均情緒分數、近三日的當日平均分數、最後一次的情緒分數,可用做近日的情緒辨別。 | | T!sys reboot | 將系統重新開機,機器人在重開機後會自動執行。 | | T!sys shutdown | 將系統關機,我們推薦使用此指令後再將插頭拔起。 | | T!help | 顯示此機器人之所有可用指令,其中包含開發者測試或者維修指令。 | #### 使用截圖 ![](https://i.imgur.com/MKJk9l0.png) ![](https://i.imgur.com/hcTp4qE.png) ### 結論與未來展望 ```! 「基於情感處理之情緒辨識聊天機器人」是針對身邊有親友過世而造成情緒創傷的使用者而設計,能夠分析使用者輸入語句之情緒數值,並且透過導入生前聊天紀錄,給予符合該情緒數值之個人化回覆語句。 ``` #### Google API的缺陷 我們在實際使用Natural Lanuage API時就發現,在文字當中是可以找出每一個單詞的情緒的,例如句子內有”傷心”這個單詞,就可以讓電腦辨別這個句子是悲傷的情緒,但在中文的語言處理當中還有很多需要克服的困難,例如說”我好生氣”,在API當中AI卻會把”好”視為正向的情緒,因此本應該是偏向負面的情緒就會誤判,我們認為這是因為中文和英文邏輯有很大不同的關係,未來希望可以透過一些開源模型(例如Transformer)訓練對話,讓準確率大大提升。 #### 使用者聊天資料 此系統希望可以在理想的情況下以最大限度的符合使用者情境,從問卷調查可以得知,使用者較在意此系統較為死板的回覆和不夠接近與真人對話的感覺,這是由於我們的資料量不夠以及尚未客製化,因此我們在未來希望可以為此系統增加上傳訓練資料的功能,透過不斷訓練情緒模型來讓預測分數更準確,使系統的回覆能夠更加符合使用者的希望,還可以依據個人情況讓機器人回覆特定的影像、音訊,達到更接近真實的回覆效果。 #### 多元輸入輸出 我們認為若使用者有音訊輸入,可以增加情緒辨認的準確度,EmoVoice是我們參考的對象之一,如果可以將語句內容和語音一起做情緒分析,將會更有效的推送合適的回覆並且收集更詳盡的資料。在伺服器端,更可以讓使用者自訂回覆的型態,例如Dad Bot內Vlahos就有把他的父親生前自己唱的歌做為回覆,使用者不僅能看到訊息,又可以聽到親人生前的聲音。 --- :alien: Author : 李佳錚、林士捷、鐘浩响、 鐘浩响、鄭岳松、沈奕辰、 邵才獻 --- ##### tags: `Google API` `Discord Bot` `Python` `TKU`