Files
SoundGame/research/new8/detective/round1/live-player.md
T
xsl c8843233b0 research(new8/batch2): abyss + detective 迭代闭环收口——双双 R1-R2 连续达标裁定可交付
abyss《深海回音》:
- R1 补 synthesis(5/5 愿意玩 P0=0)+ 补录 R1 缺失裁决材料
- R2 十修全部现场坐实:F1 ping迟到/尾句保护首播制/链末看门狗不拆/回波静默一拍/dv4_dual扣账口播/crit水面变体/看门狗13s/震循环1.1s/震去重/状态链人数句
- 补录语音18段(flock串行,QC无离群);playtest 242→278
- 终裁:4/4 人设满分档,连续 2 轮达标 → 可交付 ✅

detective《雨夜专案》:
- R1 取证轮:补跑 live 两会话(认真新手33分钟全弧线/乱按200s三级保底抢救),5/5 愿意玩 P0=0
- R2 十一修全部坐实:intro完整落声/tut不被掐/按轴取句/人名指认/结案确认闸/指路句/选句记忆位/hint轻震/st_wrong当场记账/tut_skip补动词/L2疑点齐分支
- 补录+改词33条(29新增+4重录);playtest 265→279
- 终裁:6/6 愿意玩,连续 2 轮达标 → 可交付 ✅

公共:00-program 批次2进度账收账、13号文档 R2 断言关键词、gen_voice_dual 两游戏段、voice_text.json
验证:abyss 278/278 + detective 279/279 + guide 122/122 + check_all_assets 全项目全绿
2026-09-14 00:05:42 +08:00

