作者:Victor Sue
自從 Amazon Echo 於2016年10月份發表以來,已經成功吸引各方目光。語音操作是人類最直覺的方式,國內外各家巨頭意識到智慧音響,在智慧家庭大戰中的重要戰略性,紛紛湧入此一市場,搶佔智慧家庭的入口。透過雲端服務商與生態圈結合的方式,協助商業巨頭的智慧助理落地,打造智慧家庭的AI核心。Amazon Echo的語音助理服務,主要是基於Alexa Voice Service(AVS)為基礎,其基本架構與使用情境如下:

Alexa Voice Service的基本架構(圖片來源:Alexa Voice Service)

Alexa Voice Service使用情境(圖片來源:Alexa Voice Service)
簡單的來說,Amazon Alexa Service(AVS)主要對使用者輸入的語音進行處理,透過ASR(automatic speech recognition)和NLP(Natural language processing),將其轉換成使用者的意圖(Intent),並傳輸到對應的Alexa Skill Kit(ASK),以便後續的動作進行(ex. 以語音回覆使用者或打開廚房的電燈)。
透過下圖的流程,讓使用者輕鬆地透過語音來查詢所需的資訊,或是控制智慧家庭的各種裝置。亞馬遜對 Alexa Skill的開放分為兩個方面:一個是允許第三方服務提供商在 Alexa 中加入更多的技能,這些技能完全是基於語音互動並直接面向消費者的,比如說透過 Alexa讓用戶使用 Uber 提供的叫車服務。
其二,是針對應用程式開發者,Amazon提供了一個名為 Alexa Skills Kit(簡稱 ASK)的開發包,類似Android APP生態圈的方式來讓開發者可以將自行開發的Customer ASK上架到ASK store上,一般消費者也可以同安裝APP的方式去安裝ASK,安裝ASK後消費者的Echo就會聽懂相對應的語音指令,來進行對應的語音操作。

語音指令操作流程
同時,Amazon釋出基於Raspberry Pi的語音助理開發套件,讓Maker可以透過透過樹梅派與USB音效卡,來實作DIY版的Amazon Echo。用相關Alexa Skill Kit(ASK)來觸發IoT相關的裝置舉例來說,下圖為筆者的實作,用來控制AWS IoT的周末小專案,可以透過語音指令進行開關燈的操作。

接上樹莓派的Alexa Skill Kit(圖片來源:Victor提供)
但Alexa AVS Sample APP主要目的為提供開發者展示Alexa Service的認證與操作細節,有三點跟實際上Amazon Echo使用上仍有一段差距:
- 無法開機自動啟動,使用上仍需透過UI與瀏覽器進行操作 。
- 需透過外部按鈕或UI APP上的按鈕才能說Alexa~,無法Hand Free操作。
- 麥克風為一般電容是類比麥克風,無法Far-Field操作。
基於以上缺點,一般Maker不易將Alexa Voice Service,透過創意整合到自己的物聯網專案中。
於是,RAK推出的一款具備Amazon Alexa Voice Service接入的全新開源硬件產品WisCore,預設內建完整的AVS服務功能與OpenWRT作業系統,讓Maker可以專注在應用層面的設計,並快速導入Alexa語音助理於物聯網的應用之中。今天有幸收到WisCore測試機,馬上打開來試試!

WisCore測試機外盒(圖片來源:Victor提供)

