晶片支援與儲存規格
選開發板或移植新板子之前,先要弄清三件事:韌體支援哪些晶片、晶片決定了哪種音訊與喚醒詞路徑、Flash 容量對應哪張分區表。本頁只記錄韌體程式碼和發布清單能證明的內容;晶片本身的電氣參數請查 Espressif 官方資料手冊。
一、支援的晶片
下表數量來自 v2.5.2 發布清單(共 154 個板目錄、188 個韌體變體),完整名單見支援的開發板。
| 晶片 | 板目錄 | 韌體變體 | 音訊輸入引擎 | 本機喚醒詞 |
|---|---|---|---|---|
| ESP32-S3 | 114 | 126 | AfeAudioEngine | 有 PSRAM 時預設 Wakenet model with AFE;可選 MultiNet 自訂喚醒詞 |
| ESP32-P4 | 6 | 27 | AfeAudioEngine | 同 ESP32-S3 |
| ESP32-C3 | 10 | 10 | LiteAudioEngine | 可選 Wakenet model without AFE |
| ESP32-C6 | 10 | 10 | LiteAudioEngine | 同 ESP32-C3 |
| ESP32 | 6 | 7 | LiteAudioEngine | 需要 PSRAM 才能選 Wakenet model without AFE |
| ESP32-S31 | 4 | 4 | AfeAudioEngine | 同 ESP32-S3,需要 ESP-IDF 6.1 或以上 |
| ESP32-C5 | 4 | 4 | LiteAudioEngine | 同 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.csv | ota_0 / ota_1 各 0x2F0000 | 2 MB |
16m.csv | ota_0 / ota_1 各 0x3F0000(約 4 MB) | 8 MB |
16m_c3.csv | ota_0 / ota_1 各 0x3F0000(約 4 MB) | 4000K(受可用 mmap 頁限制) |
32m.csv | ota_0 / ota_1 各 4 MB | 16 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/。