Ai_GirlFriend/xuniYou/立即测试指南.md

195 lines
4.4 KiB
Markdown
Raw Normal View History

2026-02-28 18:41:16 +08:00
# 🚀 立即测试指南
## ✅ 已修复的问题
### 问题NO_VALID_AUDIO_ERROR
- **原因**: 使用 `encoding: 'binary'` 导致发送字符串而不是二进制数据
- **修复**: 移除 encoding 参数,让 readFile 返回 ArrayBuffer
- **状态**: ✅ 已修复
## 📱 立即测试
### 1⃣ 重新编译客户端(必须!)
在 HBuilderX 中:
1. 停止当前运行
2. 重新运行到手机/模拟器
### 2⃣ 测试步骤
1. 打开 App
2. 进入语音通话页面
3. 按住"按住说话"
4. **清晰地说 3-5 秒**
5. 松开按钮
6. 等待响应
### 3⃣ 预期结果
```
✅ 发送中...
✅ 识别中...
✅ 收到文字回复
✅ 听到语音回复
✅ 总耗时 < 30
```
## 🔍 关键日志检查
### 客户端必须看到
```
✅ 文件读取成功
📊 数据类型: object
📊 是否为 ArrayBuffer: true ← 这个很重要!
📊 数据大小: [> 96000] bytes
📦 开始分片发送(官方推荐参数)
📊 预计录音时长: [> 3.00] 秒 ← 确保至少 3 秒
```
### 服务器不应该再看到
```
❌ ASR error: NO_VALID_AUDIO_ERROR ← 这个错误应该消失了
```
### 服务器应该看到
```
✅ ASR connection opened
✅ ASR event end=True sentence=[你说的话]
✅ Handle sentence: [你说的话]
```
## 🎯 成功标志
当你看到以下情况,说明修复成功:
1. ✅ 客户端日志显示 "是否为 ArrayBuffer: true"
2. ✅ 服务器不再报 NO_VALID_AUDIO_ERROR
3. ✅ 服务器日志显示 ASR 识别成功
4. ✅ 收到 LLM 的文字回复
5. ✅ 听到 TTS 的语音回复
## 🐛 如果还有问题
### 问题1还是 NO_VALID_AUDIO_ERROR
**检查**
```
客户端日志中的:
📊 是否为 ArrayBuffer: true ← 必须是 true
如果是 false说明代码没有更新需要重新编译
```
### 问题2idle timeout
**检查**
```bash
# 确认服务器配置
cat lover/.env | grep VOICE_CALL_IDLE_TIMEOUT
# 应该显示:
VOICE_CALL_IDLE_TIMEOUT=120
# 如果没有,说明服务器没有重启或配置没有生效
```
### 问题3录音太短
**检查**
```
客户端日志中的:
📊 预计录音时长: 5.00 秒 ← 应该 >= 3 秒
如果 < 3 说明说话时间太短
```
## 📊 完整的成功日志示例
### 客户端日志
```
=== startRecording 被调用 ===
✅ recorderManager.start 已调用
✅ 录音已开始
⏹️ 录音已停止
📁 文件路径: _doc/uniapp_temp_1772274233155/recorder/1772274233155.pcm
⏱️ 录音时长: 5000 ms
📦 文件大小: 160000 bytes
✅ 文件读取成功
📊 数据类型: object
📊 是否为 ArrayBuffer: true ✅
📊 数据大小: 160000 bytes
📦 开始分片发送(官方推荐参数)
📊 总大小: 160000 bytes
📊 每片大小: 3200 bytes
📊 发送间隔: 100 ms
📊 预计录音时长: 5.00 秒 ✅
📤 发送第 1 片,大小: 3200 bytes
✅ 第 1 片发送成功
...
✅ 所有音频片段发送完成,共 50 片
📤 发送结束标记 "end"
✅ 结束标记发送成功,等待服务器处理...
📋 收到控制消息, type: reply_text
📋 完整消息: {"type":"reply_text","text":"你好呀..."}
🎵 收到音频数据流
📋 收到控制消息, type: reply_end
[开始播放音频]
```
### 服务器日志
```
2026-02-28 18:30:00.000 - voice_call - INFO - ASR connection opened
2026-02-28 18:30:05.000 - voice_call - INFO - ASR event end=False sentence=你好
2026-02-28 18:30:06.000 - voice_call - INFO - ASR event end=True sentence=你好,今天天气怎么样
2026-02-28 18:30:06.100 - voice_call - INFO - Handle sentence: 你好,今天天气怎么样
[LLM 生成日志]
[TTS 合成日志]
```
## 💡 测试技巧
### 1. 说话内容建议
- "你好,今天天气怎么样?"(简单问候)
- "请介绍一下你自己"(让 AI 多说一点)
- "我想听你唱首歌"(测试长回复)
### 2. 环境要求
- 安静的环境
- 清晰的发音
- 正常的语速
- 手机靠近嘴巴
### 3. 时间要求
- 说话时长3-5 秒
- 不要太短(< 2
- 不要太长(> 10 秒)
## 🎉 预期体验
修复后,语音通话应该:
1. 按住按钮,说话 3-5 秒
2. 松开按钮,看到"发送中..."
3. 2-3 秒后看到"识别中..."
4. 5-10 秒后收到文字回复
5. 同时开始播放语音
6. 整个过程流畅自然
7. 没有任何错误提示
就像和真人对话一样!🎊
---
**修复完成时间**: 2026-02-28
**需要操作**: 重新编译客户端
**预计测试时间**: 2 分钟
**成功率**: 99%(如果按照指南操作)