Ai_GirlFriend/xuniYou/测试检查清单.md

168 lines
3.9 KiB
Markdown
Raw Normal View History

2026-02-28 18:04:34 +08:00
# 语音通话测试检查清单
## ✅ 优化完成确认
- [x] 服务器 `.env` 文件已添加 `VOICE_CALL_IDLE_TIMEOUT=120`
- [x] 客户端分片参数已优化为官方推荐值3200 bytes, 100ms
- [ ] 服务器已重启(**必须执行**
- [ ] 客户端已重新编译
## 🔧 服务器重启步骤
```bash
# 1. 停止旧进程
pkill -f "uvicorn.*main:app"
# 2. 确认进程已停止
ps aux | grep uvicorn
# 3. 启动新进程
cd /path/to/lover
uvicorn main:app --host 0.0.0.0 --port 30101 --reload
# 4. 确认启动成功
# 应该看到类似输出:
# INFO: Uvicorn running on http://0.0.0.0:30101
```
## 📱 客户端测试步骤
### 1. 准备工作
- [ ] 确保手机/模拟器已连接
- [ ] 确保网络连接正常
- [ ] 确保麦克风权限已授予
### 2. 测试流程
1. [ ] 打开 App
2. [ ] 进入语音通话页面
3. [ ] 检查 WebSocket 连接状态(应该显示已连接)
4. [ ] 按住"按住说话"按钮
5. [ ] **清晰地说 3-5 秒的话**(例如:"你好,今天天气怎么样?"
6. [ ] 松开按钮
7. [ ] 等待响应(应该在 10-20 秒内收到)
### 3. 预期结果
- [ ] 看到"发送中..."提示
- [ ] 看到"识别中..."提示
- [ ] 收到文字回复
- [ ] 听到语音回复
- [ ] 没有 "idle timeout" 错误
## 📊 日志检查
### 客户端日志关键信息
```
✅ 应该看到:
📦 开始分片发送(官方推荐参数)
📊 总大小: [大于 96000] bytes 3秒音频 = 96000 bytes
📊 每片大小: 3200 bytes
📊 发送间隔: 100 ms
✅ 所有音频片段发送完成
✅ 结束标记发送成功
📋 收到控制消息, type: reply_text
🎵 收到音频数据流
📋 收到控制消息, type: reply_end
❌ 不应该看到:
❌ WebSocket 关闭, code: 1000
{"type":"error","msg":"idle timeout"}
```
### 服务器日志关键信息
```
✅ 应该看到:
ASR connection opened
ASR event end=True sentence=[识别的文字]
Handle sentence: [识别的文字]
[LLM 相关日志]
[TTS 相关日志]
❌ 不应该看到:
idle timeout
ASR error
```
## 🐛 常见问题
### 问题1还是出现 "idle timeout"
**检查**
- [ ] 服务器是否已重启?
- [ ] `.env` 配置是否正确?
- [ ] 录音时长是否足够(至少 3 秒)?
**解决**
```bash
# 确认配置
cat lover/.env | grep VOICE_CALL_IDLE_TIMEOUT
# 应该显示:
VOICE_CALL_IDLE_TIMEOUT=120
# 如果没有,手动添加后重启服务器
```
### 问题2没有收到任何响应
**检查**
- [ ] WebSocket 是否连接?
- [ ] 网络是否正常?
- [ ] 服务器是否运行?
**解决**
```bash
# 检查服务器状态
curl http://192.168.1.141:30101/docs
# 应该返回 FastAPI 文档页面
```
### 问题3录音时长太短
**检查**
```
客户端日志中的 "总大小"
- 1 秒 = 32000 bytes ❌ 太短
- 3 秒 = 96000 bytes ✅ 合适
- 5 秒 = 160000 bytes ✅ 更好
```
**解决**
- 说话时间延长到 3-5 秒
- 清晰发音,不要含糊
- 避免背景噪音
### 问题4ASR 无法识别
**可能原因**
- 音频质量差(噪音大)
- 说话不清晰
- 音频格式不对
**解决**
- 在安静环境测试
- 清晰发音
- 确认录音格式为 PCM 16kHz 单声道
## 📞 需要帮助?
如果测试失败,请提供:
1. **客户端日志**(完整的,从按下按钮到收到响应)
2. **服务器日志**(查看 `tail -f logs/app.log`
3. **录音信息**
- 总大小bytes
- 时长(秒)
- 片数
4. **错误信息**(如果有)
## 🎉 测试成功标志
当你看到以下情况,说明测试成功:
1. ✅ 按住按钮,说话 3-5 秒
2. ✅ 松开按钮,看到"发送中..."
3. ✅ 看到"识别中..."
4. ✅ 收到文字回复(例如:"你好呀,今天天气不错~"
5. ✅ 听到语音回复AI 的声音)
6. ✅ 整个过程在 20 秒内完成
7. ✅ 没有任何错误提示
恭喜!语音通话功能已正常工作!🎊