Makee.io 如何運用 IBM Watson 打造實體對話機器人?

在自造者(Maker)社群中相當活躍的 Makee.io 團隊,秉持著「人人皆可跨越技術障礙,沉浸於手作樂趣之中」的理念,近兩年持續不斷地透過課程引導有興趣的玩家們發揮想像力,動手作出例如星際大戰(Star Wars)的絕地武士光劍、可自動控制的電動滑板、遙控車,甚至是可解決生活問題的小道具,例如具備溫濕度偵測機制的智慧盆栽、寵物自動餵食機等作品。

投入研究 IBM Watson 人工智慧服務 實作對話式應用

事實上,Makee.io 團隊的六名共同創辦人,大多為軟體工程背景,對於硬體設計架構可說相當陌生,最初只因為好玩而聚集在一起研究,共同做出夢想中的玩具,並且在團隊專屬網站上(http://oranwind.org/)分享操作相關知識,更透過非定期舉辦的實作工作坊(Workshop),來傳達團隊的創意與理念,因而在自造者領域中享有盛名。

Makee.io 如何運用 IBM Watson 打造實體對話機器人?▲對於新科技抱持的熱情與好奇心,並樂於分享創意理念,共同組成 Makee.io 團隊。

Makee.io 如何運用 IBM Watson 打造實體對話機器人?▲Makee.io團隊實作電動滑板、遙控車、寵物自動餵食機、光劍等作品。

自從具備人工智慧的 AlphaGo 挑戰世界冠軍棋士,以四勝一敗成績贏得勝利後,引發人們廣泛的討論,深度學習(Deep Learning)技術幾乎已成為現代化智慧應用的顯學。熱衷於運用新技術的 Makee.io 團隊自然也投入研究人工智慧,自去年開始測試 IBM Watson 雲端服務平台提供的語音轉文字(Speech To Text)、文字轉語音(Text To Speech)、對話(Conversation)服務,近來更進一步搭配深圳矽遞(SeeedStudio)新推出的 ReSpeaker 開發套件相互介接,實作出對話式音樂播放應用情境。

視覺化操作介面、中文語系支援 不須開發即可自定對話情境 

目前主流的人工智慧技術供應商,除了 IBM Watson,還包含微軟、Amazon 等國際知名雲端服務平台,其實 Makee.io 皆已測試驗證,最後選擇以 IBM Watson 來實作對話式音樂播放的應用,主要是看重 IBM Watson 具有可便於操作配置對話規則的介面設計,以表單方式定義意圖(Intent)與實體(Entities),即可自定對話(Dialog)情境。且操作介面中貼心地設計可綜觀全局的示意圖,藉此查看階層式對話內容,以及觸發的規則,可說是 IBM Watson 較其他技術服務供應商最大的差異。

Makee.io 如何運用 IBM Watson 打造實體對話機器人?▲IBM Watson 操作介面提供對話(Dialog)情境階層圖示,讓語句內容與觸發回應的相關規則都能一目了然。

以往在建立對話規則時,通常需要開發者撰寫程式碼邏輯,才得以執行對答的應用。IBM Watson 的操作介面則是全程採用拖拉方式建立規則,即便不懂得 JSON(JavaScript Object Notation)格式所描述的資料結構,同樣可自行創造出個性化應用模式,相當直覺容易上手。

就相近用語判斷為例,通常人們說 Hello、Hi、Good morning 皆為打招呼之意,對機器處理而言均為獨立語句,彼此之間本毫無意義。但隨著輸入語句更多元之後,機器即可自行判定此類用語實屬相同類別,背後的技術即是運用深度學習來協助。

舉例而言,Makee.io 運用 IBM Watson Conversation 服務的瀏覽器操作介面,直接定義問候用語的意圖(Intent)樣態,凡是語音轉文字取得的是 Hello、Hi、Good morning、Good afternoon、Good evening,皆屬於「#greeting」類別。

Makee.io 如何運用 IBM Watson 打造實體對話機器人?▲瀏覽器操作介面定義問候用語的 Intent 樣態。

至於實體(Entities)應用模式 appliance,則是建立 air conditioning、headlights、music,三種情境,同義詞依序為 air、lights、radio。

Makee.io 如何運用 IBM Watson 打造實體對話機器人?▲Entities 建立應用模式。

完成後開始設計階層式對話(Dialog)節點,前述定義的 #greeting 即為觸發條件。一旦語音轉文字的結果為問候語類別,隨即觸發Watson把文字轉為語音回應的內容為「Hi! What can I do for you」;同時在相同的root階層中再建立「#turn_on」節點,並且於該節點上擴展新增持續對話(Continue conversation)的子節點,以便配置 Entities 應用的 appliance。

Makee.io 如何運用 IBM Watson 打造實體對話機器人?▲設計階層式對話節點,選擇觸發條件,也就是先前配置的 Intent 或 Entities,以及自定 Watson 把文字轉為語音回應的內容。

若觸發 appliance 所定義的 music 或同義字,Watson 會回應「OK! What kind of music would you like to hear」,再依據前端裝置回傳的語音訊息,執行音樂的播放。

Makee.io 如何運用 IBM Watson 打造實體對話機器人?▲最後設定觸發撥放音樂的規則。

經由 Makee.io 實作經驗可發現,如今 IBM Watson 雲端平台上,已具備 Speech To Text、Text To Speech、Conversation 等普遍被採用的技術服務,開發者或玩家根本不需要懂得演算法等艱澀難懂的知識,只要學習配置與介接的方式即可達到相同目的。

另一方面,IBM Watson 在語系種類的支援程度也著實讓人驚豔。畢竟本土應用是以中文與英文為主,而現階段自然語言處理技術可清楚辨識英文句子,但未必具備中文的斷詞、斷句能力,而 IBM Watson 對於計算中文語句相關性的正確程度卻出奇地好,可省去大部分的開發時間。

串接前端裝置與雲端平台服務不可或缺的 Python 語言 

在實際應用情境中,關鍵的「大腦」如今有 IBM Watson 雲端平台服務所提供的資源協助,前端的 ReSpeaker 開發套件欲介接,須透過撰寫 Python 程式碼呼叫 IBM Watson 提供的應用程式介面(API)串接,因此 Makee.io 在設計實作工作坊課程中,至少會花費半天以上時間簡介 Python 語法,稍具概念之後才有能力進而採用 Python 的方法(Method)執行呼叫,以實作出想達成的應用。

Makee.io 如何運用 IBM Watson 打造實體對話機器人?▲深圳矽遞(SeeedStudio)新推出 ReSpeaker 開發套件,介接 IBM Watson 雲端平台服務,簡化實作語音相關應用複雜度。

所幸 Python 對於初學者而言,可說是較為親近且容易學習的程式語言,不僅台灣的大專院校已有開設 Python 程式設計教學,在歐美國家甚至更早,在國、高中時期就已安排程式開發課程,畢竟 Python 屬於高階語言,只要懂得英文,即可理解程式碼的邏輯。

當然,開發社群中也有不少擁護 Node.js 的玩家,IBM Watson API 亦可支援介接,在 GitHub 所屬的 Watson Developer Cloud 即可取得相當豐富的 Library,協助開發者快速地實作運行。

至於搭配的整合式開發環境(Integrated Development Environment,IDE),Makee.io 是採用目前主流的 Jupyter(以前名為 Ipython Notebook),相當便於引導初學者入門教學。通常撰寫完成高階語言後必須再經過編譯(Compile)後,機器才得以運行,過去往往是透過命令模式介面,輸入指令來執行,而 Jupyter 則是為網頁瀏覽器介面,輸入程式碼後點選「Running」,在畫面下方就會產出運行結果。開發工具環境不須再經過繁複的安裝過程,直接開啟瀏覽器就可使用相同功能項目。

Makee.io 如何運用 IBM Watson 打造實體對話機器人?▲Python 的整合式開發環境(IDE)可運用 Jupyter 瀏覽器介面,毋須安裝軟體即可使用相同功能項目。

如此一來,程式語言、開發環境皆具備後,接下來即可登入 BlueMix 雲端平台,啟用 Watson API 服務,再把 API 所產生的 Token 以及 BlueMix 平台登入的帳號密碼,內嵌到程式碼之中,完成介接的配置。之後即可整合前述的 REST 架構,串接已建立的對話規則,讓前端裝置與雲端服務彼此透過 JSON 格式所描述執行資料交換。

不論是前端的連網裝置、後端的雲平台,發展思維大多是建立可實際降低應用複雜度的機制,讓開發者或玩家得以簡單串接,落實創意應用的點子。畢竟現階段應用才是最核心的關鍵,複雜的開發技術已可運用現代化雲端服務平台之力來降低學習門檻,自造者僅須專注於發想應用情境,即可經由簡單的方式實踐創意。

相關資源 

使用 Facebook 留言

發表回應

謹慎發言,尊重彼此。按此展開留言規則