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 套件全绿
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
# 《不眠频率》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)
|
||||
@@ -0,0 +1,22 @@
|
||||
# P1 视障资深玩家评审:《不眠频率》(R3 终审)
|
||||
|
||||
> 评审依据:research/new8/radio/round3/transcript-main.md(E1 全救版一局)+ transcript-stress.md(乱按压力局,与 R1/R2 同剧本逐拍可比:菜单 38 次、乱试 199 次、收尾「结局链照样走完」)+ round2/p1-blind.md(我自己的 R2 意见,逐条回执)+ docs/design/15-radio.md §486-537(G1-G6 dev 侧登记,只作对照不作耳证)。round3/ 目录**没有 live-player.md**——R3 协议第 2 步那局 live 确认没进我的材料,见建议 2。
|
||||
> 沿用我两轮立的规矩:【状态】行是转写器注记,按实际发声评审;离线时间轴断不了案的地方,断言与真机优先。
|
||||
|
||||
### 不眠频率
|
||||
- 状态感知:5/5(R1 4.5 → R2 4.5 → 本轮收官)—— R2 扣的 0.5 两笔,一笔修掉一笔销账:一是帮助链垫在状态前面,G6 重排落地,main t+54.1「现在是今晚第一通电话。」→ t+56.3「今晚的口碑,还没立起来。」→ t+58.4 才轮到帮助句;stress 39 次状态查询(t+17.0/44.5/55.0/65.4……)全部此序,无一例外。二是 F3 铃声离线听不见——那是仪器欠我的,不是游戏欠我的,记在仪器账上(见建议 3)。本轮还白捡一笔:G2 的 rep_low warning 震终于到账,main t+54.1、stress t+17.0/44.5 共九处 rep_low 状态播报带警告三连震,跨档之后(stress t+182.6 起不好不坏)自动闭嘴——警告只在该警告的时候警告,这才是纪律。底盘两轮没退过:每通报名(main t+14.8/96.9/127.1/161.2/200.0)、199 次乱按后锚没垮(stress 收尾状态行照报「乱试 199 次、逛菜单 38 次」)。另外 SA3 音效这回在离线转写里首次成套入耳(arg_muffled t+132.4、brake_screech t+223.0/994.2、tape_static t+244.7)——R2 我说的「凑齐进推荐位」,从真机报告升级成了我转写耳朵里的货。
|
||||
- 下一步明确性:5/5(保持)—— 开场三件事 t+2.1/6.4/10.6 一次讲清,第一通 t+14.8 就到;看门狗 main t+42.0 准点;G1 去重把重复上滑从「约 10 秒全量链」变成「约 4 秒短链+beat 标记」,对 75 档语速用户是净减负,信噪比反而涨了。main 全程 253 秒到 E1 收播,没有一秒不知道该干什么;stress 75 分钟乱流零死锁零无声吞手势(收尾行原文背书)。
|
||||
- 愿意继续玩:是 —— 三轮里最硬的一票:R2 我留的两个 0.25 名目一笔修掉(G6)一笔销案(G3),synthesis 挂的 G1/G2/G5 三件全部白纸黑字落地;stress 打出 e4 变体收播(t+1018.0-1020.1「留言机的红灯,又多亮了一夜」)加尾声混合账,main 打出 E1 五人全救。四结局我已见其四。这班夜车在我这直接发车。
|
||||
- P0 问题:无(两局转写范围内)。失败归因照例逐笔对账:stress t+494.0「她走了。没上车,也没退票」(我 t+457.2 说的「退不退,都是你的自由」)、t+664.3「你许了个兑不了的现」(我 t+659.2 许的谎);尾声五条逐人入账(t+1028.6-1037.1:老周谢歌对应我 p1 陪哼、小鹿退票对应 p3 右、糖糖楼下在吵对应谎、陈姐末班车、老韩小红花对应陪聊),因我陪了歌,t+1006.5「这城市的夜,是接着的」照常接入——bond 回响不撒谎。跨档播报只在 t+964.8「在听众里立住了」出现一次,低→低不播——账没多也没少。
|
||||
- 建议:
|
||||
1. G1 的 v2 尾巴(不阻塞交付):去重按等待点键控,每个新节点首滑仍是全量帮助句——stress 全量帮助从 R2 的 39 次降到 20 次,减半但没归零。下一版把「全量」收成每局一次+菜单常驻入口,其余一律短版,75 档用户的过路费才能清零。实例级、不跨会话这一条我认:重进游戏首滑给完整口令是对的,别改成跨实例。
|
||||
2. R3 协议第 2 步那局 live 确认(重点本来就是「G1 帮助链行为、真铃声在局内表现」)没进我的材料。收口归档前补进 round3/——我手里最后两笔仪器账(RING 离线无铃声事件、压力局语速仍标 1)要靠真机耳证销案。
|
||||
3. 转写器再收敛一步:t+0 那块 44 行「资产缺失→静默」警告块这回没了,干得漂亮;把 RING 铃声事件和语速标注也接上,别让下一轮评委接着做考古。
|
||||
|
||||
#### R2 遗留回执
|
||||
1. 【建议 1:上滑状态链重排并截短(R1 建议 2 一脉,两轮挂账)】→ **已修(G6)**。「当前通号 → 口碑 → 帮助」两局 39 次全部此序;MENU 链无状态句、帮助保持在前——分寸对,没有一刀切。销账。
|
||||
2. 【建议 2:「首播必完整、复播可即掐」写成显式规则+断言(G5)】→ **已登记**。15-radio.md 规则语句白纸黑字(抉择句 PROMPT_RE 门、F5 链末保护、F4 锁释放、复播即掐各归各条),新增断言「锁不随复播重新武装」把「保护不得扩大化」也一并锁死。口头契约转正,收货。
|
||||
3. 【建议 3:转写器与真机口径收敛(三件)】→ **清了一件半**:t+0 警告块消失(销);RING 离线仍无铃声事件、压力局语速仍标 1(仍挂,纯仪器账,见建议 2/3)。
|
||||
4. 【synthesis G1:帮助链去重】→ **已修,且按我 R2 立的规矩办**。「状态句照播——复述状态=合法帮助」是我 R2 亲口说的先例,dev 抄了作业:同节点第 2 次起帮助句被 beat 轻震+nudge earcon 顶掉(stress 18 处,R2 是 0),状态(通号+口碑)一次不少。选纯音频方案、不加新台词,成本判断我也认。剩余尾巴见建议 1。
|
||||
5. 【synthesis G3:k1_a/k1_b male 静默回退】→ **解释成立,销案**。糖糖设计即单音色童声 NPC(§5.3 约束),male 404→平铺 200 是回退链正常工作;「同通声线跳变」实为主播声部(随 voice 设置)与糖糖童声交替,属电话音质感。不为它破 NPC ≤5 音色约束,这个判断是对的。
|
||||
6. 【R2 五修回归】→ **零倒退**。看门狗 main t+42.0 准点;尾句保护「他们明天,会一起给我切蛋糕吗?」t+150.4、「但空着的那一秒,你说满了」t+246.8 一字不少;rep=0 九处仍是「还没立起来」;F4 续玩锁 stress 未见异常。
|
||||
@@ -0,0 +1,19 @@
|
||||
# R3 Synthesis —《不眠频率》(radio)
|
||||
|
||||
> 产品裁定(批次验收收口轮)| 证据源:R3 真机确认局(round3/live-player.md:四修全坐实零回潮,e1 收局 rep=12,125 段零叠音)+ 4 人设终审(P1 5/5、P2 5/5 首评、P3 5/5、P4 5/5——全员满分档,全员愿意玩,无 P0)
|
||||
|
||||
## 1. 验收门裁定:**通过,标记可交付 ✅**
|
||||
|
||||
- 章程门槛(≥3/4 人设愿意玩 + 无 P0 状态混淆):**4/4 愿意玩,P0=0,超额达成**。
|
||||
- 三轮轨迹:R1 5/5 愿意玩(P0=0)→ R2 五修坐实 → R3 打磨收口。radio 全程未出现状态混淆类 P0,是批次 1 的质量基准线。
|
||||
- 真机最终局:SA3 真声全面参与叙事(arg_muffled 本体+6.5s 回声双起播、brake_screech 先于人声 2.10s 同帧进危),「声音即世界」的设计意图在真机上成立。
|
||||
|
||||
## 2. 遗留(全部非阻塞)
|
||||
|
||||
- **P3×3(R3 live)**:0.16s sys_help 竞态毛刺(连续上滑落在自然结束前 0.08s 被掐链抢播)→ v2;nudge earcon 无事件层探针 → 仪器建议;ASK 态提示句 25s 逐字重播 → 与 G1 公理同源的设计张力,记 v2 手势宪法专项。
|
||||
- **v2 候选**(各轮人设建议汇总):G1 去重集合跨实例持久化;状态链第 4 段化;4 结局收集进度轻提示。
|
||||
- 仪器:harness speed 字符串归一、丢 tap 重发、探针通道隔离(同机双 live 混音)——记入批次 2 协议改进。
|
||||
|
||||
## 3. 后续
|
||||
|
||||
radio 冻结功能面进入用户上手体验;批次 2 启动时作为叙事模式范本(模板沉淀:15-radio.md + 状态机/抉择树/口碑数值三件套可直接复制到 abyss/cipher/keeper)。
|
||||
Reference in New Issue
Block a user