芯片支持与存储规格

选开发板或移植新板子之前,先要弄清三件事:固件支持哪些芯片、芯片决定了哪种音频与唤醒词路径、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/。