Files
SoundGame/docs/design/01-escape-voice-ids.md
T
xsl 566241e05d feat(platform/P1): 配对码跨设备 + 认领打磨 + 键盘语音双套资产(两 agent 并行 + 集成收口)
配对码与认领(B):
- POST /api/pair/start|join:6 位码 10 分钟单次有效、仅存内存零泄露面、5 连错 per-IP 封锁 10 分钟;join=新设备档案按桶 LWW 并入老档案+token 改绑(复用 claim-merge);日志脱敏
- 大厅:生成配对码(speechSynthesis 逐位朗读+aria-live+重听)/从其他设备转入(one-time-code 输入框)/从本机移除/401 过期自愈引导/aria 补全/玩家名可听化
- api-smoke 12/12(配对全流程/频控/封锁/过期自愈/移除/digitsToCn)+ CDP 真浏览器 E2E 22/22

键盘语音双套资产(A,路线 a):
- 164 变体句(8 游戏 grep 实测,超出调研预估 153:含轻触/点两下/按住变体)×2 性别=328 生成 656 文件 36.9 分钟;触屏主资产零字节改动(PCM 逐样本比对后还原)
- 引擎 _candidates 三跳路由 key→gender→平铺(inputMode 跟随);缓存键 mode|gender|id;engine-input 新增 K9 路由断言(72 条)
- check_all_assets 增 key 列(两性别一致且 ⊆ 主集)8 游戏全绿;voice_text.json 增 __key__ 表;live control.mjs key 会话对照键盘措辞验收(集成)
- voice-ids 文档:8 游戏键盘变体小节由 KEY_LINES 程序化生成(与台词表逐字断言一致);补齐 storyline/escape/simon 三个历史缺失文档;design README 增 new8 索引
- mock 适配:playtest persona 加 maxTouchPoints=1 保持触屏链断言语义零改动

回归:12 套件全绿(8 playtest + guide 122 + engine-voice 19 + engine-input 72 + api-smoke 12/12)
同批入库:批次 2/3 已完稿设计文档(17-abyss/18-detective/19-cipher 全套,20-22 在途)
2026-09-10 00:43:23 +08:00

56 lines
3.8 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.
# 01b · 《暗室》语音台词表(voice ids)
> 主台词表(80 句,双性别)的唯一事实源是 `tools/gen_voice_dual.py` 的
> `ESCAPE_LINES`(R2 重设计全文见 [01-escape-redesign.md](01-escape-redesign.md);
> 史源 app/src/escape/gen/gen_voice.py)。本文档登记 P1 键盘变体(输入平权
> 路线 a)——变体只覆盖含操作词的句子,id 集合 ⊆ 主表,复用主表同 id 的
> instruct/speaker。
---
## 键盘变体(key,P1 输入平权路线 a,30 句)
「生效输入模式=键盘」(settings.input=key,或 auto 且键盘在跟/纯桌面初始判定,
web/engine/gesture.js inputMode())时,引擎 voice 候选链前置加载
`web/escape/audio/voice/<gender>/key/<id>.{ogg,m4a}`,变体缺失回退主资产——触屏措辞零改动。
>
> 措辞规范(02-input-parity.md §4.3 路线 a + P1 裁定):向左滑→按左方向键(四向同理,
> WASD 不进台词);单击/轻触屏幕→按空格;双击→按回车;按住/长按→按住空格;
> 复合短语(左右滑→左右方向键、滑动→方向键)按语义等价展开;只改操作词,其余
> 内容一字不动,不新增「重」类多音字。本表与 `tools/gen_voice_dual.py` 的
> `KEY_LINES` 逐字一致(两表一致铁律:改一处必改另一处)。
> 资产:×2 性别 = 30×2 条、×2 格式 = 30×4 文件;管线 `gen_voice_dual.py --only-variants`
> 生成 → `--convert` 落盘,终检 `tools/check_all_assets.py`(key 两性别一致且 ⊆ 主集)。
| id | 键盘台词全文(触屏原句见本表上方对应 id) |
|---|---|
| `g1_move` | 先活动一下。按任意方向键,走一小步。 |
| `g2_wall` | 这个房间不大,四面都是墙。再按两下方向键,试试碰碰墙。 |
| `g3_left` | 跟着我指的路走。按左方向键。 |
| `g4_down` | 对。再按下方向键。 |
| `g5_inspect` | 听到水声了吗?按一下空格,仔细检查这个房间。 |
| `g6_doubletap` | 钥匙能开锁。按回车,是把物品用出去的用法。现在,按回车试试。 |
| `g7_goal` | 找到能用这把钥匙打开的东西。需要帮助时,在原地按回车。 |
| `guide_wrong_up` | 不是这个方向。按上方向键。 |
| `guide_wrong_down` | 不是这个方向。按下方向键。 |
| `guide_wrong_left` | 不是这个方向。按左方向键。 |
| `guide_wrong_right` | 不是这个方向。按右方向键。 |
| `guide_blunt_up` | 按一下上方向键。 |
| `guide_blunt_down` | 按一下下方向键。 |
| `guide_blunt_left` | 按一下左方向键。 |
| `guide_blunt_right` | 按一下右方向键。 |
| `reopen_prompt` | 按上方向键,重新听一遍引导。按空格,直接开始。 |
| `stuck_key_2` | 去西南角的储物间,按空格检查,找到钥匙。 |
| `stuck_cabinet_2` | 去东边的铁柜房,按回车,用钥匙打开铁柜。 |
| `stuck_box_2` | 去西北角的电箱房,按回车,把保险丝装进电箱。 |
| `stuck_gate_2` | 去东南角的大门,按回车,打开它,离开这里。 |
| `nav_up` | 按上方向键。 |
| `nav_down` | 按下方向键。 |
| `nav_left` | 按左方向键。 |
| `nav_right` | 按右方向键。 |
| `start_room` | 你站在设施中央的房间里。方向键移动,按空格检查,按回车使用物品。 |
| `inspect_gate_ready` | 电子锁的指示灯亮了,发出微弱的绿光。大门已经通电。按回车,打开它,离开这里。 |
| `use_fail` | 这里没有用得上东西的地方。换个房间试试,或者先按空格检查一下周围。 |
| `again` | 按空格,再来一次。按下方向键,打开菜单。 |
| `help_ops` | 方向键,在房间之间移动。按空格,检查房间,或者重听房间的声音。按回车,使用物品,或者查看背包。 |
| `skip_hint` | 按空格可跳过旁白。 |