晶片支援與儲存規格

選開發板或移植新板子之前,先要弄清三件事:韌體支援哪些晶片、晶片決定了哪種音訊與喚醒詞路徑、Flash 容量對應哪張分區表。本頁只記錄韌體程式碼和發布清單能證明的內容;晶片本身的電氣參數請查 Espressif 官方資料手冊。

一、支援的晶片

下表數量來自 v2.5.2 發布清單(共 154 個板目錄、188 個韌體變體),完整名單見支援的開發板。

晶片板目錄韌體變體音訊輸入引擎本機喚醒詞
ESP32-S3114126AfeAudioEngine有 PSRAM 時預設 Wakenet model with AFE;可選 MultiNet 自訂喚醒詞
ESP32-P4627AfeAudioEngine同 ESP32-S3
ESP32-C31010LiteAudioEngine可選 Wakenet model without AFE
ESP32-C61010LiteAudioEngine同 ESP32-C3
ESP3267LiteAudioEngine需要 PSRAM 才能選 Wakenet model without AFE
ESP32-S3144AfeAudioEngine同 ESP32-S3,需要 ESP-IDF 6.1 或以上
ESP32-C544LiteAudioEngine同 ESP32-C3

依據:上游 main/audio/README.md(引擎與目標晶片對應關係)、main/Kconfig.projbuild(WAKE_WORD_TYPE 的 depends on 條件)。

兩種引擎的差別:

  • AfeAudioEngine:使用一個 FD AFE 實例,喚醒詞與上行語音處理共用;啟用音訊處理時帶回聲消除(AEC)與 VAD。
  • LiteAudioEngine:直接輸出原始單聲道 PCM,不做 AEC 和 VAD;喚醒詞(如已配置)使用獨立的 WakeNet。

二、PSRAM 要求

  • ESP32-S3 / P4 / S31:自訂喚醒詞(MultiNet)、AFE 喚醒詞、AFE 音訊處理(USE_AUDIO_PROCESSOR)都要求帶 PSRAM。
  • ESP32:沒有 PSRAM 時喚醒詞預設關閉,需要按鍵或外接模組觸發對話,見ESP32 丐版。
  • 顯示庫 LVGL 的記憶體池也分「有 PSRAM」與「無 PSRAM」兩套實現(main/display/lvgl_psram_pool.h、lvgl_no_psram_pool.h)。
  • N8R2(8 MB Flash、2 MB PSRAM)等配置的額外設定見硬體搭建指南。

三、分區表(v2)

v2 分區表在應用分區之外增加了 assets 分區,用於存放喚醒詞模型、字型、表情和聊天背景,詳見自訂 Assets 指南。

檔案應用分區assets
4m.csv單個 factory(0x2F0000),無雙 OTA 分區1 MB
8m.csvota_0 / ota_1 各 0x2F00002 MB
16m.csvota_0 / ota_1 各 0x3F0000(約 4 MB)8 MB
16m_c3.csvota_0 / ota_1 各 0x3F0000(約 4 MB)4000K(受可用 mmap 頁限制)
32m.csvota_0 / ota_1 各 4 MB16 MB

另有 partitions/v1/ 保留舊佈局(用 model 分區存放模型,沒有 assets 分區)。

四、音訊參數

  • 多數板級 config.h 定義 AUDIO_INPUT_SAMPLE_RATE 16000、AUDIO_OUTPUT_SAMPLE_RATE 24000;上行送入編碼器的是 16 kHz 單聲道 PCM。
  • Opus 幀長為 60 ms(OPUS_FRAME_DURATION_MS)。
  • 板載麥克風通道預設按 M(單麥)或 MR(單麥加回放參考)宣告,宣告必須與編解碼器回傳的交織 PCM 一致。

五、開發環境

韌體要求 ESP-IDF v6.0.1 或更高,推薦 release/v6.1 分支;v2.5.2 發布矩陣由 ESP-IDF 6.1.0 建置。環境搭建見 ESP-IDF 開發環境搭建。

相關文檔

對照來源:78/xiaozhi-esp32 v2.5.2 的 main/audio/README.md、main/Kconfig.projbuild、partitions/v2/。