本 SDK 专为 WTAIEC43A 开发板设计,基于 ESP32C3 主控芯片、GX8006 语音识别芯片及硅思平台,构建一套完整的本地语音唤醒与云端实时语音对话系统。该方案集成 Wi-Fi 配网、语音识别、WebSocket 实时通信、TTS 音频播放、OTA 升级等核心功能,适用于智能语音助手、语音交互设备等应用场景的开发。
- 🎤 本地语音唤醒与识别(基于 GX8006)
- 🌐 WebSocket 实时云端语音对话
- 📶 支持 blufi 蓝牙配网
- 🔊 本地音频播放
- 🔄 远程 OTA 升级
- 💾 本地配置与音频资源存储
- 🔔 多种提示音音色同步与更新
- ⏹️ 本地打断机制支持按键和语音打断
- 🎚️ 支持语音控制音量、退出对话等功能
- Wi-Fi 配网:支持 blufi 蓝牙配网功能
- GX8006 驱动支持:高效 UART 通信协议、支持语音唤醒与指令识别
- 云端对话:基于 WebSocket 协议与 AI 云端进行实时交互,支持流式语音传输
- 本地播放:支持本地 TTS 音频播放、多种音频格式兼容
- OTA 升级:远程固件更新机制,确保设备功能持续迭代优化
- 按键控制:支持语音唤醒、对话打断、会话退出、Wi-Fi 重置等操作
- LED 指示:实时反映设备运行状态(网络连接、对话进行、待机模式等)
- 语音控制:支持通过语音指令调节音量、退出当前对话等本地控制功能
- 本地打断:对话过程中支持本地打断机制,显著提升用户交互体验
- ESP-IDF v5.3.2
- ESP-ADF v2.7
- QMSD ESP32 SDK(项目内已集成)
- 确保
idf.py可正常编译 ESP-IDF 示例项目get-started/hello_world - 编译 ESP-ADF 示例项目如
player/pipeline_spiffs_mp3以验证 ADF 配置正确性 ADF_PATH环境导入,配置修改CMakeLists.txt:
if(NOT DEFINED ENV{ADF_PATH})
set(ENV{ADF_PATH} "/home/sorz/environment/esp-adf(安装的adf环境目录)")
endif()- 编译本工程
├── main/ # 主程序
│ ├── chat/ # 语音聊天控制逻辑
│ ├── network/ # 网络管理、OTA
│ ├── tone_res/ # 本地提示音资源
│ └── debug/ # 调试相关
├── components/ # 自定义组件
│ ├── gx8006_protocol/ # GX8006 驱动与协议
│ ├── audio_player/ # 音频播放支持
│ ├── aiha_server/ # WebSocket 交互组件
│ ├── ws2812/ # LED 控制驱动
│ ├── ZXAIEC43A-V12/ # 硬件抽象层
│ └── storage_nvs/ # NVS 本地存储管理
├── qmsd_esp32_sdk/ # QMSD 平台 SDK
└── docs/ # 文档
- 设备上电启动,LED 指示灯显示当前设备运行状态
- 若检测到未配置 Wi-Fi 网络,设备将自动进入配网模式(请使用"硅思AIHA智能硬件"小程序进行配网)
- 配网成功后,设备进入待机状态,等待语音唤醒指令
- 用户说出预设唤醒词
你好小明后,设备进入语音对话模式 - 用户可根据需要选择语音指令或按键操作进行交互控制
- 短按一次:退出当前语音会话,返回待机状态
- 连续短按 6 次:清除已保存的 Wi-Fi 配置信息并重启设备
- 音量控制范围:0-100 级,配置信息自动保存至 NVS 存储
- Wi-Fi 网络配置:连接信息自动保存至 NVS 存储,支持断电记忆
- 云端对话存在轻微延迟现象,主要受网络传输速度和 VAD(语音活动检测)控制策略影响
- 建议在稳定的 Wi-Fi 网络环境下运行设备,以确保最佳性能表现
- 强烈建议使用 ESP-IDF 5.3.2 与 ESP-ADF 2.7 版本,以确保最佳的兼容性和稳定性
- 所有设备运行日志建议通过串口监视器进行查看,便于问题排查和调试
- 硬件连接需确保麦克风、扬声器、按键和 WS2812 LED 等组件完整接入
| 问题现象 | 解决方案 |
|---|---|
| 编译失败 | 检查 IDF/ADF 路径配置与版本兼容性 |
| 配网失败 | 检查 Wi-Fi 网络名称/密码与路由器运行状态 |
| 语音无法识别 | 检查麦克风硬件连接及环境背景噪声 |
| 音频播放异常 | 检查扬声器连接状态、音频编码格式支持情况 |
- ESP-IDF 官方文档
- ESP-ADF 官方文档
- 原理图、使用指南见工程下docs目录