# 04a · 《盲航》重构版语音台词表(voice ids,R4 录音依据) > **26 号对齐(资产清单,不是交互宪法)** > - 交互与新手手势以 [26-audio-interaction-playbook.md](26-audio-interaction-playbook.md) 和对应游戏正文为准。 > - 本表仍是 TTS id 事实源的**登记副本**(生成以 `tools/gen_voice_dual.py` 为准)。含「双击重听 / 双击使用 / 双击格挡 / 单击循环菜单」的句子 **停用或按游戏正文重录**。 > - 写作:指令 ≤12 字,短句档 ≤6 字,叙事 ≤25 字;每句标 `critical` / `content` / `hint` / `feedback`。游戏主动提示不得原样重复;重听前加「再说一遍:」。 > - 键盘变体:新手期回车当空格(单击)。删除「按回车=重听」类旧口径,或仅在阶段 3 解锁双击后启用。 > - 共用新句见 [14-guide-layer.md](14-guide-layer.md) §7(`sys_first_tap` 等)。各游戏 `_full` / `_short` 在游戏正文设计单里点名,补进本表后再进生成脚本。 > **给音频总监的录制说明** > - 设计依据:[04-space-rebuild.md](04-space-rebuild.md)。闪避为**同向**(左来左滑),台词已全部按此写死,不存在反向表述。 > - 旁白双性别:**female = Serena,male = Uncle_Fu**(R1 音色分配表)。落 `web/space/audio/voice/female|male/.{ogg,m4a}`。 > - instruct 全表统一(同游戏同 instruct,00 文档 §3.2): > - female(Serena):`平静清晰的女声,像飞船领航员,沉稳可信` > - male(Uncle_Fu):`低沉醇厚的男声,像飞船领航员,沉稳有力` > - 演练的紧迫感靠台词文案表达,instruct 不变。 > - 全部整句、无数字拼接:方位/次数/存活时间/躲避数全部按句写死或分档。 > - 多音字已规避("重新听"不写"重听";无"撞着/着陆"类风险)。 > - 管线:`tools/gen_voice_dual.py` 照录本表。**本表全量替换 R1 生成的 space 语音**(旧 id 见表末映射)。 ## D 组 · 交互式演练(14 句) | id | 台词全文 | 触发 | |---|---|---| | `drill_welcome` | 欢迎登上盲航。你只有一双耳朵。 | D0 | | `drill_rule` | 陨石来了,会有声音告诉你方位。 | D0 | | `drill_left` | 听,左边有陨石。向左滑,把它拨开! | D1 | | `drill_right` | 这次在右边。向右滑! | D2 | | `drill_up` | 上面有东西,声音又尖又高。向上滑! | D3 | | `drill_down` | 下面是低沉的轰隆。向下滑! | D4 | | `drill_good` | 漂亮。 | 演练做对(D1/D3 播) | | `drill_retry_left` | 那是左边来的,向左滑。 | D1 做错重教 | | `drill_retry_right` | 那是右边来的,向右滑。 | D2 做错重教 | | `drill_retry_up` | 声音又高又尖,是上面,向上滑。 | D3 做错重教 | | `drill_retry_down` | 轰隆声在下面,向下滑。 | D4 做错重教 | | `drill_moveon` | 没关系,跟着我,我们继续。 | 同一步失败 2 次自动带过 | | `drill_done` | 四个方向你都会了。引擎点火,出发! | D5 | | `drill_skip` | 跳过演练,直接出发。 | 下滑跳过 | ## P 组 · 保护期(5 句) | id | 台词全文 | 触发 | |---|---|---| | `protect_left` | 训练护盾接住了。那颗在左边,听到左边的呼啸,向左滑。 | 保护期被撞(左) | | `protect_right` | 训练护盾接住了。那颗在右边,听到右边的呼啸,向右滑。 | 保护期被撞(右) | | `protect_up` | 训练护盾接住了。那颗在上面,听到高高的呼啸,向上滑。 | 保护期被撞(上) | | `protect_down` | 训练护盾接住了。那颗在下面,听到低沉的轰隆,向下滑。 | 保护期被撞(下) | | `protect_end` | 训练护盾关闭。接下来,靠你自己了。 | 第 60 秒 | ## F 组 · 单击/双击分批引入(6 句) | id | 台词全文 | 触发 | |---|---|---| | `feat_boost` | 试试单击,引擎会短促加速,直接冲过空隙。 | 第 20 秒引入 | | `feat_boost_done` | 感觉到了吗?加速的时候,陨石撞不上你。 | 单击后确认 | | `feat_shield` | 双击展开护盾,能挡下一次撞击。 | 第 45 秒引入 | | `feat_shield_done` | 护盾展开后会自动充能,好了我会告诉你。 | 双击后确认 | | `shield_ready` | 护盾充能完毕。 | 30 秒冷却结束(沿用 R1 id,重录) | | `shield_block` | 护盾挡下了撞击。 | 护盾生效(沿用 R1 id,重录) | ## H 组 · 被撞归因(5 句,保护期后) | id | 台词全文 | 触发 | |---|---|---| | `hit_left` | 左边撞上的。听到左边的呼啸,向左滑。 | 第 1/2 次被撞(左) | | `hit_right` | 右边撞上的。听到右边的呼啸,向右滑。 | 右 | | `hit_up` | 上面撞上的。听到高高的呼啸,向上滑。 | 上 | | `hit_down` | 下面撞上的。听到低沉的轰隆,向下滑。 | 下 | | `hit_last` | 船体只剩最后一次了,小心! | 第 2 次被撞后接在方位句后 | ## M 组 · 里程碑(4 句) | id | 台词全文 | 触发(躲过数) | |---|---|---| | `ms_10` | 十颗了,稳。 | 10 | | `ms_25` | 二十五颗,老练的飞行员。 | 25 | | `ms_50` | 五十颗,传奇。 | 50 | | `ms_100` | 一百颗!天空属于你。 | 100 | ## R 组 · 结算(10 句) | id | 台词全文 | 触发 | |---|---|---| | `time_1` | 不到三十秒,再试一次。 | 存活 <30s | | `time_2` | 超过三十秒,有进步。 | 30~60s | | `time_3` | 超过一分钟,合格的飞行员。 | 60~120s | | `time_4` | 超过两分钟,王牌飞行员。 | ≥120s | | `dodge_1` | 只拨开几颗。 | 躲过 <5 | | `dodge_2` | 拨开了十来颗。 | 5~14 | | `dodge_3` | 拨开了几十颗。 | 15~49 | | `dodge_4` | 拨开了一大群,漂亮。 | ≥50 | | `new_record` | 新纪录! | 破纪录(插在 time_* 后) | | `restart_hint` | 单击再飞一次,下滑回大厅。 | 结算尾 | ## Y 组 · 菜单与系统(8 句) | id | 台词全文 | 触发 | |---|---|---| | `second_run_ask` | 上滑重新听演练,单击直接出发。 | 二周目开场 | | `menu_main` | ~~菜单。左右滑选择,单击确认。~~ → **勘误(R 终审)**:菜单约定已改(00 §5.2),以音频重录版"菜单。单击切换,双击确认。"为准。 | 下滑呼出 | | `menu_resume` | 继续飞行。 | 菜单项 | | `menu_lobby` | 回大厅。 | 菜单项 | | `menu_help` | 重新听教学要点。 | 菜单项 | | `help_recap` | 左边来向左滑,右边来向右滑,上面来向上滑,下面来向下滑。单击加速,双击护盾。 | 帮助重听(>25 字,生成期拆两句拼接:句 1 四方位,句 2 单击双击) | | `settings_hint` | 音色、语速、背景音乐,请回大厅修改。 | 菜单内 | | `paused` | 已暂停。 | 菜单打开时 | --- **合计 52 句 × 2 性别 = 104 条**(×2 格式 = 208 文件)。 旧 id 处置:R1 生成的 `num*/n_*/intro1-4/hit1/hit2/gameover/restart` 全部弃用(数字拼接与旧教学);`shield_ready`/`shield_block` 沿用 id 重录。平铺旧文件按 R1 约定在切换验证后统一清理。 --- ## 键盘变体(key,P1 输入平权路线 a,24 句) 「生效输入模式=键盘」(settings.input=key,或 auto 且键盘在跟/纯桌面初始判定, web/engine/gesture.js inputMode())时,引擎 voice 候选链前置加载 `web/space/audio/voice//key/.{ogg,m4a}`,变体缺失回退主资产——触屏措辞零改动。 > > 措辞规范(02-input-parity.md §4.3 路线 a + P1 裁定):向左滑→按左方向键(四向同理, > WASD 不进台词);单击/轻触屏幕→按空格;双击→按回车;按住/长按→按住空格; > 复合短语(左右滑→左右方向键、滑动→方向键)按语义等价展开;只改操作词,其余 > 内容一字不动,不新增「重」类多音字。本表与 `tools/gen_voice_dual.py` 的 > `KEY_LINES` 逐字一致(两表一致铁律:改一处必改另一处)。 > 资产:×2 性别 = 24×2 条、×2 格式 = 24×4 文件;管线 `gen_voice_dual.py --only-variants` > 生成 → `--convert` 落盘,终检 `tools/check_all_assets.py`(key 两性别一致且 ⊆ 主集)。 | id | 键盘台词全文(触屏原句见本表上方对应 id) | |---|---| | `drill_left` | 听,左边有陨石。按左方向键,把它拨开! | | `drill_right` | 这次在右边。按右方向键! | | `drill_up` | 上面有东西,声音又尖又高。按上方向键! | | `drill_down` | 下面是低沉的轰隆。按下方向键! | | `drill_retry_left` | 那是左边来的,按左方向键。 | | `drill_retry_right` | 那是右边来的,按右方向键。 | | `drill_retry_up` | 声音又高又尖,是上面,按上方向键。 | | `drill_retry_down` | 轰隆声在下面,按下方向键。 | | `protect_left` | 训练护盾接住了。那颗在左边,听到左边的呼啸,按左方向键。 | | `protect_right` | 训练护盾接住了。那颗在右边,听到右边的呼啸,按右方向键。 | | `protect_up` | 训练护盾接住了。那颗在上面,听到高高的呼啸,按上方向键。 | | `protect_down` | 训练护盾接住了。那颗在下面,听到低沉的轰隆,按下方向键。 | | `feat_boost` | 试试按空格,引擎会短促加速,直接冲过空隙。 | | `feat_shield` | 按回车展开护盾,能挡下一次撞击。 | | `hit_left` | 左边撞上的。听到左边的呼啸,按左方向键。 | | `hit_right` | 右边撞上的。听到右边的呼啸,按右方向键。 | | `hit_up` | 上面撞上的。听到高高的呼啸,按上方向键。 | | `hit_down` | 下面撞上的。听到低沉的轰隆,按下方向键。 | | `restart_hint` | 按空格再飞一次,按下方向键回大厅。 | | `second_run_ask` | 按上方向键重新听演练,按空格直接出发。 | | `menu_main` | 菜单。按空格切换选项,按回车确认。 | | `help_recap` | 左边来按左方向键,右边来按右方向键,上面来按上方向键,下面来按下方向键。按空格加速,按回车护盾。 | | `skip_hint` | 按空格可跳过旁白。 | | `gd_hit_hint` | 被撞了。听方位,按对应方向键就能拨开。 | --- ## R5 追加 · space polish 轮新增(2 句 × 2 性别 = 4 条;取证依据 research/space-polish/round1/) > 本轮(R5)只追加,不改上方任何旧表。instruct 沿用全表 `_SPC` 常量(两性别同游戏同 instruct,00 文档 §3.2)。 > 台词已同步 `tools/gen_voice_dual.py` 的 SPACE_LINES(两表一致铁律)与 `web/harness/voice_text.json` 的 space 键。 > 无键盘变体:两句均不含操作词(space 键盘变体表 24 句不增)。 | id | 台词全文 | 触发 | |---|---|---| | `protect_soon` | 训练护盾还剩十秒。 | 开局第 50s(保护期剩 10s 预告;queue 不顶句,被菜单/分批引入打断由 _rearmRunTimers 补播) | | `boost_not_ready` | 引擎还在冷却,稍等一下。 | 加速冷却中单击(R5 归因真话:拒绝必须有回音,此前冷却单击全静默);与护盾拒绝共用 4s 去抖 | ## R6 · 26 号对齐改造(设计单 04-space-rebuild.md 附录 C;施工记录 26-apply-space.md) > 交互权威 26 号手册。本轮删 D0 零操作欢迎、删单击/双击保护期插课、菜单改左右滑 + 单击 > (00 §5.4)、帮助一律长按、新手期无双击。增量清单原文 = `tools/voice_lines_26/space.md` >(生成并表时逐字并入 `tools/gen_voice_dual.py` SPACE_LINES,两表一致铁律; >`web/harness/voice_text.json` space 键已同步)。类别:critical / content / hint / feedback。 **新增(18 句 × 2 性别)**: | id | 台词全文 | 类别 | 触发 | |---|---|---|---| | `hint_tap` | 单击。 | hint | settle / reopen / ask 等待点 `_short` 档 | | `d_short_left` | 向左滑。 | hint | d1 等待点 `_short`;迷茫 L2 限定方向 | | `d_short_right` | 向右滑。 | hint | d2 等待点 `_short`;迷茫 L2 | | `d_short_up` | 向上滑。 | hint | d3 等待点 `_short`;迷茫 L2 | | `d_short_down` | 向下滑。 | hint | d4 等待点 `_short`;迷茫 L2 | | `hint_swipe` | 向声音那边滑。 | hint | 迷茫 L1;演练等待点单击首次解释 | | `inv_tap` | 现在只要滑。 | feedback | 对局未解锁加速时单击首次解释 | | `inv_whiff` | 现在没有这边的陨石。 | feedback | 挥空首次解释 | | `miss` | 没拨到。声音一响就滑。 | feedback | 演练没出手归因(禁说「慢了」) | | `lp_run` | 引擎舱。躲开呼啸。向声音那边滑。 | hint | 长按 = 我在哪(≤20 字) | | `lp_teach` | 想知道在哪,按住屏幕。 | content | 第一次成功闪避后教长按帮助(阶段 1) | | `sys_turn_teach` | 听到这个声音,就是轮到你了。 | content | 教「轮到你」状态(D2 后一次;与 storyline 同文案) | | `sys_say_again` | 再说一遍: | hint | 主动重听前缀(结算/菜单长按与阶段 3 双击) | | `sys_unlock_down` | 向下滑,可以打开菜单。 | content | 第一局结束教阶段 2(挂结算链尾) | | `sys_demo` | 听我做一次。 | hint | 迷茫 L3 / 演练 2 次失败演示 | | `sys_now_you` | 现在你来。 | hint | L3 演示后交回话轮 | | `resume_ask` | 上次飞到一半。单击继续,右滑重开。 | hint | 断点复述询问(reopen 等待点 `_full`) | | `resume_recap` | 你在航道上。躲开呼啸。向声音那边滑。 | content | 续玩复述句(count-in 前) | **修改(9 句,id 不变重录)**:`drill_left`「听,左边有陨石。向左滑。」(critical); `drill_right`「这次在右边。」;`drill_up`「上面,向上滑。」;`drill_down`「下面,向下滑。」 (04 §0.5 d1~d4 `_full`,压进指令字数);`feat_boost`「点一下,加速。现在试试。」与 `feat_shield`「双击,展开护盾。现在试试。」(04 §4 解锁教学,替代保护期第 20s/45s 插课); `help_recap`「听到哪边来,就向哪边滑。按住屏幕问路。」(删单击加速/双击护盾口径); `menu_main`「菜单。左右滑切换,单击确认。」(00 §5.4,旧「单击切换,双击确认」废止); `restart_hint`「单击,再飞一次。」(critical 承诺段;菜单入口改由 `sys_unlock_down` 教)。 **删除(9 句)**:`drill_welcome` / `drill_rule`(D0 零操作欢迎,04 §2)、`drill_skip` (演练不再提供下滑跳过)、`skip_hint`(开场零操作旁白已删)、`paused`(对局中不开菜单)、 `settings_hint`(菜单帮助只留 help_recap 一句)、`feat_boost_done`(boost 音即反馈)、 `gd_hit_hint` / `gd_last_life`(向导层让位 Floor:hit_ 与 hit_last 已覆盖)。 上方 D 组 / F 组 / Y 组表中对应行按本节口径废止;`second_run_ask` 保留。 **通用句取舍**:`sys_first_tap` 不引入(开场第一句 = D1 指令,§4.10 第一句就让玩家拨一颗); `sys_unlock_up` 不引入(up 是玩法闪避方向,阶段 1 教的是长按 → `lp_teach`); `sys_unlock_dt` 不引入(阶段 3 以后双击 = 护盾而非重听,教学用 `feat_shield`)。 **键盘变体**:新增 18 条 + 重录覆盖(`drill_right/up/down` 变体移除——修改后主句不含 操作词,动作提示由 `d_short_*` 变体承担);多音字口径维持「重新听」(全表无「重听」)。