關於 AIVoice 晶片支援問題

請問在 Github 的 ameba-aivoice 資料庫內容提到的支援晶片並未包含 RTL8735B,那 RTL8735B 可以使用嗎?或是原廠會增加支援 RTL8735B 晶片進去嗎?
想要在 RTL8735B 使用離線語音關鍵詞喚醒及關鍵詞指令功能,請問有哪個sdk可以參考使用呢?

Hi @rick-kh,

ameba-aivoice 目前未包含 RTL8735B, 但如果想做離線語音關鍵詞喚醒及關鍵詞指令功能可以考慮以下方案,

  1. TensorFlow Lite Micro Speech (Arduino SDK 支援) (目前這個範例存在一些問題,我們會修正完成後再通知您)
  • 預設辨識關鍵詞:yes / no / unknown / silence
  1. Audio Classification (Arduino & FreeRTOS SDK 支援)
  • 使用 YAMNet 模型,可分類 521 種聲音事件(語音、音樂、動物叫聲、環境音等)
  • 適合偵測「是否有人在說話」這類場景

Arduino SDK: GitHub - Ameba-AIoT/ameba-arduino-pro2: AmebaPro2 Arduino third-party package SDK · GitHub
FreeRTOS SDK: GitHub - Ameba-AIoT/ameba-rtos-pro2: Realtek Official IoT Software Development Kit for Ameba Series SoC: (Ameba Pro2) · GitHub

太好了,期待 TensorFlow Lite Micro Speech (Arduino SDK 支援) 範例的修正版。
另外我確實也用 Edge Impulse訓練了好幾個語音模型,雖然都可以使用 Acuity toolkit 順利匯出 .nb檔,也都可以在Audio Classification 範例中編譯通過,但是還是無法達到關鍵詞的辨識效果,ChatGPT說是要增加關鍵詞語音訓練的樣本數,還有unknown 及 noise 的錄製樣本也要相對增加,就能讓YAMNet 模型辨識率提高,目前就繼續增加樣本數試試看了。

Hi @rick-kh,

您可以嘗試 Prerelease version 4.1.1-build20260713 裏的 TFLite 範例。

加入到 Preferences: https://github.com/Ameba-AIoT/ameba-arduino-pro2/raw/dev/Arduino_package/package_realtek_amebapro2_early_index.json

請問關於 HUB8735Ultra 開發板的板載數位麥克風的腳位編號或是代號,可以在這裡詢問嗎?
因為 AmebaTensorFlowLite 中的 Micro_Speech 範例裡面需要定義 DMIC_CLK_PIN 及 DMIC_DATA_PIN ,請問可以在哪裡查到 HUB8735Ultra 的 DMIC 腳位資訊嗎?
目前這個範例編譯沒有大問題,但是reset之後,serial monitor 跑了4, 5次的 Heard silence (202) @352ms 就停止了,感覺只差臨門一腳了,麻煩大家了。

Hi @rick-kh ,

您可以在 packages\ideasHatch\hardware\AmebaPro2\<version>\libraries\Multimedia\src\AudioStream.h 找到DMIC的腳位資訊

#define MINI_DMIC_CLK_PIN    PD_16

#define DMIC_CLK_PIN    PD_14

#define DMIC_DATA_PIN   PD_18

可以把 ameba_audio_provider.cpp 裡的 TFL_DMIC_CLK_PIN改成 PD_14 試看看

另外 在測試的時候可以盡量不間斷地對著麥克風說話, 應該是會打印 heard unknown 的 log

謝謝

大感謝 KevinKL
#define DMIC_CLK_PIN PD_14
#define DMIC_DATA_PIN PD_18
這個值可行,板子終於正常執行,除了
Heard silence, 還有 unknown, yes,暫時還試不出no,稍後再加入其他的詞看看。