2.8 KiB
2.8 KiB
「会中手动成稿」共存压测方案
需求变更后取代原"会中自动滚动"压测(2026-09-11):滚动机制已拆除, 现行为 = 点「生成纪要」→ 对截至当时已定稿的字幕成稿,录音转写全程不停; 增量笔记(.notes.json)使第二次及以后的点击只处理新增句子(分钟级)。
通过线:录音零丢帧、定稿不超时不劣化、成稿期间 UI 不卡死、多次点击增量正确。
1. 准备
- 安装
build-check/summarize-manual-debug.apk。 - 测试音频:任意真实会议录音(日语最佳)≥30 分钟,播放器开单曲循环凑 2~3 小时。
- 手机充电、屏幕常亮(锁屏/Doze 会干扰后台线程)。
- 如要卸载旧版重装:
adb pull /sdcard/Android/data/com.k2fsa.sherpa.onnx/files/models/ D:\sherpa-models-backup备份模型,装完 push 回去。
2. 日志采集(PowerShell 开三个窗口)
# 窗1:App 主日志(SLOT 对账 / SUMMARIZE / ROLLING 续跑标记)
adb logcat -s sherpa-onnx SummarizeLlmJni | Tee-Object D:\stress-app.log
# 窗2:每 5 分钟采样 RSS 与电池温度
while ($true) {
adb shell dumpsys meminfo com.k2fsa.sherpa.onnx | Select-String "TOTAL RSS"
adb shell dumpsys battery | Select-String "temperature|level"
Start-Sleep 300
} | Tee-Object D:\stress-rss.log
# 窗3:录音丢帧(看 s: 恒 0、m: 不增长)
adb logcat | Select-String "audioRecordData" | Tee-Object D:\stress-audio.log
3. 跑测步骤
- Start 录音,循环播放会议音频。
- 约 1 小时后点「生成纪要」→(第 1 次)全量流水线 → 出稿。记录耗时 T1。生成期间字幕应继续实时更新。
- 再过 1 小时点第二次 → 日志应出现
SUMMARIZE resume from notes at N/M,只消化新增段,记录耗时 T2(应远小于 T1)。 - 会议结束 Stop → 再点第三次出终稿。
- 取回产物:
应看到adb exec-out run-as com.k2fsa.sherpa.onnx tar -C files/meetings -c . > D:\stress-out.tar<会话>.jsonl(全量转写)、<会话>.notes.json(断点笔记)、<会话>.md(每次覆盖为最新终稿)。
4. 判读标准(把三个 log + 三份 md 发我)
| 项 | 通过线 | 依据 |
|---|---|---|
| 录音零丢帧 | s:0 恒 0,m: 在成稿窗口内不增长 |
stress-audio.log |
| 定稿不劣化 | 成稿的 1~2 分钟窗口里 SLOT … RESULT=TIMEOUT 频率不高于基线 |
stress-app.log |
| 增量正确 | 第 2/3 次点击 resume from notes 命中,T2 << T1;终稿 .md 覆盖全程且无重复条目 |
stress-app.log + .md |
| 资源 | 引擎驻留只在生成期间(~3.5GB RSS 峰值,完成即回落);温度 >45°C 时记录掉速 | stress-rss.log |
| 质量 | 三次纪要人工评审"无漏关键决定";出典时间戳可回查 .jsonl | .md |
5. 红线回归
MainActivity 顶部 summarizeEnabled=false → 无按钮、无会话文件、行为与加摘要功能前一致。