配对码与认领(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 在途)
99 lines
6.1 KiB
Markdown
99 lines
6.1 KiB
Markdown
# 03a · 《节拍行者》语音台词表(voice ids,R3 录音依据)
|
||
|
||
> **给音频总监的录制说明**
|
||
> - 旁白双性别:**female = Vivian,male = Uncle_Fu**(R1 音色分配表,docs/audio/round1-report.md §4)。每句两个性别各录一条,分别落 `web/rhythm/audio/voice/female/<id>.{ogg,m4a}` 与 `.../male/`。
|
||
> - instruct 全表统一(同游戏同 instruct,00 文档 §3.2):
|
||
> - female(Vivian):`活力清晰的年轻女声,像节奏游戏主持人,情绪饱满但不夸张`
|
||
> - male(Uncle_Fu):`低沉醇厚的男声,像节奏游戏主持人,平稳有力`
|
||
> - 全表只用这两条 instruct 常量,逐句不换。特例单独标注。
|
||
> - 管线:`tools/gen_voice_dual.py` 台词表照录本文件;多音字已规避(无"重听/银行/长短"类风险词)。
|
||
> - 准确率按 S/A/B/C 四档直接写进评级句(设计定:档位即评级语义,不另设 90+/80+ 分档句,避免与评级割裂)。
|
||
> - id 沿用现版的:`grade_s/a/b/c`、`restart`(文案变更需重录覆盖);其余全部新增。现版 `welcome/rules/tut_start/tut_done` 弃用。
|
||
|
||
## W 组 · 开场与流程(8 句)
|
||
|
||
| id | 台词全文 | 备注 |
|
||
|---|---|---|
|
||
| `welcome` | 欢迎来到节拍行者。跟着音乐,我奏一句,你跟一句。 | 首次进游戏 |
|
||
| `welcome_back` | 欢迎回来。我奏一句,你跟一句。 | 二周目起 |
|
||
| `tut_1` | 听,底鼓。在下一小节的同一个位置,单击。 | 教学步 1 |
|
||
| `tut_2` | 这次是左和右。跟着打,左滑,右滑。 | 教学步 2 |
|
||
| `tut_3` | 最后一句,三个音,中间是双击。 | 教学步 3 |
|
||
| `tut_done` | 很好,演出开始。 | 教学通过,进曲目一 |
|
||
| `tut_skip` | 跳过教学,直接开始。 | 下滑跳过 |
|
||
| `mid_song` | 过半了,保持。 | 每首过半播一次 |
|
||
|
||
## C 组 · 教学纠正(5 句)
|
||
|
||
| id | 台词全文 | 触发 |
|
||
|---|---|---|
|
||
| `retry_early` | 早了,等鼓点再出手。 | 教学/练习中 dt < -GOOD |
|
||
| `retry_late` | 晚了,跟着鼓点走。 | dt > +GOOD |
|
||
| `retry_gesture` | 不是这个手势,再听一遍。 | 手势错 |
|
||
| `retry_listen` | 再听一遍,跟着来。 | 重播领奏前 |
|
||
| `retry_skip` | 没关系,我们先走下一句。 | 同一步失败 2 次跳过 |
|
||
|
||
## S 组 · 选曲与解锁(7 句)
|
||
|
||
| id | 台词全文 | 备注 |
|
||
|---|---|---|
|
||
| `select_hint` | 左右滑选曲目,单击开始,下滑回大厅。 | 进选曲界面 |
|
||
| `song1_name` | 第一首,启程,九十拍。 | 曲目一 |
|
||
| `song2_name` | 第二首,追风,一百零五拍。 | 曲目二 |
|
||
| `song3_name` | 第三首,星爆,一百二十拍。 | 曲目三 |
|
||
| `song_locked` | 这首还没解锁。上一首拿到 B 级以上就能解锁。 | 选中未解锁曲 |
|
||
| `unlock_song2` | 新曲目解锁,追风! | 曲目一 ≥B |
|
||
| `unlock_song3` | 新曲目解锁,星爆! | 曲目二 ≥B |
|
||
|
||
## G 组 · 结算(6 句)
|
||
|
||
| id | 台词全文 | 备注 |
|
||
|---|---|---|
|
||
| `grade_s` | S 级!准确率超过九成五,完美演出。 | 沿用 id,文案变更重录 |
|
||
| `grade_a` | A 级!准确率超过八成五,非常出色。 | 同上 |
|
||
| `grade_b` | B 级,准确率超过七成。不错,还能更好。 | 同上 |
|
||
| `grade_c` | C 级,准确率不到七成。别灰心,再来一遍。 | 同上 |
|
||
| `new_best_combo` | 新连击纪录! | bestCombo 刷新时插在评级句后 |
|
||
| `restart_hint` | 单击再来一遍,右滑下一首,下滑回大厅。 | 沿用 id `restart`,文案变更重录 |
|
||
|
||
## M 组 · 菜单与规则(5 句)
|
||
|
||
| id | 台词全文 | 备注 |
|
||
|---|---|---|
|
||
| `rules` | 规则:我奏一句,你在下一小节原样跟打。音要对,拍点也要对。 | 上滑重听规则 |
|
||
| `settings_hint` | 音色、语速、背景音乐,请回大厅修改。 | 菜单内播设置 |
|
||
| `menu_main` | ~~菜单。左右滑选择,单击确认。~~ → **勘误(R 终审)**:菜单约定已改(00 §5.2),以音频重录版"菜单。单击切换,双击确认。"为准。 | 下滑呼出 |
|
||
| `menu_resume` | 继续演奏。 | 菜单项 |
|
||
| `menu_lobby` | 回大厅。 | 菜单项 |
|
||
|
||
---
|
||
|
||
**合计 31 句 × 2 性别 = 62 条**(其中 grade_*、restart 为重录覆盖)。无数字拼接:拍数(九十/一百零五/一百二十)与准确率档位全部写死在整句里。
|
||
---
|
||
|
||
## 键盘变体(key,P1 输入平权路线 a,9 句)
|
||
|
||
「生效输入模式=键盘」(settings.input=key,或 auto 且键盘在跟/纯桌面初始判定,
|
||
web/engine/gesture.js inputMode())时,引擎 voice 候选链前置加载
|
||
`web/rhythm/audio/voice/<gender>/key/<id>.{ogg,m4a}`,变体缺失回退主资产——触屏措辞零改动。
|
||
>
|
||
> 措辞规范(02-input-parity.md §4.3 路线 a + P1 裁定):向左滑→按左方向键(四向同理,
|
||
> WASD 不进台词);单击/轻触屏幕→按空格;双击→按回车;按住/长按→按住空格;
|
||
> 复合短语(左右滑→左右方向键、滑动→方向键)按语义等价展开;只改操作词,其余
|
||
> 内容一字不动,不新增「重」类多音字。本表与 `tools/gen_voice_dual.py` 的
|
||
> `KEY_LINES` 逐字一致(两表一致铁律:改一处必改另一处)。
|
||
> 资产:×2 性别 = 9×2 条、×2 格式 = 9×4 文件;管线 `gen_voice_dual.py --only-variants`
|
||
> 生成 → `--convert` 落盘,终检 `tools/check_all_assets.py`(key 两性别一致且 ⊆ 主集)。
|
||
|
||
| id | 键盘台词全文(触屏原句见本表上方对应 id) |
|
||
|---|---|
|
||
| `tut_1` | 听,底鼓。在下一小节的同一个位置,按空格。 |
|
||
| `tut_2` | 这次是左和右。跟着打,按左方向键,按右方向键。 |
|
||
| `tut_3` | 最后一句,三个音,中间是按回车。 |
|
||
| `select_hint` | 左右方向键选曲目,按空格开始,按下方向键回大厅。 |
|
||
| `restart` | 按空格再来一遍,按右方向键下一首,按下方向键回大厅。 |
|
||
| `menu_main` | 菜单。按空格切换选项,按回车确认。 |
|
||
| `skip_hint` | 按空格可跳过旁白。 |
|
||
| `gd_miss_early` | 抢拍了。等声音落下再按。 |
|
||
| `gd_miss_wrong` | 方向不对。跟着音色按方向键。 |
|