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