Files
SoundGame/research/new8/radio/round3/live-player.md
T
xsl 45124a1b9b feat(new8): 批次1收口——radio/dungeon 双双标记可交付(R3 synthesis×2 + H1 热修 + 定向live复验PASS)
- radio:R3 放行(4/4 人设满分档 5/5、愿意玩、P0=0;live 四修坐实+SA3 真声入局)
- dungeon:R1 0/4→R3 4/4 翻案达成;H1 死亡结算链截断根修(真凶=双击窗幽灵 tap 死后回调路由进 SETTLE,800ms 手势死窗;7 断言含旧代码反证)+ 定向 live 复验 PASS(两局含 R3 同款幽灵场景,结算链 7 句逐句完整)
- 章程账本更新:批次 1 验收 ☑(R4-R6 经用户裁定暂停,视上手反馈续;v2 首条=漫游迷路抢救盲区)
- 断言账面:radio 246 / dungeon 1649 / 9 套件全绿
2026-09-03 03:01:45 +08:00

10 KiB
Raw Blame History

《不眠频率》R3 收口确认轮 · 全拟真试玩报告 — 老墨(走心局)

基本信息

live harness(真 chromium + SenseVoice ASR 听游戏实况,非 mock)。本轮为 R3 打磨修复(G1-G6)的现场确认轮,顺带对 SA3 落地后未经 live 检验的 arg_muffled / brake_screech 取证。

  • 设置:voice=male, speed=1.0, bgm=1.0, guide=full
  • 路线:走心局 p1L/p2L/p3L/p4R(问她)/p5L/p6L/p7L/p8L/p9L → e1「天亮之前」,rep=12 与设计表分毫不差(+1+2+2+1+1+2+2+1),五 bond 全 1
  • 手势 65 个(tap 38 / swipeup 7 / swipeleft 9 / swipedown 2 / swiperight 1,含有效/无效各类),语音 125 段
  • 判定:OK 119 / SFX_BGM_ONLY 70 / TRUNCATED 4 / MISMATCH 2 / SILENCE 0
  • 4 处 TRUNCATED 全部归因到我自己的手势(p1 mid-prompt 缓存滑 / bridge 上滑打断 rep_high 播报 / 0.16s sys_help 竞态毛刺见 P3-1 / 我的 tap 与 gd_continue 起播撞在同 0.3s);0 处游戏自残截断
  • 2 处 MISMATCH 均为 ≤6 字短句 ASR 同音(z1_songo 0.56 / sys_menu_resume 0.57),事件层双双足时播放——按协议不算游戏问题
  • 报错:console 事件 = 0;零叠音(125 段 vstart 全部晚于上一 vend)、零死锁
  • t= 均为解锁后秒数(events 时基 ta);震动模式记法同 haptics.js(confirm[20] / warning[30,50,30,50,30] / beat[8] / error[60,40,60] / danger[25,40,25,40,25])

G1-G6 逐条现场结论

判「修好」标准:R2 synthesis 记录的旧行为做出同样操作后不再出现,且新行为被事件/音频双重证据锁定。

G1 帮助链去重 → 修好(三类等待点 ×2 次上滑全部干净)

  • ONAIR(S:z1_ring_in):第 1 次上滑 t=186.7 → prog_c1(2.24s) → rep_low → sys_help 完整 9.04s;同点第 2 次上滑 t=223.8 → [10]+warning+beat[8],语音只有 prog_c1 → rep_low → z1_ring_in 复播,events 里 sys_help 的 fetch 与 vstart 一个都没有——口令一次没重播,状态句照播。
  • BRIDGE(键 'B'):第 1 次上滑 t=839.0(C2→C3 幕间)→ prog_c3 → rep_high →(sys_help 已入队);我 10 秒后的第 2 次上滑 t=849.3 掐掉在播的 rep_high,新链只排 prog_c3 → rep_high,beat[8]@849.66,无 sys_help——去重生效。
  • ENDING(E:e1):第 1 次上滑 t=1588.6 → e1_a(7.68s 足时) → rep_high → sys_help 完整 9.07s;第 2 次上滑 t=1611.3 → [10]+beat[8],e1_a → rep_high,无 sys_help。
  • 换新等待点首次上滑仍完整口令:三处首滑全部完整播 sys_help(3/3)。全场 sys_help vstart 总数 = 3(两处全量 + 一处 0.16s 竞态毛刺见 P3-1),对比 R2 压力局 38 次逐字重播——公理「提示永不逐字重复」现场闭环。
  • 边界说明:①「sys_skip 每实例一次」同款的重进游戏重置口径本轮未复测(需二次会话),代码注记与实现一致(实例级 Set);② nudge earcon 为振荡器运行时合成,不产生 ABSN 事件,事件层不可见,混音层 0.1s 窗口与垫乐不可分离——以 beat[8] + 零 sys_help fetch 为准签名(P3-2 有仪器侧建议)。

