# 《暗码》R1 全拟真试玩报告 两局都真打完(live harness:真 chromium + SenseVoice ASR 听游戏实况,非 mock;控制端口 8131,游戏服务器 8001)。 ## 局 A(主线 · 全译对 · p2左 p4右 p6右 p8右 p9左 → e1「最后一电」) - 设置:`voice=male, speed=1.0, bgm=normal, guide=full` - 产物:`live/A/`(events.jsonl 363 行 / mix.webm 6.4MB / transcript.md 474 行 / verdicts.json) - 语音段:63(vstart/vend 成对);ASR 判定行 86,**OK 83 / MISMATCH 3 / TRUNCATED 0**(事件层截断 0) - 结局:**e1**,尾声四封点名全 ok 线(ep_med_ok / ep_list_no / ep_hand_ok / ep_spy_ok),结算单击后新夜班正常起播 - 三处 MISMATCH 全部归因 ASR 近失(非游戏缺陷): - `cand_bay`「货船。」0.66s 短窗 + 静电底噪 → 听成「破铲」(两字词归一化后相似度惩罚极大) - `r2b_act` sim 0.571(「誊清」听成「同卿」,同音近失,阈值 0.6 线下) - `gd_tune1` sim 0.545(看门狗句在底噪上) - 关键机制实录:T4 danger 拍 step_halt@296.9s → 2s 后 rev_spy@298.9s(L2 预警窗精确);d9_send 配 key_send;e1_a 配 dawn_bell;male 侧处长 b_chief 走「性别目录 404→平铺回退」链(radio G3 同款,VERDICT OK sim 0.913,非静默) - 报错:非资产类 console.error = 0;无死锁、无状态错乱 ## 局 B(压力线 · 带噪声 · 抉择全右 → e2「值完这个班」) - 设置:`voice=female, speed=1.7, bgm=normal, guide=standard` - 产物:`live/B/`(events.jsonl / mix.webm / transcript.md / verdicts.json) - 语音段:67;ASR 判定行 90,**OK 81 / MISMATCH 7 / TRUNCATED 2** - 结局:**e2**(d9_sleep→d9_sleepe 链实录),T2 用密码本提示流(hint_t2 VERDICT OK)——live 实测提示流可行 - 归因(radio 局 B 同款口径): - 2 处 TRUNCATED(cf_confirm/p8_known)全部可归因到**压力驱动自己的噪声 tap**(T4 浏览期注入的连点触发了两段确认的第 2 击与链末推进,把可跳句掐短)——逐段核对 vend 时长,游戏没有自残;p* 不可跳契约由事件层兜底( armed 后连点只缓存 pendingChoice) - 7 处 MISMATCH 均为 1.7× 语速 + 底噪下的 ASR 同音近失(誊清→藤青、今夜交接→今液交际),人耳可辨 - guide=standard 档看门狗只震+earcon、提示句由 onEscapade 补播,全程零静默 ## 结论 - 四结局矩阵两条线(e1/e2)真机走通;摩尔斯时值、danger 拍、key_send 承诺绑定、NPC 回退链全部实况兑现 - 事件层截断 0(A)/ 2(B,玩家 tap 归因);ASR 层无非归因缺陷 - 基础设施修复(本轮沉淀,惠及全部泳道): 1. `control.mjs` 会话种子补 `localStorage.removeItem('soundgame.progress.')`——共享浏览器 profile 下同源 localStorage 跨会话残留曾导致每局进 ASK 续玩流 2. 驱动侧教训:等待页面 `probe_ready` 再点遮罩(并行负载下页面加载数秒,早 tap 丢失);swipe 手势类型为 `swipeleft/swiperight`;事件 url 匹配用裸 id(`p2` 而非 `voice/p2`,性别目录路径 `voice/male/p2.ogg` 不含后者)