7.1 KiB
7.1 KiB
部署前检查清单
✅ 代码修改验证
后端 (3个文件)
1. VoiceEvaluationServiceImpl.java ✅
- 已添加
convertToRealPath()方法 - 已改用
BaiduSpeechService - 已添加文件存在性检查
- 已更新
isAvailable()方法
2. BaiduSpeechService.java ✅
- 已配置 API 密钥 (APP_ID = "7307076")
- 已添加 MP3 时长计算 (128kbps)
- 已添加时长日志输出
3. StudyVoiceEvaluationController.java
- uploadAndEvaluate 接口正常
- 支持 mp3 格式上传
前端 (3个文件)
1. speech-recorder.js ✅
- 录音格式:MP3
- 码率:128kbps
- frameSize:10
- 延迟:1500ms + 1000ms
- 已添加
verifyFile()方法 - 已添加
createBackup()方法 - 已添加权限检查
2. evaluation.vue ✅
- 录音格式:MP3
- 码率:128kbps
- 已添加延迟和验证
- 已添加诊断信息
- 已添加权限检查
- 已添加文件大小警告
3. speech.vue ✅
- 已删除冗余权限代码
- 使用 speechRecorder.init()
🔧 配置文件验证
application.yml
ruoyi:
profile: D:\wwwroot\study_web\web\profile
- 路径正确
- 目录存在
config.js
DEFAULT_SERVER_HOST: '192.168.0.106'
DEFAULT_SERVER_PORT: '30091'
- IP地址正确
- 端口号正确
📂 服务器环境验证
文件系统
D:\wwwroot\study_web\web\profile存在D:\wwwroot\study_web\web\profile\upload存在D:\wwwroot\study_web\web\profile\upload\voice存在- 目录有写入权限
网络连接
- 服务器能访问
https://vop.baidu.com - 服务器能访问
https://aip.baidubce.com - 防火墙已开放 30091 端口
百度API
- APP_ID: 7307076
- API_KEY: RtL2IfV3FbLnVDDacRV6QDae
- SECRET_KEY: NobJaGFov7II95fnFUBNGBk0Wm3fcNIB
- 访问 https://console.bce.baidu.com/ai 确认额度
🚀 打包部署步骤
1. 打包后端
cd Study-Vue-redis
mvn clean package -DskipTests
- 打包成功
- jar文件生成
2. 打包前端
cd fronted_uniapp
npm run build:app
# 或
npm run build:mp-weixin
- 编译成功
- 安装包生成
3. 部署后端
- 停止旧服务
- 上传新jar
- 启动新服务
- 查看启动日志无错误
4. 安装前端
- 卸载旧APP
- 安装新APP
- 首次启动授予录音权限
🧪 功能测试清单
测试1:录音功能 (基础)
步骤:
1. 打开语音测评页面
2. 输入测评内容:"春眠不觉晓"
3. 点击"开始录音"
4. 清晰朗读 5 秒
5. 点击"停止录音"
6. 等待 3 秒
预期:
✅ 显示"录音完成"
✅ 控制台显示文件大小 > 70KB
✅ 诊断信息正常
- 通过
测试2:文件验证
步骤:
查看控制台日志
预期:
✅ 第1次验证:size < 50KB
✅ 第2次验证:size 增长
✅ 第3次验证:size 稳定
✅ 文件已完全保存
✅ 备份成功
- 通过
测试3:语音评测 (完整流程)
步骤:
1. 录音 8 秒
2. 停止录音
3. 点击"开始评测"
4. 等待 5-10 秒
预期:
✅ 显示"评测中..."
✅ 后端日志显示:
- 转换后的文件系统路径
- 文件存在,大小: XXX bytes
- 调用百度API识别
- 百度语音识别结果: XXX
- 语音评测完成,总分: XX
✅ APP显示评测结果
✅ 分数 > 0
- 通过
测试4:短录音警告
步骤:
1. 录音 1 秒
2. 停止录音
预期:
✅ 弹窗警告"录音太短"
✅ 提供"重新录音"选项
- 通过
测试5:长录音
步骤:
1. 录音 15 秒
2. 停止录音
3. 评测
预期:
✅ 文件大小 > 200KB
✅ 评测成功
✅ 识别完整
- 通过
测试6:多次录音
步骤:
1. 连续录音 3 次
2. 每次都评测
预期:
✅ 每次都成功
✅ 历史记录正确保存
- 通过
📋 后端日志验证
关键日志(成功案例)
开始语音评测,音频路径:/profile/upload/voice/2025/12/07/xxx.mp3
转换后的文件系统路径:D:\wwwroot\study_web\web\profile\upload\voice\2025\12\07\xxx.mp3
文件存在,大小:128567 bytes
调用百度API识别音频 - 大小: 128567 bytes, 格式: mp3, 估算时长: 8.04秒
百度API响应: {"err_no":0,"result":["春眠不觉晓"],...}
百度语音识别结果: 春眠不觉晓
语音评测完成,总分: 95
检查项
- 路径转换正确
- 文件存在
- 文件大小合理
- 时长计算准确
- 百度API响应成功
- 识别结果非空
- 评分合理 (0-100)
📋 前端日志验证
关键日志(成功案例)
[录音] 开始录音
[录音] 录音结束,详细信息: { duration: 8500, ... }
[录音] 第1次验证成功: { size: 45000, sizeKB: 43.95KB }
[录音] 第2次验证成功: { size: 100000, sizeKB: 97.66KB }
[录音] 文件仍在增长: +55000 bytes
[录音] 第3次验证成功: { size: 128567, sizeKB: 125.55KB }
[录音] 文件大小稳定,编码完成
[录音] 文件已完全保存,大小: 128567 bytes
[录音] 备份成功: .../recordings/voice_backup_xxx.mp3
录音文件信息: {
actualSize: 128567,
actualSizeKB: "125.55",
duration: 8500,
durationSec: "8.5",
expectedSize: 136000,
expectedSizeKB: "132.81",
sizeRatio: "94.5%"
}
检查项
- 三次验证都成功
- 文件大小递增
- 编码完成确认
- 备份成功
- 诊断信息完整
- 大小比例 > 50%
⚠️ 常见问题排查
问题1:录音文件太小
症状: size < 预期的50% 排查:
- 查看三次验证日志
- 检查是否有"文件仍在增长"
- 确认延迟时间足够
- 尝试改用WAV格式
问题2:路径转换错误
症状: "文件不存在" 排查:
- 检查 application.yml 配置
- 确认服务器目录存在
- 检查路径分隔符(Windows: , Linux: /)
问题3:百度API失败
症状: "识别失败" 排查:
- 检查API密钥
- 确认网络连接
- 查看百度API额度
- 检查文件格式和大小
问题4:权限被拒绝
症状: "录音权限被拒绝" 排查:
- 设置 → 应用 → APP → 权限 → 麦克风
- 卸载重装APP
- 检查系统版本兼容性
✅ 部署完成标志
全部测试通过后,确认:
- 后端代码已修改
- 前端代码已修改
- 后端已重新打包
- 前端已重新编译
- 服务器已部署
- APP已安装
- 权限已授予
- 基础录音测试通过
- 完整评测测试通过
- 日志验证通过
- 备份机制工作
- 诊断信息正常
🎯 成功标准
- 录音成功率: > 95%
- 文件完整率: > 98%
- 评测成功率: > 90%
- 识别准确率: 取决于发音
- 备份成功率: > 90%
📞 问题反馈
如果仍有问题,提供以下信息:
- 前端完整日志
- 后端完整日志
- 诊断信息截图
- 录音时长和文件大小
- 测试环境(设备型号、系统版本)
生成时间:2025-12-07