# Audio AFE 示例 ## 简介 本示例演示如何在内置 AFE frontend 模式下使用 `av_processor` 组件。它实现了一个带唤醒提示音的麦克风到扬声器回环流程:`audio_recorder` 先经过 AFE 处理采集音频,再由 `audio_feeder` 将处理后的音频实时播放出来;当检测到唤醒词后,会通过独立的 `prompt player` 播放 SPIFFS 中的提示音。 ## 硬件要求 本示例基于 **ESP32-S3-KORVO2-V3** 开发板实现,该板子集成了麦克风阵列和扬声器,适合测试 AEC、NS、VAD、AGC 等 AFE 能力。 ## 功能说明 ### audio_processor 组件 `audio_processor` 提供了统一的音频处理接口,主要包括以下功能模块: - **audio_recorder(录音器)**:负责从麦克风采集音频数据,并运行内置 `ai_afe` 前端 - **audio_feeder(播放器)**:负责将处理后的音频送入播放管道,实现实时播放 - **prompt player(提示音播放器)**:负责在唤醒开始事件到来时播放提示音文件 - **AFE frontend**:在 esp-sr 前端路径中启用唤醒、AEC、NS、VAD、AGC 等集成能力 ### AFE 回环流程 本示例主要用于演示内置 AFE 唤醒路径: 1. **录音**:通过 `audio_recorder` 从麦克风采集音频数据 2. **AFE 处理**:在输出编码数据前先经过内置 `ai_afe` 前端,并启用 wakeup/AEC/NS/VAD/AGC 3. **唤醒提示音**:检测到 `WAKEUP_START` 事件后,通过 `prompt player` 播放 `/spiffs/lai_lo.mp3` 4. **播放**:将处理后的 PCM 数据送入 `audio_feeder` 实时回放 实现流程: - 初始化板级音频通路,并注册基于回调的录音/播放 I/O - 挂载 `spiffs_data` 分区,并从 `/spiffs` 提供提示音文件访问 - 使用 `DEFAULT_AV_PROCESSOR_AFE_CONFIG()` 配置录音器 - 在 AFE wakeup mode 下启用 AEC、NS、VAD、AGC - 打开 recorder、playback、prompt player 和 feeder 模块 - 在 `ESP_GMF_AFE_EVT_WAKEUP_START` 事件中触发提示音播放 - 在主循环中持续读取处理后的音频数据并送入 feeder ## 使用说明 1. 执行 `. ./prebuild.sh` 脚本,根据提示选择开发板型号 2. 使用 `idf.py flash monitor -p` 命令完成烧录并运行程序 3. 构建时会将 [spiffs](/home/xutao/workspace-20/av_processor_v2/examples/audio_afe/spiffs) 目录中的 `lai_lo.mp3` 打包到 `spiffs_data` 分区 4. 运行后,对着麦克风说出唤醒词,设备会先播放提示音 5. 随后可以继续对着麦克风说话,并从扬声器中监听经过 AFE 处理后的回环音频 ## 配置参数 - 采样率:16000 Hz - 位深度:16 bit 录音输出 / 播放数据 - 声道数:1 - 帧时长:20 ms - 提示音文件:`file://spiffs/lai_lo.mp3`
To create a project from this example, run:
idf.py create-project-from-example "jason-mao/av_processor=0.6.0:audio_afe"