xsl
|
1fca4998b9
|
docs: 全 8 游戏 live 句尾巡检结论入账(225 句:自然结束 210/210 完整;15 条短跨度均为输入抢占/测量容差,引擎零截断)
|
2026-09-08 00:00:23 +08:00 |
|
xsl
|
6f4f167efd
|
fix(engine): voice 句尾剪字真根因根治(三修:源尾垫静音冲刷 SoundTouch 未冲刷小节)+ onEnd 完成信号 + live 探针适配
- 真根因(live span 8.57s < 文件 8.80s 铁证):SoundTouch Stretch 源结束时不冲刷
内部最后一个小节(~1 sequence),句尾 0.1-0.25s 从未交付音频图——任何平台皆然,
ASR 因容错转写仍 sim=1(转写评审盲区的又一实证)。一修固定 300ms 排空窗只是
把这段不存在的交付空等成静音;二修 onEnd 保证「已交付必播完」但交付不了这段
- 三修:源尾垫 VOICE_TAIL_PAD_SEC(0.25s) 静音把真实句尾推出管线;完成 = onEnd
(平台无关,disconnect 已交付帧仍播);1.5s 兜底;顶掉复核移至新句数据访问前
(垫长拷贝的 getChannelData 先于杀旧句会打乱探针时序)
- live 探针适配:尾部垫使 SoundTouch 读未注册 buffer、gcd 抽读信号消失——
清扫器加「仍有连接中语音 SPN 则不关段」守卫,断开即移出追踪集合
- engine-voice.test:PAD+I1/I2/I2b/I3 五组 19 断言(含垫长存在性、onEnd 结算、
兜底不早于 1.5s);10 套件全绿
- live 复验(男声 p1):span 8.57→9.04s(≥文件 8.80s),ASR sim=1 verdict=OK
|
2026-09-07 23:18:11 +08:00 |
|
xsl
|
f5eae6d37c
|
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)
|
2026-09-06 16:08:18 +08:00 |
|
SoundGame Dev
|
fab638fc5f
|
round4终评结题: 4/4人设全六游戏愿意玩(章程门槛达成) + escape剧本补全通关弧线(证伪'哑结尾'P0) + HANDOVER更新(向导层/v2路线图/已知问题清账) + 研究总结定稿
|
2026-08-31 03:08:27 +08:00 |
|
SoundGame Dev
|
0a8b5df717
|
docs: 新增 HANDOVER.md 项目交接文档(架构/资产管线/测试/已知问题/路线图总入口)
|
2026-08-30 19:42:06 +08:00 |
|