Ai_GirlFriend/xuniYou/立即测试指南.md
2026-02-28 18:41:16 +08:00

195 lines
4.4 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.

# 🚀 立即测试指南
## ✅ 已修复的问题
### 问题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%(如果按照指南操作)