WisCore測試機打開後的內容物(圖片來源:Victor提供)
RAK WisCore語音開發套件內含:
- WisCore底板
- WisCore語音板(MicroSemi ZL38062)
- WisCore CPU 主板 (MT7682A,類似大家熟悉的Linkit 7688)
- 變壓器 5V/2A
- Wi-Fi天線
- 喇叭
WisCore開發套件中,包括一個WisCore核心模組、MTK7628晶片組、2組UART,還有Microsemi的Voice Processor,支持ASR功能與遠距離語音喚醒,可通過「Alexa」關鍵字實現遠距離設備喚醒。
組裝流程與初步的APP設定流程,可以參考Lanma的教學:【實測心得】智慧語音WisCore的安裝筆記 。
身為Maker,當然不會滿足於原廠提供的APP和Alexa Service,自己做才是王道!
WisCore為Maker提供豐富的軟硬體支援,內建OpenWRT路由器作業系統,具備量產級的穩定性,以及OpenWRT生態系豐富的套件與軟體架構。OpenWRT 是一種針對嵌入式設備,且具備高度可擴展性的 GNU/Linux 發行版本,提供高度模組化、網絡組件和擴展性的嵌入式Linux系統,常常被用於無線AP、路由器、工控設備、網路電話、小型機器人、智能家電以及VOIP設備中。
那建構開發的第一步呢? 首先,嵌入式統開發多半透過UART的終端機操作介面來進行,WisCore本身已具備USB-UART的功能,開發者不需要透過額外的轉接板或複雜的接線,就可以接上Linux系統的終端之上,那我們來試看看吧!請準備一條USB Micro Cable。

USB Micro Cable即手機的充電線(圖片來源:Victor提供)
將變壓器、USB Micro Cable、Wi-Fi天線、喇叭與主板模組接成下圖:

將零件全部組裝起來(圖片來源:Victor提供)

與電腦連接示意圖(圖片來源:Victor提供)
依照下列步驟:
- 電腦安裝USB-UART CH340 Driver
- 電腦安裝終端機軟體TeraTerm
- 將Wi-Fi天線、喇叭接上WisCore主機
- 變壓器接上WisCore主機上電
- 將USB Micro Cable接上WisCore主機
- 電腦打開裝置管理員,查詢連接埠為COM7(數字依電腦和USB接孔而易)
7. 開啟TeraTerm -> File -> New Connection,開啟對應的COM port
8. Setup -> Serial Port設定COM port參數,Baud rate為57600 8N1如下圖:
9. 對TeraTerm視窗按下Enter鍵,即會出現出現下圖的畫面:
10. 恭喜!歡迎來到OpenWRT的Linux世界,那就來播個音樂吧~~^.^/
首先,由於預設有跑Alexa demo app,這會佔住音效卡的資源,需要先讓它停下來:
然後下載要播放的音樂檔(WAV format)
透過ALSA utility播放音樂~~~噹噹噹~~~
RAK WisCore 的SDK也已開源放在Gihub上,上面有豐富的說明文件與原始碼等待大家去發掘,來用WisCore來創造屬於你的語音助理專案吧!
試用心得總結
這塊板子整合了量產等級的語音助理SDK,與具備Far-field/Hand-free的聲控硬體,對Maker而言是一塊深具開發潛力的平台,但在嘗試開發WisCore的物聯網應用時,仍發現幾個需加強的部分。
首先,該平台雖然基於OpenWRT,但系統軟體不支援Python或Node.js,官方也未經營該平台的opkg套件庫,opkg軟體套件數目遠少於同屬MTK的Linkit 7688以及Respeaker,導致物聯網相關應用軟體開發不易;另外,截至目前最新版的韌體(release – Eng-rc503),仍有開發板上USB以及SD卡無法運作的Bug,也讓開發者處處受限。
雖然硬體設計上優秀,但無法加上額外的裝置(如:USB WEBCAM或USB Bluetooth Dongle)和儲存空間,在軟體開發上略顯不足,這個問題一向是兩岸電子廠商需要加強的部分,也希望RAK Wireless繼續秉持著支持開源的態度,加強軟體支援度的開發,讓Maker有更多好玩好用的開發版。
延伸閱讀
RAK WisCore官方網站:http://www.rakwireless.com/cn/WisKeyOSH/WisCore
RAK WisCore WiKi:https://github.com/RAKWireless/WisCore/wiki
RAK WisCore Github:https://github.com/RAKWireless/WisCore
(責任編輯:葉于甄)
◎加入我們的Line,獲得更多及時文章更新&活動資訊→
- 【NB-IoT】國產DSI2598開發板開箱評測 - 2019/12/11
- 【開箱評測】athena A1 Kit自造邊緣運算上手評測 - 2019/11/13
- 【RAK WisCore】自己動手才是王道!開發語音助理專案 - 2017/11/29
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!