M5Atom ECHO利用STT傳訊M5Stick-C

影片範例

 在這段影片中,我們對M5Atom ECHO說一句話「開灯」,不久之後旁邊的M5Stick-C  Plus有反應了(螢幕上的方塊轉成黃色),再說一句「關灯」,螢幕上的方塊轉成黑色

這個簡單的實作在測試M5Atom ECHO的STT(語音轉文字)Service(背後是百度云api),然後另一個裝置M5Stick-C 接收STT的結果並判斷執行後續的動作

運作示意

很明顯地這個環境需要有無線網路的支持,否則上哪朵雲呢?為什麼用百度云服務呢?M5Stack是大陸的新創科技當然是用他們的百度(產品範例程式碼)所以我們這兒使用網路慢一些,通常等個幾秒才會回應…

材料與作法

要做這件事,你得先準備好硬體:M5Atom ECHO(主角),接收端其實不一定要是M5Stick-C  Plus,用M5CORE也可以…就是這一系列ESP32的板子就是了(硬體就從蝦X或淘X買囉!)

軟體環境:Arduino IDE(可有可無,)看你要不要用Arduino code燒錄,或想看一下人家程式碼是怎麼寫的,還有UIFLOW這個很棒的視覺環境,M5STACK的東西都可以用這個程式來寫

※WIFI無線網路是必要的

程式下載

UIFLOW和M5Buner都一直在更新,所以先在下載最新的版本


打開M5Buner

真的是新版,2.0以上跟原來的1.x畫面完全不同了(更圖像化),在左側選一下板子類型,上面的Com port要選對,可以看到有一個EchoSTT,下方有個按鈕「Get Token」,按下去可以取得一個(真是太方便了)

接上M5Atom ECHO

如果沒有辦法抓到COM PORT,那請安裝一下CP210x_VCP_Windows驅動程式,一樣在Download那兒有提供

※使用STT(Speak TO Text)雲端服務,一般都需先申請一個Token(權杖),否則那朵雲才不會理你!而這個Token會用在這次的二個裝置中,一個是發送一個是接收…

程式燒錄

燒錄程式到M5Atom ECHO

這一版的真的蠻方便好用的,按一下Burn就可以進行程式燒錄

填寫wifi資訊

燒錄前會要求填入wifi的連線資訊,它幫你寫進程式碼,之後一開機就連上網路,畢竟沒網就做不了什麼事

狀態視窗

像Arduino IDE一樣有個監控視窗可以看一下進度…

燒錄完成,M5Atom ECHO會重啟

※使用Arduino IDE編輯及燒錄

如果想看看這個功能的原始碼怎麼寫或想加一些功能到裡頭,可以使用這個方式

開啟M5Atom ECHO的EchoRest範例

在Arduino的範例裡可以找到,如果沒有echo的選項,可以直接到官網的github去下載:

github.com/m5stack/M5-ProductExampleCodes/tree/master/Core/Atom/AtomEcho 

填入wifi連接資訊

可以找到要你填ap名稱及密碼的地方

填入Token

往下找可以看到一行需要填入Token的地方

燒錄程式

由於M5Atom在Arduion IDE中目前還沒有板子可選,官方建議就當作Stick-C去進行燒錄的動作

測試一下STT 服務的運作

用M5Buner的就打開右上角的COM Monitor,使用Arduino的就打開監控視窗,按一下M5Atom ECHO的電源讓它重啟一下,在視窗上就會看到啟動狀態及是否連上網路了…

這時錄音鈕的光應是藍色,按住錄音鈕說句話再放開,按鈕的光會呈現黃色,這時還在傳送資料及等待回應,又變回藍色就是完成了,從監控視窗裡可以看到雲端api回覆的文字(就是幫你把說的那句話變換成文字),回覆是簡體中文,有時可能判斷得不太對(也可能是你的語音不清)

撰寫M5Stick-C端的程式:使用UIFlow

UIFlow視覺化編程環境

這是由M5Stack所發展基于Blockly+Python的網頁式编程平台, 不過我喜歡下載桌面版來用,目前的版本已發展到1.6.4,程式開啟後,我們選擇右側beta就會使用最新的版本

label設定

若希望能出現中文,注意font欄位的選擇

Echo STT

這一區的積木是後來才有的

大概這樣就ok了!