# Round 4 QA 报告:Parakeet English 高级模型 状态:部分通过,待断网英文识别 日期:2026-06-03 测试分支:`codex/round4-parakeet-english` 当前实现 commit:`ce96a0e` ## 1. 自动化与构建 已通过: - `go test ./... -count=1` - `npm run build` - `git diff --check` - 本地 macOS arm64 App 构建、安装、签名验证 - 本地 DMG `hdiutil verify` 相关日志: - `logs/go-test-all-20260603-round4-after-qa-fix.log` - `logs/npm-run-build-20260603-round4-after-qa-fix.log` - `logs/git-diff-check-20260603-round4-after-qa-fix.log` - `logs/local-build-install-20260603-round4-after-qa-fix.log` ## 2. 真机 QA 结果 | 项 | 结果 | 证据 | |---|---|---| | English 默认模型 | PASS | English 状态默认 Moonshine,Parakeet 作为 Advanced/可选模型显示 | | Parakeet 下载 | PASS | 下载官方 `sherpa-onnx-nemo-parakeet-unified-en-0.6b-int8-non-streaming` 包,落盘到 `models/parakeet-en` | | Parakeet 必需文件 | PASS | `encoder.int8.onnx`、`decoder.int8.onnx`、`joiner.int8.onnx`、`tokens.txt` 均存在 | | Parakeet 加载 | PASS | 15:07:39 日志显示 `ASR engine ready: Parakeet English · CPU` | | Parakeet 英文识别 | PASS | 15:11:04 识别 `Do you understand me?`,并写入历史 | | Moonshine 回退 | PASS | 15:13:04 日志显示 `ASR engine ready: Moonshine English · CPU` | | Moonshine 英文识别 | PASS | 15:18:27 识别 `This is a most shy fullback test.`,并写入历史 | | 中文 SenseVoice 回归 | PASS | 15:19:24 日志显示 `ASR engine ready: SenseVoice · CoreML (Apple Neural Engine)` | | SenseVoice 中文识别 | PASS | 15:29:18 识别 `这是中文 since voice 回归测试。`,并写入历史 | | 下载失败保护 | PASS | 中途 App 退出后 Moonshine 仍可用;补丁后下一次下载会清理旧 partial | | 用户数据保护 | PASS | `history.json`、`userdict.json`、`config.json` 未丢失,历史持续写入 | ## 3. QA 预检发现的问题和修复 ### 3.1 下载中 Engine UI 状态误导 现象: - Parakeet 下载过程中,旧 Moonshine 引擎仍可用,但 UI 曾显示 Engine Loading。 处理: - 前端只在已安装模型切换或下载完成后设置 Engine Loading;下载过程中保留当前引擎状态。 结果: - 补丁后下载期间 Engine 显示 `Moonshine English · CPU`,符合真实状态。 ### 3.2 中途退出留下大体积 partial 现象: - Parakeet 下载中途 App 退出后,`.downloads/parakeet-en` 留下约 439 MiB partial。 处理: - `DownloadProfile` 在同模型新下载开始前清理旧 `.downloads/` partial。 结果: - 补丁后重新下载时旧 partial 被清理,新 run 从 0 开始,最终成功安装。 ## 4. 待完成项 - Parakeet 断网英文识别。 - 断网后重启 App,确认 Parakeet 仍可加载并识别。 ## 5. QA 观察项 - 中文回归测试后日志出现短时间多次模型初始化记录:`sensevoice-zh`、`moonshine-en`、`sensevoice-zh`。最终状态回到 `SenseVoice · CoreML (Apple Neural Engine)`,功能结果通过。建议后续继续观察是否存在设置页快速切换或异步 reload 触发的初始化交叉。