ESP32 LyraTD MSC 智慧喇叭平台建置 (2) – AVS SDK 使用

在上一篇 ESP32 LyraTD MSC 智慧喇叭平台建置 (1) – ADF SDK 使用 介紹了 ADF SDK 的基本建置步驟,透過建立起 ADF 的平台,可以播放 SDCard 內的MP3、播放串流的音樂,算是熟悉了 Espressif 的 ESP32 發展平台建置。本篇,將要跟大家展示如果編譯建置 AVS (Amazon Voice Service) 的 SDK,讓用戶可以透過「Alexa!」來做語音控制。

本文的內容跟 ADF 有些重複,這樣可以省去讀者在兩篇文章反覆參照。不過還是建議至少先參看一下前篇的文章,有些內容會比較容易瞭解。

Ubuntu 環境安裝

本篇是使用 Ubuntu 16.04 64bit 測試,需要安裝的套件,請依下列命令安裝

一般用戶存取 Serial Port

LradTD-MSC 的資料 USB Port 插入PC後,會顯示為 COMPORT。為了讓一般用戶可以透過 Serial Port 更新、查看 console 資訊,我們需要將用戶加入 dialup group,才可以進行此類的操作。

將用戶新增至 group dialout 後,記得需要重新登入後才會生效。

安裝 Toolchain

請依下列命令來安裝 Toolchain。所有的操作,都是在 ~/esp 目錄內,我們也順道將需要設置的 IDF_PATH 設置了,在編譯的過程中會參考到此變數。往後登入系統就會套用這些設置,我們在這透過命令 “. ~/.bashrc” 讓命令立刻生效。

取得 IDF & AVS SDK

IDF 和 AVS 的 SDK 都是放在 github 上,透過 git 命令就可以下載到最新的程式碼。AVS SDK 是基於 IDF,所以此處也要下載它。

套用 IDF Patch

在文章寫作的這天, IDF 有2個 patch 需要 apply。將 SDK 下載後,請先上這2個 patch

 

清除 Flash 內容

AVS SDK 在燒錄後似忽會對一些非程式區的flash做判斷,只有這些區域是空的,才能將設定寫進去。所以在進行 AVS Image 燒錄前,要將其清空,才有辦法使用正常的 AVS Code。請讓 LyraTD-MSC 進入燒錄模式後,進行清除。這個動作只需要在第一次燒 AVS SDK Image 時,做一次就可以了。但如果往後有再燒過其它的 SDK Image, 需再次執行。

編譯 Alexa Sample Code

AVS SDK 裡面已經有 Alexa 的 sample code 了。編譯方式如下。請在 make flash monitor 命令前將板子進入 load mode

確認狀態

當編譯完成並燒錄後,將 LyraTD-MSC 重開,此時在 Console 應該會看到如下的類似訊息。此時,需要用 Android 的 Provisioning APP 來提供 WiFi 連線密碼給它,以便連上 Alexa 的服務。完成後,喇叭就可以順利連上 Amazon Voice Service 來進行語音對答了。文末有我自己編譯的 Android Provisioning App,請自己評估是否要直接使用,或自行編譯。

ALEXA!

當一切都設定好後,就會從 Console 上看到 Alexa Ready 的訊息。此時,就可以開始用用語音控制,例如「I want to listen to BBC news」。

結語

到此,就完成 AVS 環境的建置了,此時已可以利用 ESP32 LyraTD-MSC 連上 Amazon 來進行語音操作。下一篇,就要介紹如何編譯 Android 的 Provisioning APP。

參考連結

  1. Toolchain 編譯環境建置
  2. AVS SDK Github
  3. AVS SDK Alexa example
  4. Android Provisioning App
  5. 我自己編譯的 Android Provisioning APP

Leave a Reply