# 语音通话测试检查清单 ## ✅ 优化完成确认 - [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 秒 - 清晰发音,不要含糊 - 避免背景噪音 ### 问题4:ASR 无法识别 **可能原因**: - 音频质量差(噪音大) - 说话不清晰 - 音频格式不对 **解决**: - 在安静环境测试 - 清晰发音 - 确认录音格式为 PCM 16kHz 单声道 ## 📞 需要帮助? 如果测试失败,请提供: 1. **客户端日志**(完整的,从按下按钮到收到响应) 2. **服务器日志**(查看 `tail -f logs/app.log`) 3. **录音信息**: - 总大小(bytes) - 时长(秒) - 片数 4. **错误信息**(如果有) ## 🎉 测试成功标志 当你看到以下情况,说明测试成功: 1. ✅ 按住按钮,说话 3-5 秒 2. ✅ 松开按钮,看到"发送中..." 3. ✅ 看到"识别中..." 4. ✅ 收到文字回复(例如:"你好呀,今天天气不错~") 5. ✅ 听到语音回复(AI 的声音) 6. ✅ 整个过程在 20 秒内完成 7. ✅ 没有任何错误提示 恭喜!语音通话功能已正常工作!🎊