SU-03T語音辨識晶片

之前在雙11的時候,拜託某個好朋友淘來的SU-03T語音晶片,一直沒有時間玩,今天總算解鎖,已經知道如何控制它了。SU-03T的積木位置在「吉哥積木」→「模組」→「SU-03T語音辨識選單內。

SU-03T可以辨識語音命令,辨識的速度快,而且是離線,不需要網路。它本身就有一些IO腳位,可以獨立控制腳位的功能。如果要將它和開發板連接的話,要用序列埠連接的方式,辨識後的結果可以透過序列埠傳送給開發板進行後續的處理,但是這個部份則要修改SU-03T內部的韌體讓它具有這個功能,或是要增加語音命令等等都需要進行韌體的修改。但是一般人可能都沒有能力處理,如果要搭配吉哥積木使用的話,SU-03T必須更新內部的韌體才可以。吉哥積木有關SU-03T的韌體有兩個,有的人可能喜歡男聲,有人喜歡女聲,就以台灣的習慣把他們命名為「志明」和「春嬌」好了,可以自行下載喜歡的韌體,"Zhiming"和"Chunjiao",自行更新韌體目前發佈的韌體版本是1.0.18

●韌體及更新韌體工具下載網址:

https://reurl.cc/V8jR7A

一、如何更新適用於吉哥積木的SU-03T的韌體

(1)首先需要有一個TTL的線,將SU-03T和電腦連接,以便更新韌體。

TTL的RX必須連接到SU-03T的B7
TTL的TX必須連接到SU-03T的B6
TTL的VCC必須連接到SU-03T的VCC(必須是5V)
TTL的GND必須連接到SU-03T的GND
其中比較要注意的是,TTL提供的VCC電壓必須是5V,不能是3V的電壓,接線圖如下:

(2)韌體更新過程請參閱以下影片:

如何更新韌體的操作說明

二、更新完韌體後,SU-03T接上喇叭和咪頭(麥克風),並且和開發板的連接

以下的接線圖以Arduino Uno為例,Arduino的RX接到SU-03T的B7,Arduino的TX接到SU-03T的B6,另外再將Arduino的VCC及GND接到SU-03T的VCC及GND。要注意的是Arduino的VCC要提供5V的電壓給SU-03T。另外再將喇叭和麥克風接到SU-03T便可以了。

三、語音辨識晶片的使用

開發板和SU-03T以及咪頭和蜂鳴器連接好之後,只要開發板連接了電源,SU-03T便會啟動。但是如果要開始進行語音辨識,便要利用喚醒詞來喚醒晶片。如果下載「志明」版本的韌體,喚醒詞是「志明你好」或是「你好志明」,晶片進入睡眠模式則是「志明退下」;如果下載的是「春嬌」版本的韌體,喚醒詞是「春嬌你好」或是「你好春嬌,晶片進入進入睡眠模式則是「春嬌退下」。

範例一:SU-03T連接Arduino

以下範例將SU-03T連接到Arduino Uno,並聲控RGB燈泡發出不同顏色。Arduino Uno只有一個硬體序列埠,而且不能改變腳位,因此在初始化時放置「SU-03T語音辨識 連接到序列埠Serial」這個積木,請不要選擇Serial1及Serial2。

注意:
燒錄時因為Arduino也會使用到序列埠,所以SU-03T不能先連接Arduino,否則會燒錄失敗,待燒錄完畢之後才將SU-03T接上Arduino。要先對晶片說出喚醒詞之後才能開始聲控。

範例二:SU-03T連接ESP32

ESP32因為可以使用三個序列埠,Serial、Serial1、Serial2,而且可以指定腳位,因此在初始化時放置「SU-03T語音辨識 連接到序列埠Serial 重新設定序列埠腳位」這個積木。以下的範例使用ESP32加上KSB065擴展板,和上面的Arduino程式一樣,也是使用聲控控制板子上的WS2812燈泡顏色,差別就在於設定序列埠的積木而已。

範例三:SU-03T唸出感測的溫濕度數字

除了聲控之外,我的韌體還能將感測器偵測到的數字唸出來,以下以Arduino為例,在D6接了一個溫濕度感測器,並顯示資料在LCD1602上面。當SU-03T聽到「溫度」或是「濕度」的語音指令時,會將感測到的溫濕度唸出來。當聽到「亮一點」或是「暗一點」時,會調整LCD1602上的背光。

範例四:唸出預設的聲音訊息

以下以ESP32+KSB065擴展板為例,將超音波感測器及光線感測器偵測到的資訊顯示在TFT彩色螢幕上,如果偵測到的距離太近或光線太暗時,則會發出語音警告。

系統命令:

有一些指令在SU-03T聽到之後便會馬上執行的系統指令如下(在已喚醒的情形之下):