### 如你所见,这是一份帮助文档。遍布于项目的子目录当中
下面把这段 `afe_config_t` 里的 **每一个成员** 按“它是干什么的 → 典型取值 → 建议” 三步法讲清。
看完你就知道哪些可以大胆改、哪些最好别动。
---
### 1 开关类(true/false)
| 成员 | 作用 | 典型取值 | 建议 |
|---|---|---|---|
| **aec_init** | 是否启用 **回声消除**(AEC)。
用于“喇叭→麦克风”回声场景。 | true:有扬声器
false:无扬声器 | 无喇叭就关 |
| **se_init** | 是否启用 **稳态噪声抑制**(降噪)。
抑制风扇/空调/胎噪等。 | true:嘈杂环境
false:安静环境 | 按场景开关 |
| **vad_init** | 是否启用 **语音活动检测**。
只把“有人说话”的区段送给 MultiNet,降低误识别。 | true:怕误触发
false:想最省电 | 见上一贴 |
| **wakenet_init** | 是否启用 **唤醒词**(WakeNet)。 | true:需要“Hi, Lexin”唤醒
false:仅指令识别 | 本帖关 |
| **voice_communication_init** | 是否把 AFE 调成“通话模式”
(打开 WebRTC 级 AEC/NS/AGC)。 | true:VoIP/会议
false:离线语音识别 | 99% 场景关 |
| **voice_communication_agc_init** | 通话模式下才生效的 AGC 开关。 | 同上 | 同上 |
| **debug_init** | 打开 AFE 内部调试日志。 | true:调试
false:量产 | 量产关 |
---
### 2 数值/枚举类
| 成员 | 作用 | 取值范围 & 含义 | 建议 |
|---|---|---|---|
| **vad_mode** | VAD 的灵敏度等级。
`VAD_MODE_0` 最松,`VAD_MODE_3` 最严。 | 0~3 | 0=关,1=轻,2=中,3=严 |
| **wakenet_mode** | WakeNet 工作模式(决定通道数/检测阈值)。 | `DET_MODE_0`=关
`DET_MODE_2CH_90`=2 麦 90% 阈值 | 关唤醒就设 0 |
| **afe_mode** | AFE 整体运行档。
`SR_MODE_HIGH_PERF` 最准但吃资源,`SR_MODE_LOW_COST` 最省。 | LOW_COST / HIGH_PERF | ESP32-S3 建议 LOW_COST |
| **afe_perferred_core** | feed/fetch 任务优先跑在哪个核。 | 0 / 1 | 与业务任务错峰即可 |
| **afe_perferred_priority** | AFE 内部线程优先级(5~15)。 | 5=低,15=高 | 一般 5 就够 |
| **afe_ringbuf_size** | AFE 内部环形缓冲帧数。
越大越抗抖动,越大吃 RAM。 | 10~100 | 不开唤醒 10~20 即可 |
| **memory_alloc_mode** | 模型/缓冲放在 PSRAM 还是内部 SRAM。 | `AFE_MEMORY_ALLOC_MORE_PSRAM` → 优先 PSRAM,省内部 RAM | 有 PSRAM 就开 |
| **afe_linear_gain** | 线性数字增益(1.0=不变)。 | 0.1~4.0 | 麦克风灵敏度低可调到 1.5 |
| **agc_mode** | 自动增益控制策略。 | `AFE_MN_PEAK_AGC_MODE_0/1/2` | 默认 2 即可 |
| **voice_communication_agc_gain** | 通话模式下 AGC 目标增益 dB。 | 0~31 | 仅通话模式生效 |
---
### 3 子结构体 `pcm_config`
| 成员 | 作用 | 典型取值 | 说明 |
|---|---|---|---|
| **total_ch_num** | 前端接收的 **总通道数**(mic + ref 之和)。 | 2 | I²S 数据里一共几路 |
| **mic_num** | 其中 **麦克风通道** 数量。 | 1 | 单麦就写 1 |
| **ref_num** | **参考通道**(回声参考、噪声参考)数量。 | 1 | 无回声可 0,有回声就 1 |
| **sample_rate** | 采样率。 | 16000 | MultiNet 固定 16 kHz |
---
### 4 一句话总结
- **想最省电/省 RAM**:
`aec/se/vad/wakenet` 全关,ringbuf 10,LOW_COST,优先 PSRAM。
- **想最稳最抗噪**:
`vad_init=true, vad_mode=2, se_init=true`,ringbuf 50。