G2 rep_low 补 warning 震 → 修好(含阴性对照)

  • 全场 warning[30,50,30,50,30] 恰好 2 次:t=187.1 与 t=224.1——正是仅有的两次 rep=0 档上滑复听,「还没立起来」出口同时手腕有感,与 TIER_VOICES 注记终于一致(R1 P3-3 / R2 P3 遗留销案)。
  • 阴性对照:rep=mid/high 的全部播报位(bridge 跨档 rep_high t=837.9、ENDING 上滑 rep_high t=1596.8/1619.6、五段尾声)零 warning——震与档位精确挂钩,不是逢上滑就震。
  • 覆盖说明:幕间 enterBridge 的 rep_low 分支(game.js L838)走心路线到不了(rep 只升不降),该支路与上滑位同用一个 _tierCue/同款 vibrate('warning') 调用,本轮以两处实测 + 代码同源作证。

G4 不可跳句空点单击轻震 → 修好(6 例连击签名,无一误伤)

  • 签名 = gesture 层 [20] 后 0.0-0.4s 内跟一记 game 层 beat[8](20→8 连击 ≠ 真确认的单记 20),且被点句子足时播完:
    • 抉择提示句(PROMPT_RE 支路)×2:p3 t=722.5(起播后 2.0s 处单击,6.03s 足时)、p5 t=1047.0(7.52s 足时);
    • F5 链末句支路 ×4:l1_a t=670.9(9.2s 足时)、l1_goo t=828.3、k1_trutho t=1079.9(10.96s 足时)、w1_a t=1171.4——本作通话叙事句全是链末等待型节点,播播中单击一律「点了但没选上」+轻震。
  • 对照组:抉择等待态(voicePlaying=false)空点 t=314.8 只有 [20] 无 [8],走 armChoiceHint 重挂兜底——两条支路区分干净,R2 P3-4「像点上了实则什么都没发生」的误导签名消失。

G6 上滑状态链「状态在前、帮助垫后」→ 修好(三处实测同序)

  • ONAIR t=187.2-200.7:prog_c1 → rep_low → sys_help → 节点复播;
  • BRIDGE t=839.5 起:prog_c3(下一通) → rep_high → (help);
  • ENDING t=1589.0-1608.8:e1_a(结局名) → rep_high → sys_help。
  • 三类等待点顺序完全一致:先报「第几通/第几个结局 + 口碑档」,帮助永远垫底。RING 位按 §2.3 本就无帮助句(代码注记),本轮未单独复测。

整体回归(一局到结局)

  • 完整走心局打出 e1,rep=12 分毫不差;条件差分全对:p4R→heardArgument=true → C4 播 w1_say 组(非 w1_say2);bond_zhou=1 → h1_echo t=1449.79 在 h1_talke vend 后 0.10s 准点接入;五 bond 全 1 → 尾声 ep_zhou/deer/kid/wife/han_ok 五连全救版逐条点名;p9L → knot → d9_face 链 + tape_static。
  • SA3 真音效全部在局内起播(fetch 全 200,ABSN 全部持到自然结束):
    • onair_sting t=2.19(2.14s,b_open 开台);
    • phone_ring 三通 RING 循环垫(5.2s loop,接听即停早于人声:C1 stop@109.84 vs 人声 109.94 等);
    • line_drop 五通挂断咔哒 ×5、line_connect 接通 ×5;
    • amb_rain_city / amb_station / amb_kid_room / amb_street_rain / amb_cab 五个场景垫全起;
    • arg_muffled(C3 争吵闷响):k1_b 上两次起播——本体 t=964.04 与句中回声 t=970.54(= k1_b 起播 +6.5s,sfxEcho 设计值),各 4.58s 持到自然结束,无 stop 事件——「2-3 次取 2」的信息层线索音落地;听感证据为引擎层双起播(混音层与语音/垫乐重叠,astats 无法单列,RMS 差 ~1dB 不作数)。
    • brake_screech(C5 危机拍):t=1432.82 与 danger 长震 [25,40,25,40,25] 同帧起播,2.38s 持到结束,先于人声 h1_danger 整整 2.10s(preMs 2000 设计值,R2 实测 2.1s 复现)——刹车声→预警句→dango 的自动流一气呵成,全程不等单击。
  • F1-F5 无回潮:无效手势零静默(我在叙事链末误滑 3 次全是 error[60,40,60]+gd_invalid,看门狗照常重挂);看门狗全准点(gd_continue/gd_again 25s+25s、gd_ring1/gd_ring2 10s/25s 多轮);F3 接听即停 ×3;F5 尾句 d9_facee(5.30s)/h1_talke(3.52s) 足时;mid-prompt 缓存滑照常零插播生效(p7 t=1302.5);菜单开合(ENDING 结算态 swipedown → 菜单 → 再 swipedown → 结局链从头无缝复播)正常。
  • G3 旁证:male 目录缺失的 19 句 NPC 平铺组每次播放先探 4 个扩展名 404 后回退平铺 200 播出,功能与音色衔接无碍(设计即单音色);非资产类 console=0。

