作為一家專注境外自由行的“網際網路+”創業公司,我們始終在積極探索使用者服務的終點在哪。當一名國内遊客置身一個完全不同的語言環境時,内心或許是不安的;而境外落地服務的司機,大多數情況下是外國人,這就造成了極大的溝通困難。在這種場景下,如果車内可以通過智能裝置為客人送去問候,并幫助其和司機、客服完成溝通,可以大幅提升國内遊客在境外出遊的舒适度。
基于此,我打算嘗試一下是否能夠基于阿裡雲制造這樣一個物聯網産品,畢竟對于創業公司來講,借助阿裡雲的技術<b>能力</b>能節省不少成本。
<b>開始嘗試Kim</b>
說話可能是我們每天做的最多的事情了,當然包括文字和交談,是以這可能是手機觸摸屏以外更“接近自然”的互動方式。
大家已經非常熟知“智能音箱”這個産品,阿裡、小米等很多大廠都推出了自己的智能音箱,并與自己的業務體系深度綁定,這讓我覺得很“封閉”,過于定制化、可玩性過于局限。
是以,索性我就把“Kim智能語音助理”做成開源項目,讓更多的Geek能夠參與進來,并且定制成自己的“私人助理”。(下圖為天貓精靈X1)

最初的Kim,僅是一個運作在樹莓派、Mac上的一個能夠語音對話的用戶端程式,它通過調用阿裡雲的TTS和ASR接口實作語音合成及語音識别。
後來在語音識别的基礎上增加了“Kim大腦”,這一個關鍵的改進讓Kim能夠了解我們在說什麼,并作出預設的響應。為了讓這顆“大腦”能夠學會更多,我專門在GitHub上維護了一個插件庫。沒錯,我們與Kim的對話經過ASR之後會被傳送到Kim的“大腦”,經過“中文語義仲裁算法”把指令交由語義比對的插件處理。操作流程如下圖所示:
Kim是一個簡化的“智能音箱”,已經能夠應付大多數的對對話場景,把插件寫寫好,或許能夠應付語音購票的場景了,下圖為上海地鐵的從業人員在示範語音購票技術。
語音,隻是一種互動方式,如果我們通過插件将其轉換成計算機可以了解的指令,理論上我們對計算機的任何操作都可以實作。但複雜互動,還需要與計算機目前的狀态有關系,我們後面會專門探讨這個問題。
<b>Kim的遠端會話服務</b>
我們肯定不希望這個智能助理隻能在實體上靠近時才能使用,于是誕生了“Kim遠端會話服務”。遠端會話服務提供了一組RESTful API和一套WebAPP供使用,RESTful API讓開發者可以以任意一種形式(例如:APP、網頁、微信小程式等)通過網際網路與Kim會話。
但是,裝置端的主要程式才是Kim的核心,無論你把會話服務部署在哪,最終的語義指令都會通過MQTT協定傳輸到Kim裝置端。
<b>Kim</b><b>插件庫 + 阿裡雲API市場</b>
正在給Kim插件庫找資料源的時候,想起了阿裡雲的API市場,索性就把API封裝到插件裡 。下圖為阿裡雲API市場的分類。
這就意味着阿裡雲豐富的雲端能力,能夠輕松的為Kim所用,用藥查詢、天氣預報、菜單查詢、新聞頭條等等,都不在話下。
假象以下場景:
1.
你在廚房,準備要做一個紅燒肉,但不會做;“Hey Kim,紅燒肉怎麼做”,這時Kim插件調用雲端API,選出一個菜單語音播報出來
2.
想知道明天的天氣怎麼樣;“Hey Kim,明天天氣怎麼樣”“明天晴,氣溫xxx,西北風xxx,空氣品質優”
3.
……
<b>Kim</b><b>插件庫 + HomeAssistant</b>
後來,在微網誌上看到了Facebook創始人紮克伯格給自己弄了個智能管家“老賈”。視訊裡的幾個場景引起了我極大的興趣:
紮克伯格醒來後,說了一句:“老賈,把窗簾打開”
有客人來訪時,安保裝置通過人臉識别先把門打開,再通知主人
HomeAssistant是非常著名的開源智能家居控制系統,能夠幫我們連接配接家裡的燈、開關、門、溫濕度計、空調等智能家居裝置,支援小米、博聯等衆多的智能家居裝置。
好了,現在我們再回到Kim。HomeAssistant提供了家庭智能裝置的控制方案,同時支援RESTful控制,這就友善了Kim插件庫與HA的深度內建。當Kim具備這些能力的時候,我們的生活就變成了一下這樣:
中午躺在沙發上快睡着了,但是陽光太刺眼;“Hey Kim,幫我把窗簾關上”這時窗簾電機工作,窗簾關上
暴雨來臨前,室内很悶;“Key Kim,現在室内濕度多少”“室内濕度98%”“幫我把除濕機打開”,這時除濕機開始工作
下班回到家,身心俱疲,準備看會電視放松下,但又實在懶得找遙控器;“Hey Kim,幫我把電視打開”,這時電視機亮了
4.
冬季早上起床困難,早上音樂響起、窗簾自動打開、空調自動開啟并設定在26度
5.
想想都覺得美。
這不是做夢,通過Kim是可以實作的。
<b>安裝和使用Kim</b>
Kim目前已在Github開源,遵循MIT開源協定。目前Wiki已經相對完善,詳細的安裝方法和技術原理可通路Kim的Git倉庫。
主項目倉庫:
<a href="https://github.com/tenstone/kim-voice-assistant">https://github.com/tenstone/kim-voice-assistant</a>
遠端會話端倉庫:
<a href="https://github.com/tenstone/kim-voice-assistant-remotetalk">https://github.com/tenstone/kim-voice-assistant-remotetalk</a>
自定義插件倉庫:
<a href="https://github.com/tenstone/kim-voice-assistant-plugins">https://github.com/tenstone/kim-voice-assistant-plugins</a>