toy-hardware/自定义唤醒词配置使用手册.md

228 lines
5.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AI小智自定义唤醒词配置使用手册
## 🚀 快速开始
### 1. 配置项目
在项目根目录执行配置命令:
```bash
idf.py menuconfig
```
### 2. 导航到配置选项
在menuconfig界面中
```
顶级菜单 → Xiaozhi Assistant → 唤醒词配置
```
### 3. 选择唤醒词模式
**方案A使用自定义唤醒词推荐**
```
[ ] 启用唤醒词检测 # 关闭传统模式
[*] 启用自定义唤醒词检测 # 开启自定义模式
自定义唤醒词 (ni hao xiao zhi) # 拼音配置
自定义唤醒词显示文本 (你好小智) # 显示文本
```
**方案B使用传统固定唤醒词**
```
[*] 启用唤醒词检测 # 开启传统模式
[ ] 启用自定义唤醒词检测 # 关闭自定义模式
```
## 🎨 自定义唤醒词配置示例
### 配置"小爱同学"
```
[*] 启用自定义唤醒词检测
自定义唤醒词 (xiao ai tong xue)
自定义唤醒词显示文本 (小爱同学)
```
### 配置"天猫精灵"
```
[*] 启用自定义唤醒词检测
自定义唤醒词 (tian mao jing ling)
自定义唤醒词显示文本 (天猫精灵)
```
### 配置"小度小度"
```
[*] 启用自定义唤醒词检测
自定义唤醒词 (xiao du xiao du)
自定义唤醒词显示文本 (小度小度)
```
### 配置"嘿Siri"
```
[*] 启用自定义唤醒词检测
自定义唤醒词 (hei siri)
自定义唤醒词显示文本 (嘿Siri)
```
## 📋 拼音输入规则
### 基本规则
- **格式**:汉语拼音,单词间用空格分隔
- **声调**:不需要标注声调
- **大小写**:建议使用小写
- **长度**建议2-5个字效果最佳
### 拼音对照表
| 汉字 | 拼音 | 汉字 | 拼音 |
|------|------|------|------|
| 小 | xiao | 智 | zhi |
| 爱 | ai | 助 | zhu |
| 你 | ni | 手 | shou |
| 好 | hao | 机 | ji |
| 天 | tian | 器 | qi |
| 猫 | mao | 人 | ren |
### 常见错误
`xiaozhi`(连写)
`xiao zhi`(分开)
`ni-hao`(用连字符)
`ni hao`(用空格)
## 🔧 编译和部署
### 1. 编译项目
```bash
idf.py build
```
**预期输出**
```
...
[100%] Built target ai-xiaozhi.elf
Project build complete.
```
### 2. 烧录固件
```bash
idf.py flash
```
### 3. 查看运行日志
```bash
idf.py monitor
```
**成功日志示例**
```
I (12345) CustomWakeWord: multinet:mn5_cn
I (12346) CustomWakeWord: Custom wake word: ni hao xiao zhi
I (12347) CustomWakeWord: Audio detection task started
...
I (15000) CustomWakeWord: Custom wake word 'ni hao xiao zhi' detected successfully!
```
## 🧪 功能测试
### 1. 基础测试
- **开机自检**:查看日志确认唤醒词模式
- **唤醒测试**:说出配置的唤醒词
- **响应测试**:确认设备正确响应
### 2. 对比测试
- **灵敏度**:与传统模式对比响应速度
- **准确率**:测试误唤醒和漏检情况
- **稳定性**:长时间运行测试
### 3. 环境测试
- **安静环境**:测试最低音量阈值
- **噪音环境**:测试抗干扰能力
- **距离测试**:测试有效识别距离
## ⚙️ 高级配置
### 调整检测阈值
如果唤醒词过于敏感或不够敏感,可以修改代码:
**文件**`main/audio_processing/custom_wake_word.cc`
**位置**第67行
```cpp
multinet_->set_det_threshold(multinet_model_data_, 0.5); // 默认0.5范围0.1-0.9
```
- **降低值**如0.3):更容易唤醒,但可能误触发
- **提高值**如0.7):减少误触发,但需要更清晰发音
### 调整超时时间
**位置**第66行
```cpp
multinet_model_data_ = multinet_->create(mn_name_, 2000); // 2秒超时
```
### 调试模式启用
在menuconfig中启用
```
Component config → Log output → Default log verbosity → Debug
```
## 🐛 故障排除
### 编译错误
**错误1**`undefined reference to CONFIG_CUSTOM_WAKE_WORD`
```
解决确保在menuconfig中启用了自定义唤醒词
```
**错误2**`esp_mn_commands_* not found`
```
解决确认ESP-SR组件版本 >= 2.0.3
```
### 运行错误
**错误1**:初始化失败
```
日志Failed to initialize multinet
解决检查PSRAM配置确保ESP32-S3芯片
```
**错误2**:唤醒词不响应
```
检查1. 麦克风硬件 2. 拼音配置 3. 音量大小
```
**错误3**:频繁误触发
```
解决:提高检测阈值或更换唤醒词
```
## 📈 性能优化
### 内存优化
- 确保PSRAM启用
- 监控堆内存使用
- 定期检查内存泄漏
### CPU优化
- 合理设置任务优先级
- 避免在音频任务中执行重操作
- 使用合适的CPU核心分配
## 🔄 版本兼容性
| ESP-IDF版本 | 支持状态 | 备注 |
|-------------|----------|------|
| 5.3+ | ✅ 完全支持 | 推荐版本 |
| 5.2 | ⚠️ 部分支持 | 需要更新ESP-SR |
| 5.1 | ❌ 不支持 | 缺少必要组件 |
## 📞 技术支持
如遇到问题,请检查:
1. 硬件是否符合要求ESP32-S3 + PSRAM
2. ESP-SR组件版本是否正确
3. 拼音配置是否准确
4. 系统日志中的错误信息
---
**祝您使用愉快!** 🎉