高通台灣AI黑客松|競賽說明會
|

【RAK WisCore】自己動手才是王道!開發語音助理專案

   

作者: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使用上仍有一段差距:

  1. 無法開機自動啟動,使用上仍需透過UI與瀏覽器進行操作 。
  2. 需透過外部按鈕或UI APP上的按鈕才能說Alexa~,無法Hand Free操作。
  3. 麥克風為一般電容是類比麥克風,無法Far-Field操作。

基於以上缺點,一般Maker不易將Alexa Voice Service,透過創意整合到自己的物聯網專案中。

於是,RAK推出的一款具備Amazon Alexa Voice Service接入的全新開源硬件產品WisCore,預設內建完整的AVS服務功能與OpenWRT作業系統,讓Maker可以專注在應用層面的設計,並快速導入Alexa語音助理於物聯網的應用之中。今天有幸收到WisCore測試機,馬上打開來試試!

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

WisCore測試機打開後的內容物(圖片來源:Victor提供)

RAK WisCore語音開發套件內含:

  1. WisCore底板
  2. WisCore語音板(MicroSemi ZL38062)
  3. WisCore CPU 主板 (MT7682A,類似大家熟悉的Linkit 7688)
  4. 變壓器 5V/2A
  5. Wi-Fi天線
  6. 喇叭

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提供)

依照下列步驟:

  1. 電腦安裝USB-UART CH340 Driver
  2. 電腦安裝終端機軟體TeraTerm
  3. 將Wi-Fi天線、喇叭接上WisCore主機
  4. 變壓器接上WisCore主機上電
  5. 將USB Micro Cable接上WisCore主機
  6. 電腦打開裝置管理員,查詢連接埠為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有更多好玩好用的開發版。

(責任編輯:葉于甄)


◎加入我們的Line,獲得更多及時文章更新&活動資訊→

"加</p

Victor

訂閱MakerPRO知識充電報

與40000位開發者一同掌握科技創新的技術資訊!

Author: Victor

白天是系統廠網通產品的FW攻城獅,晚上是熬夜做專案的Maker,透過IoT應用在不同領域中。 專長 : FW ( MCU/Linux )、電路設計、感測器、無線傳輸 (Wi-Fi、BT/LE、Zigbee、LoRa、Sigfox)、智能音箱。

Share This Post On
468 ad

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *