test+docs: 「对白没读完」教训固化到框架(引擎回归测试 + 审计工具 + 四处文档)
- web/harness/engine-voice.test.mjs:引擎 voice 句尾保真三不变式(I1 源未耗尽不得结算 / I2 耗尽后排空窗才断开 / I3 零消耗走旧路径),可驱动 SPN mock 模拟真实消耗, 15 断言全绿;防止未来重构回潮 - tools/audit_voice_tails.py:voice 资产尾部静默审计工具入库(含判读口径头注: 尾静默紧=裁剪工艺≠剪字,句尾完整性验收在引擎层) - 文档:HANDOVER(§1.4 回归清单 / §5.3 质量手段 / §6 已解决账)、roadmap §4 新增全游戏「句尾完整性」真机听测项、asset-pipeline QC 口径、methodology §5 度量盲区教训(媒体播完类问题转写层无效,必须真人耳测+引擎断言)、 web-engine-api voice 自然结束语义 - 修正:结束判定改用 filter.sourcePosition(SimpleFilter 单调精确计数器); 10 套件全绿(8 playtest + guide + engine-voice)
This commit is contained in:
+8
-1
@@ -49,10 +49,11 @@ bash web/serve.sh
|
||||
每款游戏都有无头试玩测试(mock 浏览器 + 虚拟时钟,模拟玩家通关,见 §5):
|
||||
|
||||
```bash
|
||||
for g in storyline escape simon rhythm space rpg; do
|
||||
for g in storyline escape simon rhythm space rpg radio dungeon; do
|
||||
tools/node/bin/node web/$g/test/playtest.mjs || echo "FAILED: $g"
|
||||
done
|
||||
tools/node/bin/node web/harness/guide.test.mjs # 向导层专项(guide=full 行为断言)
|
||||
tools/node/bin/node web/harness/engine-voice.test.mjs # 引擎 voice 句尾保真专项(见 §6)
|
||||
```
|
||||
|
||||
退出码 0 = 全绿。当前 6 款 + 向导专项全部通过。**注意:playtest 一律在 setup 里 `settings.set({guide:'off'})` 验证纯玩法逻辑;向导行为断言只住在 guide.test.mjs。**
|
||||
@@ -262,6 +263,11 @@ source env.d/mureka.sh
|
||||
### 5.3 其他质量手段
|
||||
|
||||
- JS 语法校验:`tools/node/bin/node --check web/<game>/game.js`。
|
||||
- 引擎 voice 句尾保真:`tools/node/bin/node web/harness/engine-voice.test.mjs`
|
||||
(I1 源未耗尽不得结算 / I2 耗尽后排空窗才断开 / I3 mock 零消耗走旧路径;
|
||||
2026-09 真机人耳反馈固化,改动 `audio.js _finishVoice` 必跑)。
|
||||
- voice 资产尾部静默审计:`.venv-tts/bin/python tools/audit_voice_tails.py`
|
||||
(量化尾部裁剪松紧;注意判读口径——尾静默紧≠剪字,句尾完整性验收在引擎层)。
|
||||
- 资产终检:`tools/check_all_assets.py`(§3.4)。
|
||||
- 真机听测 checklist(听感参数只能真机验):[docs/design/roadmap.md](docs/design/roadmap.md) §4。
|
||||
|
||||
@@ -271,6 +277,7 @@ source env.d/mureka.sh
|
||||
|---|---|---|
|
||||
| ~~引擎无公开 `isVoicePlaying`~~ | **已解决(R7)**:`audio.isVoicePlaying()` 公开,游戏层全部收编 | — |
|
||||
| ~~长按快进无 per-game 开关~~ | **已解决(R7)**:`audio.setRateBoostEnabled(false)`,rhythm/space 演奏期已豁免 | — |
|
||||
| ~~voice 句尾剪字(每句末尾音节缺失)~~ | **已根治(2026-09 真机人耳反馈)**:旧结束定时器(墙钟+120ms)< 管线固有延迟 ~190ms,句尾音节尚在 SPN/SoundTouch 缓冲即被 disconnect。现 `_finishVoice` 以源真实消耗位置(`filter.sourcePosition`)判定 + 300ms 排空窗;回归 `web/harness/engine-voice.test.mjs` 三不变式钉死;真机 A/B(同 id 节点存活 +0.02s→+0.33s)验证 | 引擎层已固化,新游戏零改动继承;合成侧经 ASR 抽查排除剪字(尾静默紧是裁剪工艺,判读口径见 `tools/audit_voice_tails.py` 头注) |
|
||||
| 向导 earcon 为运行时合成音 | 音色是「可用」级不是「精美」级(正弦/三角/方波包络) | 若升级为录制品 earcon:保持 8 音词表与参数边界不变(14 号文档 §2),只换渲染后端 |
|
||||
| escape「需要帮助吗」问而不等 | P1 终评唯一「擦边当白痴」时刻 | v2 手势宪法专项:真问答 + PLAY 期目标重听入口 |
|
||||
| space/simon 无「局」与结算仪式;storyline 链尾无轻量 turn 信号、二周目重播开场教学;rhythm 教学首误先震后教 | round4 终评 P0 全部裁定入 v2(research/04-playtests/round4/synthesis.md §2) | L5 会话层专项 + 微 polish 清单 |
|
||||
|
||||
Reference in New Issue
Block a user