106 lines
20 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 《雨夜专案》全拟真试玩报告 — R1 双局(认真新手 + 急性子)
## 基本信息
- 对象:`web/detective/` @ localhost:8001,真头 Chromium + SenseVoice ASR 全拟真(mix.webm/events.jsonl/verdicts.json 落盘在 `web/harness/live/out/detective-20260913033752`(局 A)与 `detective-20260913041753`(局 B))。
- 局 A(认真新手):`voice=male, speed=normal, bgm=normal, guide=full`。录音窗 33.1 分钟(含驱动停顿约 5-6 分钟,净玩 ≈27 分钟;同弧转写参照系 20.6 分钟),159 个有效手势,全教学七步跟练 + 六份卷宗全听 + 故意同值指证 1 次 + M1-M4 全坐实 + 结案先错指小顺再正指周先生、凶器动机全对 + 裁决结算 + pack B 短打一处。**评级 B**(疑点 4/4、两问全对、错指 1、冗余指证 1、保底提示 2 条——驱动停顿引来提示,账目如实降级)。
- 局 B(急性子):`voice=female, speed=1.7, bgm=normal, guide=standard`。录音窗 9.5 分钟,开局撞局 A 存档(sys_continue_ask → 单击续玩 pack B 半途:已听 0/6、疑点 1/4),标题乱划、证词板乱按 200s(pair-tap 即起即停+狂滑+菜单三进三出)、菜单五项全巡览+帮助链、照保底提示指证坐实 M4b、结案先乱指老葛再正指小顺、凶器动机**故意全错**、裁决链中五连乱点、接新案 pack A、播放中长按快进实测、菜单保存回大厅。**评级 B**(疑点 2/4、两问全错、错指 1)。
- 两局合计 477 个 voice 段:A 局 OK 261 / MISMATCH 9 / TRUNCATED 7(6 条玩家动作可解释,1 条真 bug);B 局 OK 71 / MISMATCH 82 / TRUNCATED 46 / 未判 1(1.7x 下 MISMATCH 与 pair-tap TRUNCATED 多为伪影/玩家动作,见「测量局限」——46 条截断逐条复核全部落在手势 1.2s 窗内)。
- 全程无卡死、无死锁、无语音叠语音、零页面错误(A/B pageerror=0);裁决链锁、菜单、存档续玩、接新案翻包、保存回大厅全部走通。
## 局 A 叙述(认真新手,male/normal/full)
开场链:t=3.8 我在标题页先试左滑——**gd_invalid「这个操作,这里用不上。」+ error 震**(full 档无效手势语音纠错,onceKey 本局只此一次 ✓)→ t=6.5 单击开案 sys_new_case → intro_1 播到 t=16.1 被掐(**最后 0.85s「川死了」丢了**,详见 P1-1)→ intro_2/intro_3/tut_d0 完整。
DRILL 七步:D0 右滑 → 条目报名(paper_turn+sig_shun+「学徒小顺的证词。」)与 D1 指令撞车——**tut_listen 只播了 0.4s 就被报名掐死**(P1-2)→ 单击听老葛全链(6 句全完整)→ 双击重听末句 → 上滑状态链(st_asked_1→st_doubt_0→recap_go)→ 长按进指证(E2 受理干脆)→ D5 练习选老葛 w1_1 vs 小顺首句 → tut_cf_ok「练习不算数,真矛盾要靠耳朵找」+ success 震 → tut_done → 进板。
自由调查:六份全听(w1 重听整份=「全部听过=整体重听」兑现)。途中三项专测全过:**播放中双击=重听当前句**(w4 链 wen_2 播到一半双击,当场掐断重播同句,链后续不断);**播放中单击停止 + 续听从首个未听句起**(scene 链 sc_3 起播 0.45s 时单击停,再单击从 sc_3 重起——被掐句不计入已听 ✓);**播放中左右滑静默忽略**(fo_2 播中左滑+右滑,条目不变、零 error 震、链照走 ✓)。六份听齐上滑:st_asked_6→st_doubt_0→recap_go「接着查。」——然后就进入了三人设共同撞上的空档(见 P2-1:此刻它只教我「左右滑,换卷宗」)。
指证:先故意挑一对**同轴同值**(老葛 w1_2 vs 温太太 wen_1 都说雨 21:40 起)→ contra_miss 钝音 + cf_same「这两句说得一致,不矛盾。」(miss 三档第一档首次真机兑现,归因是真话 ✓)。然后 M1-M4 逐条坐实:每条 hit 链 contra_hit→cf_hit「对不上!矛盾成立,记入疑点。」+success 震→周先生 react 递进(记岔→支吾→拒答→想走,我恰好按 M1→M4 顺序所以句句对上——顺序错位即答非所问的隐患见 P1-3);第二份选择前第一份选定句自动重播(P1 记忆契约,5 次全兑现 ✓);M4 落音后 hint_fin「疑点齐了。去结案陈词。」自动接播一次 ✓。
结案:翻到「结案陈词」单击直接掉进三问(无确认闸,P1-5)→ 先错指小顺:确认句「就指认他?」(对他是真话;若我滑到温太太这句就是假话,P1-4)→ acc_shun「我宿在城南刘掌柜家,他全家都能作证!」→ fin_clear「不在场证明成立。证据放人,回到证词板。」(无限再机会 ✓)→ 再进,正指周先生 → 凶器四选项逐个预览(顺序=洗牌)选铜秤砣 → fin_wp_right → 动机选监守自盗 → fin_mv_right → **VERDICT**:fin_right→rain_swell 渐强→z_break_1..3 认罪三段→gavel 法槌→结算链。**链锁实测:z_break_2 播中我补一记在途 tap(t=1773.6)、settle_open 播中一记右滑(t=1786.9)——全部只换来引擎基础震,链纹丝不动走到 settle_hook 落声**(R1 转写轮 P1 标注「死窗未注入不判」的缺口,本局补上:吞得干净)。评级 **rate_b**「案子结了,卷宗上有疏漏。」+ st_doubt_4「疑点,四处,齐了。」+ st_miss_1「指证,错过一两回。」——我的账目(疑点 4、错指 1、冗余 1、保底提示 2)逐条属实,A 档卡线条件 hints≤1 被我驱动停顿引来的第 2 条提示踩破,**降级是真的,我认**。
SETTLE 单击接新案:sys_new_case → pack 翻转到 B → 短打 M1b(b_shun_1「我走的时候,顺手熄了店堂的灯。」vs wen_2)→ cf_hit + b_shun_react_1「灯?我、我走的时候明明熄了……」(变体 react ✓)→ 收工。
## 局 B 叙述(急性子,female/1.7x/standard)
开场撞局 A 存档:sys_continue_ask,先两记左滑——**standard 档无效手势只有 error 震、无语音**(与局 A full 档对照成立 ✓);双击重听 continue_ask ✓ → 单击续玩:**复述链 st_asked_0「六份卷宗,一份都没听。」→ st_doubt_1「疑点,一处。」→ recap_go**(半途存档复述账目属实 ✓)。
乱按 200s:pair-tap 即起即停(w1_1 被我自己剁了十几次,全在手势窗内,属玩家动作)、狂滑换条目、菜单三进三出——**无进展轨三级全开火且全为真**:turn_tick(45s 级,ta=64)→ hint_a「探长,还没听的卷宗,先过一遍耳朵。」(ta=108.7,当时我 0/6 未听,真)→ **b_hint_c2「试试指证:小顺说铜秤卖了,现场铜秤还在。」(ta=168.7,L3 轮询跳过局 A 已坐实的 m1b,给的是 m4b——真且可指证)**。菜单挂起时长被剔除(三次乱逛后提示仍在正确窗口到)。
菜单全项巡览(补 R1 转写「五项只露第一项」缺口):sys_menu → 单击连切 **resume/cf/save/help/restart 五项全部起播** ✓ → 上滑帮助链(sys_help+settings_hint)→ 下滑关闭。保存回大厅路径走通(sys_saved→跳大厅)。
照提示指证:长按进指证 → 急性子扫句(预览句听 0.55s 就滑,sc_1/sc_2/sc_3 被我自己掐半截)→ b_shun_3 vs sc_4 定下 → contra_hit + cf_hit + **b_shun_react_2**「别问了……别问了……」(累计第 2 次坐实取 react_2 ✓)→ 疑点 2/4。
结案乱来:错指老葛 → acc_ge「我守了一夜门!温太太来借热水,她能作证!」→ fin_clear 回板;再进指正主小顺 → 凶器首项不是铜秤砣就直接定(**故意答错**)→ fin_wp_wrong「不对。铜屑不答应。记下了。」(不重答、记账 ✓)→ 动机同样乱定 → fin_mv_wrong「不对。账上短的东西,才是引线。记下了。」→ **VERDICT(变体)**:fin_right_b → b_shun_break_1..3(「棉袄反穿,弓着背」把老葛访客证词收回 ✓)→ gavel → 结算。**链中我连打 tap+右滑+双击+上滑+单击五记——全吞,认罪三段与评级一句不缺**。评级 rate_b + st_doubt_2「疑点,两处。」+ st_miss_0「指证,一次没错。」——全账属实。
接新案 pack 翻回 A → 听老葛:**播放中长按=引擎 1.7x 快进实测生效**(boost on/off 成对,在 1.7 基速上再加速),松手恢复;双击重听当前句、单击停止照常 → 菜单保存回大厅收工。
## 问题清单
### P0(阻塞/卡死)
无。两局完整到结案+接新案;乱按 200s、菜单五进五出、裁决链五连乱点、续玩复述、保存回大厅全部无死锁,零页面错误。
### P1(体验断裂:截断/假话/设计承诺不兑现)
1. **intro_1(male)实长 8.8s 超 8s 兜底,开场第一句案情被掐尾 0.85s——「沈万川死了」的「川死了」丢了**(局 A t=8.16 TRUNCATED,kill 时刻=起播+8.0s,与 SENTENCE_FALLBACK_MS 精确吻合;转写轮不可见,真机才暴露)
- 触发链:`_playSentence` 的 8s 资产缺失兜底计时器在真实长句上先开火 → 链推进 → 下一句顶掉在播句。同批超标资产(实测 ffprobe):`male/sys_help` 9.28s、`male/key/sys_help` 10.48s、`female/key/sys_help` 9.52s(female/intro_1 7.44s 安全;证词链全部 ≤7.4s 安全——≤8s 设计口径本来就是冲证词负荷定的)。
- 后果:开场叙事第一句缺尾巴;help 被掐则「下滑菜单」四个字可能听不见。修法:兜底 8000→15000(它只该防资产缺失/引擎异常,不该是节奏装置);§4.3 契约同步改 15s;资产侧登记 4 句超标句(不强制重录——内容完整,节奏可容)。
2. **教学 D0→D1 交接互掐:tut_listen「单击,听取当前卷宗」只播 0.4s 就被 D0 的条目报名掐死**(局 A t=33.8 TRUNCATED,kill 者=item_w2 报名)
- 机制:D0 处理器先 `_navItem()`(450ms 后播条目名)再 `_drillPass()`(立即播 tut_listen)——450ms 后条目名把指令句顶掉。mock 转写里靠 8s 兜底「看起来正常」,真机指令直接丢。新手在 D1 面前没有听到「单击」两个字(靠猜也能过,但教学承诺破了)。修法:D0 通过路径串行化——先播完条目名再播 tut_listen(或 D0 不报名、由 D1 回正统一报名)。
3. **真凶 react 按「累计坐实次数」取句,与所坐实的矛盾内容脱钩——换个坐实顺序就是答非所问**(人设 P1 建议 1;局 A 我按 M1→M4 顺序恰好逐轴对应「灯→钥匙→秤→逐客」,纯属运气)
- 反例构造:先戳 M3 凶器(「是松木劈柴砸的」被法医铜屑证伪),第 1 次 react 播的却是「灯?……许是我记岔了」——玩家会以为自己指错了对象,「归因真话律」在演绎层面破功。修法:react 改按轴取句(lamp/key/weapon/scale 四轴各配一条),递进由同轴二次坐实或认罪链承担;pack B 同步(b_shun_react_1/2 已是内容弱绑定,可只补映射)。
4. **结案确认句埋着性别假话 + 指认选项念卷宗名不念人名**(人设 P1 建议 2;两局只验到男性目标,温太太分支是静态实锤)
- `fin_who_confirm` 写死「就指认他?单击,定下来。」——真凶问四选一里有温太太,选她即假。修法:改中性「就指认这位?」(零新性别分支成本)。
- 真凶问选项复用条目名「学徒小顺的证词。」——指认的是人不是卷宗。修法:新增 4 句纯人名选项(item_who_w1..w4「门卫老葛。」等,旁白双性别 ×4=8 条新语音)。
5. **「结案陈词」是循环列表必经站,单击即坠三问、无确认闸**(人设 P2 建议 1 + 转写压力线误闯 6-7 次;局 B 实测误入后只能下滑开菜单再双击「返回证词板」自救——代价真实)
- 修法:case 条目单击 → 先播一句结案闸(fin_pre「证据在手,就此结案?单击定,滑走继续查。」)进确认相位,再单击才进 FINISH;滑走=留在板。与全局两段确认范式一致。
### P2(不适/慢)
1. **「六份听齐、疑点为零」空档:状态链尾只说「接着查」,板级一级提示还教「左右滑,换卷宗」——卷宗全听完了换什么换**(局 A t=610-616 亲测撞见;人设 P1/P3/P4 三人同撞)。修法:全部听完且疑点未齐时,recap_go 换指路句(「挑一句你不信的,按住指证」)+ gd_board 此情换词;或该状态下 L3 提前。注:150s 保底 hint_c 本身好用(两局都真),只是来得矜持。
2. **指证选句无加速通道:每句全文重播、四条矛盾回回从第一句扫起**(局 A 四次指证选句段实测 ≈25-35s/次;人设 P1/P3/P4 同点)。修法:选句预览放行长按快进(语音在播,宪法内;现 CONFRONT 长按=error 震)或给「从上次确认句接着预览」记忆点(cf.lineIdx 按条目记忆)。
3. **保底提示附 warning 三连震 [30,50,30,50,30],像训人**(人设 P4 建议 3;局 A/B hint 落点实测每次都带)。修法:hint_a/b/c/fin 换轻震(confirm 级),warning 留给真正的危险语义(本作无 danger 态,warning 震实际只在递答案时出现——音色与语义错配)。
4. **错指不当场记账:S 与 A 的差距靠玩家自己悟**(人设 P2 建议 2;局 A 我错指小顺后直到结算才听到账目)。修法:fin_clear 后补一句「错指一次,记档。」(st_wrong_1..n 不必,单句即可——预算内 1 句 ×2 性别)。
5. **tut_skip「已跳过教学。左右滑换卷宗,单击听取。」不说「按住=指证」**(人设 P2 建议 3;局 B 靠 L3 保底才摸到指证入口的同款路径)。修法:tut_skip 补半句「按住屏幕,指证矛盾。」。
6. **L2 提示在疑点 4/4 已齐后仍播「逐句比对」而非「去结案」**(局 A t=1595 hint_b 实播,当时我四疑点已齐——内容不算假但指引过时)。修法:L2 选句加 `doubts==4 → hint_fin` 分支(hint_fin 全局限 2 次的口径沿用)。
### P3(建议/记录)
1. **菜单五项两局露全**(局 B 巡览实播 resume/cf/save/help/restart + 帮助链 + 保存回大厅)——R1 转写轮 P1 标注的「存档退出入口存在性无法证实」缺口关闭。顺带实测:菜单打开即停播报、关闭回板不丢局面、菜单挂起时长不进无进展轨 ✓。
2. **NPC 平铺回退每句 4 个 404**(局 A 156 次 / 局 B 48 次失败请求:voice/male/z_1.{ogg,m4a,mp3,wav} 全试一遍再落 voice/ 根)——功能零损,纯日志噪音,abyss R1 同款(P3-1 同源)。引擎级,非本作代码。
3. **FINISH 入口 tap 双震 [20]+[20]**(引擎基础确认震 + guide.turn haptic 叠加,局 B ta=395.67/428.65 两处)——轻,不碍事;要抠的话 guide.turn 的 haptic 在有引擎基础震时可省。
4. **周先生与 male 旁白同 speaker 的已知风险在 male 档实播**:intro_w3(旁白嗓)紧贴 z_1(周先生嗓)背靠背(局 A t≈402-405,转写 main t+403.4/405.5 同见)——签名 earcon 只垫条目名前、管不到这条缝。建议:intro_w3 换周先生 NPC 声自报(「我姓周,管了十年的账……」)或其后补半拍静默。人声美感属人耳复核范畴,本条只记结构缝隙。
5. **覆盖缺口残留**:guide=off 未进 live(playtest 场景已断零 gd_* 零定时器);键盘通道未进 live(playtest 场景 13 已断路由);D5 教学期菜单打断回退路径未实测(playtest 已断)。均已有断言兜底,留真机抽查。
### 测量局限(本次仪器口径)
- **1.7x 语速下 ASR 大面积 MISMATCH**(局 B 82/200 段 vs 局 A 9/277):「法医报告」→「阿一报告」、「新案开卷」→「今按开卷/我请按开卷」、「铜秤砣」→「同秤土」等,短句(≤6 字)+混音背景下的 ASR 伪影(README 已知限制)。源资产直转正确(同 id 在 1.0x 局 OK)。事件层(TRUNCATED/SILENCE)两局全部可信;1.7x 会话的 MISMATCH 只做参考。
- **局 B 46 条 TRUNCATED 逐条复核全部落在手势 1.2s 窗内**(pair-tap 即起即停、快进扫句、裁决链乱点)——玩家动作语义内截断,无一条引擎级异常。
- 存档 PUT 不在探针 audio-only fetch 记录内(无 auth token 不发送),服务器侧落盘未验(仪器限制,非问题;localStorage 链路经读档复述间接验证为真)。
### 做得好的地方(实话实说)
- **裁决链锁两局实弹验过**:A 局 z_break_2 播中在途 tap + settle_open 播中右滑;B 局认罪链 tap/右滑/双击三连 + 结算链上滑/单击——链全部完整走到 settle_hook,状态零逃逸、语音零截断(R1 转写轮 P1「死窗未注入不判」缺口关闭)。
- **保底救援两局真开火、全部说真话、照做即中**:B 局乱按 200s → 45s turn_tick / 90s hint_a(当时我 0/6 未听,真)/ 150s b_hint_c2(轮询跳过已发现 m1b,给 m4b,真)→ 照它指证当场 cf_hit;A 局驱动停滞期 hint_a 在 fore 未听时开火(真)。「证词板乱按也要被抢救」实测成立。
- **归因真话律 live 全账对得上**:cf_same(同说雨 21:40)/ acc_shun / acc_ge / fin_wp_wrong / fin_mv_wrong / 两局 rate_b 的每一分降级(A: hints=2 踩破 A 档线;B: 疑点 2+两问全错)都能在事件流里找到对应事实;st_doubt/st_miss 播报值=运行值。
- **记忆契约与聆听保护全兑现**:cf_second 后第一份选定句自动重播(两局 6 次);播放中双击重听当前句、单击停止、续听从首个未听句起(sc_3 断点续 sc_3)、播放中左右滑静默忽略零 error 震——P1 转写轮标注的三条「真机必测」全部通过。
- **E2 长按互斥实测成立**:7 次长按全部落在空闲期进指证(各带 0.15s 无害 boost 壳);播放中长按=引擎快进(B 局实测 1.7x 基速上再 boost),两语义零冲突。
- 菜单模态完整(五项循环、帮助、保存回大厅跳大厅);续玩复述账目属实;pack 翻转二周目真凶换人(A 局末 b_shun_1 谎句一耳朵是新内容);无效手势 full 档有 gd_invalid 语音、standard 档仅震(分档正确);turn_tick 9 次全在 45s 级窗口;female/male 双声部真机各跑一局零缺失;277+200 段语音无叠音。
## 玩家情绪时间线
- 局 A:0:06 左滑被「这个操作,这里用不上」温柔纠正,规矩 → 0:16 开场白尾巴被咬掉半拍(「沈万川…」——当时没察觉,复盘才发现丢了「川死了」)→ 0:34 教学指令被报名盖掉,愣了一下但猜着过了 → 2:00 老葛证词听完,「已听一份」入账,感觉在干活 → 4:00 D5 练习「真矛盾要靠耳朵找」被当同行 → 10:00 六份听齐,「接着查」之后有点空,看门狗还在教我换卷宗(出戏) → 11:00 同值指证被「说得一致,不矛盾」诚实挡回,信任+1 → 11-24 四连坐实,每发 contra_hit+支吾递进都爽;第二份自动重播救了我这种记性 → 25:00 错指小顺被不在场证明温柔放回 → 27:00 认罪三段+雨声+法槌,试着戳屏幕发现链锁死,安心听完 → 评级 B(我以为该是 A——复盘才发现两条保底提示记了账,服气)→ 接新案,小顺开口第一句就是新谎,立刻想再戳他一次。
- 局 B:0:06 续玩复述「六份一份都没听,疑点一处」——账目对得上 → 乱按 200s,菜单乱逛三回都没丢局面 → 1:48 被「还没听的卷宗先过一遍耳朵」点了一下(它说的是真的)→ 2:48 直接把矛盾对喂到嘴边,照做就中,爽 → 菜单五项一个个听过去(原来还有「保存并回大厅」)→ 4:30 乱指老葛被「她能作证」顶回来,不扣东西 → 5:00 故意答错两问,「铜屑不答应」「账上短的东西才是引线」——错得明明白白 → 认罪链里乱点五连全被吞,法槌照落 → 又是 B,账目没冤枉我 → 接新案快进扫证词,保存回大厅,一趟地铁结案。
## 如果只能改 3 件事
1. **修两条真机截断**:8s 兜底升 15s(intro_1 的「川死了」不能丢)+ D0→D1 交接串行化(tut_listen 的「单击」不能丢)——开场与教学的前 60 秒是全部信任的源头,现在两句都被自己人掐了。
2. **让 react 慌在点上 + 指认不说假话**:react 按轴取句(先戳凶器就该慌凶器)、fin_who_confirm 改「就指认这位?」、真凶问选项念人名——「归因真话律」是本作的立身之本,这三处是它仅存的裂缝。
3. **给「结案陈词」加一道确认闸**:循环列表必经站单击即坠三问,每个玩家每局都会误闯——一句「就此结案?单击定,滑走继续查」就解决,与全局两段确认同范式。