Ai_GirlFriend/ASR测试指南.md
2026-03-05 13:34:40 +08:00

190 lines
3.7 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.

# ASR 语音识别测试指南
## 🎯 当前状态
### ✅ 已完成的修复
1. **前端修复**
- 修复了 `onStop` 回调中的文件处理逻辑
- 添加了 `sendAudioToASR` 方法通过 HTTP POST 发送音频
- 移除了冲突的 WebSocket 备用方案
- 改用 WAV 格式录音(兼容性最好)
2. **后端修复**
- 添加了新的 `/voice/call/asr` 端点处理 JSON 格式音频
- 修复了环境变量加载问题
- 改进了错误处理
- 后端运行在端口 30102
3. **配置更新**
- 前端 `baseURLPy` 更新为 `http://192.168.1.141:30102`
- 录音格式改为 WAV16kHz, 单声道)
## 📱 测试步骤
### 1. 确保后端运行
```bash
cd lover
python main_simple.py
```
应该看到:
```
INFO: Uvicorn running on http://0.0.0.0:30102
```
### 2. 测试后端 ASR 端点
```bash
python test_asr_fix.py
```
应该看到:
```
✅ ASR 请求成功
🎉 ASR 修复测试成功!
```
### 3. 在前端测试录音
1. 打开 uni-app 应用
2. 进入语音通话页面
3. 按住"按住说话"按钮
4. 说话 2-3 秒
5. 松开按钮
### 4. 查看日志
**前端控制台应该显示**
```
📁 开始处理录音文件
✅ 文件读取成功开始发送到ASR
📤 发送ASR请求...
✅ ASR响应: ...
```
**后端日志应该显示**
```
INFO - 收到 JSON ASR 请求,格式: wav
INFO - 解码音频数据成功,大小: XXX 字节
INFO - 上传 WAV 文件到 OSS...
INFO - 调用 DashScope ASR...
INFO - ASR 任务已创建: ...
INFO - ASR 识别成功
```
## 🔍 常见问题排查
### 问题 1音频格式解码失败
**症状**
```
音频格式解码失败,请检查录音设置
```
**解决方案**
- 确认前端使用 WAV 格式录音
- 检查录音参数16kHz, 单声道
- 查看后端日志确认音频数据大小
### 问题 2未识别到语音内容
**症状**
```
音频中未检测到有效语音
```
**原因**
- 录音时间太短(< 1秒
- 环境噪音太大
- 说话声音太小
**解决方案**
- 录音时间保持在 2-5
- 在安静环境测试
- 靠近麦克风说话
### 问题 3WebSocket 连接问题
**症状**
```
Expected URL scheme 'http' or 'https' but was 'file'
```
**原因**
- 旧的 WebSocket 流程仍在运行
- 前端代码没有更新
**解决方案**
- 确认前端已移除 WebSocket 备用方案
- 重新编译前端应用
- 清除应用缓存
### 问题 4后端连接失败
**症状**
```
由于目标计算机积极拒绝,无法连接
```
**解决方案**
- 确认后端正在运行`netstat -an | findstr :30102`
- 检查防火墙设置
- 确认前端配置的端口正确30102
## 📝 预期结果
### 成功的录音识别流程
1. **用户操作**
- 按住说话按钮
- 说话 2-3 "你好今天天气怎么样"
- 松开按钮
2. **前端处理**
- 录音停止
- 读取 WAV 文件
- 转换为 base64
- 发送到 `/voice/call/asr`
3. **后端处理**
- 接收 base64 音频数据
- 解码为二进制
- 上传到 OSS
- 调用 DashScope ASR
- 返回识别结果
4. **用户看到**
- Toast 提示"识别: 你好今天天气怎么样"
## 🚀 下一步优化
1. **添加语音对话功能**
- 将识别结果发送给 LLM
- 生成回复
- 使用 TTS 播放回复
2. **优化用户体验**
- 添加录音动画
- 显示识别进度
- 支持重新录音
3. **错误处理**
- 网络错误重试
- 超时处理
- 友好的错误提示
## 📞 技术支持
如果遇到问题请提供
1. 前端控制台完整日志
2. 后端服务器日志
3. 录音文件大小和时长
4. 网络环境信息
---
**最后更新**: 2026-03-04
**版本**: v1.0