【AI实践】xiaozhi-esp32虾哥开源版-分析

语音交互总流程

客户端(ESP32) 服务器
| |
| 本地唤醒词检测"小智" |
| |
| 打开音频通道 |
|------------------------>|
| |
| 发送唤醒词音频 |
|------------------------>|
| |
| 发送唤醒事件 |
|------------------------>|
| {"type":"listen", |
| "state":"detect", |
| "text":"小智"} |
| |
| 开始持续音频传输 |
|------------------------>|
| (Opus编码的音频数据) |
| |
| ASR文本结果 |
|<------------------------|
| {"type":"stt", |
| "text":"天气怎么样"} |

芯片侧

系统层调用

codec调用

语音前端AFE

唤醒词检测

VAD检测

音频输入 -> AFE处理 -> VAD检测 -> 状态回调
| | | |
| | | +-> LED显示
| | | +-> 设备状态更新
| | |
| | +-> AFE_VAD_SPEECH/AFE_VAD_SILENCE
| |
| +-> 回声消除(AEC)
| +-> 语音增强(SE)
|
+-> 16kHz采样率
+-> 单声道/双声道

VAD模式的选择影响:

  1. 检测灵敏度:
  • 更高的模式 = 更高的检测门限
  • 更低的模式 = 更容易触发
  1. 环境适应:
  • 嘈杂环境选择高模式
  • 安静环境可以用低模式
  1. 功耗影响:
  • 高模式需要更多处理
  • 低模式处理负担较轻
  1. 用户体验:
  • 高模式可能需要更大声说话
  • 低模式说话音量要求低

在这个项目中选择VAD_MODE_3的原因:

  1. 提高准确性
  2. 减少误触发
  3. 适应各种环境
  4. 与唤醒词检测配合

你可以根据实际使用环境和需求调整VAD模式:

  • 家庭安静环境:可以考虑MODE_1或MODE_2
  • 公共场所:建议使用MODE_3
  • 开发测试:可以用MODE_1方便调试

唤醒词Oneshot

“你好小智,天气”,连读发音

idf从系统环境变量获取sdk路径。

端云通道

客户端 服务器

| |

|------ 唤醒词检测 ------>|

| |

|------ 开始监听 -------->|

| |

|------ 音频数据 -------->|

| |

|<----- ASR结果 ---------|

| |

|<----- TTS音频 ---------|

| |

|------ 停止监听 -------->|

通信类型

获取ASR文本

TTS接收播放

MQTT服务器 ESP32设备

| |

|--- TTS音频数据(Opus) ---->|

| |

| | 1. 加入解码队列

| |

| | 2. OutputAudio线程处理

| |

| | 3. Opus解码为PCM

| |

| | 4. 重采样(如需要)

| |

| | 5. 输出到DAC

总结

当前采用面板板Wi-Fi方案

单麦克风,没有AEC没有全双工

wakeup-speaking-listening-speaking-listening

Server服务

虾哥的服务没有开源

但是提供了一个使用后台

小智 AI 聊天机器人

烧录后,管理设备填入mac地址;

tts引擎使用的是字节跳动,火山引擎

音色列表--语音技术-火山引擎

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值