Files
Bionic_sphere/Lib/MIC_Driver/Help.md
T
Misaki 5d79f88918 1. 进一步拓展了语音识别,目前可以从sd卡导入模型,避免了model文件占用flash分区大小
2. 进一步修改了语音识别,关闭了关键词唤醒功能,只保留了指令识别功能
3. 构建了业务层的基本框架(增加了底层驱动对于的C++兼容),业务代码采用C++编写,启用了RTTI(运行时类型识别)
2025-09-03 00:19:14 +08:00

3.4 KiB
Raw Blame History

如你所见,这是一份帮助文档。遍布于项目的子目录当中

下面把这段 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)。
trueVoIP/会议
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 10LOW_COST,优先 PSRAM。
  • 想最稳最抗噪
    vad_init=true, vad_mode=2, se_init=trueringbuf 50。