# 部署前检查清单 ## ✅ 代码修改验证 ### 后端 (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 ```yaml ruoyi: profile: D:\wwwroot\study_web\web\profile ``` - [ ] 路径正确 - [ ] 目录存在 ### config.js ```javascript 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. 打包后端 ```bash cd Study-Vue-redis mvn clean package -DskipTests ``` - [ ] 打包成功 - [ ] jar文件生成 ### 2. 打包前端 ```bash 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% **排查:** 1. 查看三次验证日志 2. 检查是否有"文件仍在增长" 3. 确认延迟时间足够 4. 尝试改用WAV格式 ### 问题2:路径转换错误 **症状:** "文件不存在" **排查:** 1. 检查 application.yml 配置 2. 确认服务器目录存在 3. 检查路径分隔符(Windows: \, Linux: /) ### 问题3:百度API失败 **症状:** "识别失败" **排查:** 1. 检查API密钥 2. 确认网络连接 3. 查看百度API额度 4. 检查文件格式和大小 ### 问题4:权限被拒绝 **症状:** "录音权限被拒绝" **排查:** 1. 设置 → 应用 → APP → 权限 → 麦克风 2. 卸载重装APP 3. 检查系统版本兼容性 --- ## ✅ 部署完成标志 全部测试通过后,确认: - [x] 后端代码已修改 - [x] 前端代码已修改 - [x] 后端已重新打包 - [x] 前端已重新编译 - [x] 服务器已部署 - [x] APP已安装 - [x] 权限已授予 - [x] 基础录音测试通过 - [x] 完整评测测试通过 - [x] 日志验证通过 - [x] 备份机制工作 - [x] 诊断信息正常 --- ## 🎯 成功标准 - **录音成功率**: > 95% - **文件完整率**: > 98% - **评测成功率**: > 90% - **识别准确率**: 取决于发音 - **备份成功率**: > 90% --- ## 📞 问题反馈 如果仍有问题,提供以下信息: 1. 前端完整日志 2. 后端完整日志 3. 诊断信息截图 4. 录音时长和文件大小 5. 测试环境(设备型号、系统版本) --- 生成时间:2025-12-07