问题清单

P0(卡死/死锁/状态混乱/游戏自残截断)

无。

P1(体验断裂)

无。

P2(不适/设计意图缺席)

无。

P3(建议,3 条)

  1. 连续上滑的链令牌竞态毛刺:BRIDGE 第 2 次上滑落在 rep_high 自然结束前 0.08s(t=849.30 vs vend 849.38),被掐链的续播回调抢先放出了 0.16s 的 sys_help 毛刺(vstart 849.50 → vend 849.66 kill)才被新链令牌叫停。功能无损(新链去重正确、听感是一声咔),但复现窗 <0.1s 的竞态说明 _playSeq 续播处的令牌校验晚于语音起播,建议把 seqToken 检查前移到队列出队之前。
  2. nudge earcon 无事件层签名(仪器侧):earcon 走振荡器合成,探针七类 patch 均不经过,G1 去重的「纯音频标记」只能靠 beat[8]+零 sys_help 反证。建议 harness inject.js 给 guide._playEarcon 加一类轻探针(或在 dev 侧 emit 一条 debug 事件),下一轮可把「震+声」双证据钉死。
  3. 抉择等待态提示句仍 25s 逐字重播:p3 在抉择等待期以 25s 间隔整句重播了两遍(t=751.3 / 777.3,armChoiceHint 看门狗兜底)。与 G1 刚兑现的「提示永不逐字重复」公理同源——等待点帮助已去重,ASK 态的选项句还是逐字复读。纯观察项(R2 起就有、非本轮回归),人设复审时可议是否同样降为纯音频标记。

亮点

  • G1 三类等待点九次上滑零逐字重播,账目口径(状态句永远照播)一点没伤;G2 的 warning 精确得像档位传感器;G4 的 20→8 连击签名把手感误导真正变成了可读反馈。
  • 危机拍这回是「听见刹车再听见人喊」:screech 先到 2.10 秒,danger 震同帧,dango 自动接——SA3 的声音头一回真正参与了叙事节奏。
  • 账目依旧分毫不差:rep=12、五全救尾声、h1_echo 的 0.1s、w1_say 组的条件差分,一个数都不带含糊的。

一句话裁决

愿意放行——G1/G2/G4/G6 四修全部现场坐实且零回潮,完整走心局零叠音零死锁打出 e1(rep=12 分毫不差),arg_muffled/brake_screech 真声入局,radio 可以进 4 人设全员复评;剩下的只有一条 0.16s 竞态毛刺和两条仪器/打磨级建议(P3×3,无 P0/P1/P2)。


附:产物与证据文件

  • 本局:/home/xsl/SoundGame/web/harness/live/out/radio-20260902145336/(events.jsonl 796 事件/125 语音段/65 手势、verdicts.json 195 行、transcript.md、mix.webm 30MB 真实混音)
  • 关键事件窗:G1/G6 ONAIR 对 186.7-232.3;BRIDGE 对 837.8-859.7;ENDING 对 1588.6-1622.5;G4 六例 670.9/722.5/828.3/1047.0/1079.9/1171.4;G2 warning 187.1/224.1;arg_muffled 964.04+970.54;brake_screech 1432.82(人声 1434.92)
  • 引用代码(只读,未改动):/home/xsl/SoundGame/web/radio/game.js(G1 _helpSpokenOnce L1170、G2 _tierCue L1157、G4 L455-463/L577、G6 _withHelp L1184、crisis 节点表 L159-166);/home/xsl/SoundGame/web/engine/haptics.js(模式表 L35-46)