# 05b · 《剑与声》第一章语音台词表(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` 在游戏正文设计单里点名,补进本表后再进生成脚本。 > **给音频总监的录制说明** > - **旁白**(A/S/D/O/E/B/SH 组,104 句):双性别。**female = Serena,male = Uncle_Fu**(新游戏,沿用 R1 分配惯例)。落 `web/rpg/audio/voice/female|male/.{ogg,m4a}`。 > - female instruct 常量:`平静清晰的年轻女声,像在讲武侠故事` > - male instruct 常量:`低沉醇厚的男声,像说书人,平静有韵味` > - **NPC**(N 组,16 句):单音色、不做双性别,平铺落 `web/rpg/audio/voice/.{ogg,m4a}`(引擎平铺回退命中,同 storyline 角色台词模式)。同一角色 speaker+instruct 恒定: > - 村长:`Uncle_Fu` + `慈祥和缓的老者` > - 老猎人:`Eric` + `沙哑粗犷,豪爽中带着暖意` > - 寨丁头目:`Dylan` + `凶狠粗鲁,大声喝骂` > - 黑风寨主:`Uncle_Fu` + `低沉阴狠,慢条斯理`(与村长同 speaker 不同 instruct,参照 storyline 先例;两者从不在同场景出现,请试听确认区分度) > - 主角沈听澜**无台词**:旁白第二人称("你")叙述,省一套主角音色。 > - 数字规避:等级/血量/金币全部分档整句;价格写死在商店句里;无运行时拼接。 > - 管线:`tools/gen_voice_dual.py` 照录;多音字已规避("重听"写作"重新听")。 ## A 组 · 序章(旁白 ×3) | id | 台词全文 | |---|---| | `intro_1` | 你的眼睛看不见了。但你的耳朵,比谁都灵。 | | `intro_2` | 黑风寨掳走了你唯一的徒弟。追进迷雾林,把他们连根拔起。 | | ~~`intro_3`~~ | ~~先记住,怎么用耳朵走路。~~(**停用**:26 号 §4.10 砍开场规则念白,开场第一句改为 `sys_first_tap`) | ## S 组 · 系统/菜单/状态(旁白 ×28) | id | 台词全文 | 触发 | |---|---|---| | `sys_continue_ask` | 检测到你的旅程记录。单击继续,右滑开始新的旅程。 | 有存档进游戏 | | `sys_new_game` | 新的旅程,开始了。 | 新游戏 | | `sys_saved` | 进度已保存。 | 存档写入后 | | `sys_rest` | 你在篝火边睡了一觉,状态全满。 | village 休息 | | `sys_drink` | 溪水清冽,你喝了个饱,伤势尽消。 | stream 饮水 | | `sys_menu` | 菜单。左右滑选择,单击确认。 | 下滑呼出 | | `sys_menu_resume` | 继续旅程。 | 菜单项 | | `sys_menu_save` | 保存并回大厅。 | 菜单项 | | `sys_menu_help` | 重新听帮助。 | 菜单项 | | `help_explore` | 左右滑选,单击确认。上滑看状态,下滑开菜单。**(26 号修改稿:删「双击重新听」)** | 帮助 | | `help_battle` | 战斗中,左右滑选招,单击出手。前摇一响,点一下挡住。**(26 号修改稿:格挡=窗口内再单击)** | 帮助 | | `settings_hint` | 音色、语速、背景音乐,请回大厅修改。 | 菜单内 | | `st_hp_high` | 你状态很好。 | 血量 >70% | | `st_hp_mid` | 你受了伤。 | 30~70% | | `st_hp_low` | 你伤势很重,命悬一线。 | <30%(附带 warning 震动) | | `st_gold_poor` | 口袋空空。 | 金币 <30 | | `st_gold_some` | 有些积蓄。 | 30~150 | | `st_gold_rich` | 腰包鼓鼓。 | >150 | | `st_lv_low` | 你初出茅庐。 | lv 1-2 | | `st_lv_mid` | 你小有名气。 | lv 3-5 | | `st_lv_high` | 你已是高手。 | lv 6+ | | `st_weapon_none` | 你赤手空拳。 | 无武器 | | `st_weapon_iron` | 你手持铁剑。 | iron_sword | | `st_weapon_steel` | 你手持青钢剑。 | steel_sword | | `st_weapon_wind` | 你手持听风剑。 | wind_sword | | `st_armor_none` | 你身无片甲。 | 无护甲 | | `st_armor_leather` | 你身着皮甲。 | leather | | `st_armor_iron` | 你身着铁鳞甲。 | iron_scale | | `sys_first_tap` | 点一下屏幕。 | **新增**(critical 开场指令,与 storyline 通用句一致) | | `sys_first_tap_short` | 点一下。 | **新增**(开场等待点短句/首次无效解释) | | `sys_turn_teach` | 听到这个声音,就是轮到你了。 | **新增**(「轮到你」状态课,链尾) | | `sys_say_again` | 再说一遍: | **新增**(主动重听前缀,阶段 3) | | `sys_unlock_up` | 想知道自己在哪,就向上滑。 | **新增**(阶梯阶段 1,教学战胜利挂链尾) | | `sys_unlock_down` | 向下滑,可以打开菜单。 | **新增**(阶梯阶段 2,第一章通关挂链尾) | | `sys_unlock_dt` | 没听清,就双击,再听一遍。 | **新增**(阶梯阶段 3) | | `sys_demo_continue` | 听我做一次。 | **新增**(迷茫 L3 演示引导) | | `hint_explore_short` | 滑一下。 | **新增**(探索等待点 `_short`) | | `only_explore` | 现在,只要左右滑。 | **新增**(迷茫 L2 缩小说明) | | `hint_shop_full` | 单击,买下。 | **新增**(商店等待点 `_full`) | | `hint_shop_short` | 单击。 | **新增**(商店等待点 `_short`) | | `hint_cmd_short` | 单击出手。 | **新增**(玩家回合 `_short`) | | `hint_swipe_short` | 滑一下。 | **新增**(教学 T0 `_short`) | | `tut_def_short` | 选防御。 | **新增**(教学 T3 `_short`) | | `inv_up_locked` | 上滑还没解锁。先去战斗。 | **新增**(无效解释一次) | | `inv_down_locked` | 菜单,通关第一章解锁。 | **新增**(无效解释一次) | | `st_where_1` | 村外小路。去黑风寨。左右滑。 | **新增**(断点复述 zone1:village/path) | | `st_where_2` | 林子深处。去黑风寨。左右滑。 | **新增**(断点复述 zone2:fork/chest/stream/hunter) | | `st_where_3` | 黑风寨。救徒弟。左右滑。 | **新增**(断点复述 zone3:deepwood/gate/boss1) | ## D 组 · 场景描述(旁白 ×16) | id | 台词全文 | |---|---| | `desc_village` | 雾口村。篝火噼啪作响,村民低声议论着林子里的土匪。 | | `desc_village_re` | 你回到了雾口村。 | | `desc_path` | 林间小路。风穿过树叶,脚下的落叶沙沙作响。 | | `desc_path_re` | 你回到林间小路。 | | `desc_fork` | 岔路口。风声在左右两边,听起来不太一样。 | | `desc_fork_re` | 你回到岔路口。 | | `desc_chest` | 一个枯树洞。洞里似乎藏着什么。 | | `desc_chest_re` | 你回到枯树洞前。 | | `desc_stream` | 溪流。水声潺潺,是个歇脚的好地方。 | | `desc_stream_re` | 你回到溪流边。 | | `desc_hunter` | 猎人小屋。柴火正旺,还有磨刀的声音。 | | `desc_hunter_re` | 你回到猎人小屋。 | | `desc_deepwood` | 密林深处。虫鸣急促,远处有狼嚎,杀气很重。 | | `desc_deepwood_re` | 你回到密林深处。 | | `desc_gate` | 黑风寨门前。火把熊熊,人声嘈杂。 | | `desc_hall` | 聚义厅。火盆熊熊,大厅空旷,回声冰冷。 | ## O 组 · 选项名(旁白 ×18) | id | 台词全文 | |---|---| | `opt_go_path` | 前进,去林间小路。 | | `opt_go_fork` | 前进,去岔路口。 | | `opt_go_chest` | 往左,看看树洞。 | | `opt_go_stream` | 往右,去溪流。 | | `opt_go_hunter` | 前进,去猎人小屋。 | | `opt_go_deepwood` | 前进,进密林深处。 | | `opt_go_gate` | 前进,去寨门。 | | `opt_back` | 返回。 | | `opt_shop` | 去商店。 | | `opt_rest` | 休息一晚。 | | `opt_status` | 查看状态。 | | `opt_investigate` | 调查四周。 | | `opt_open_chest` | 打开树洞。 | | `opt_drink` | 饮水休息。 | | `opt_talk_hunter` | 和老猎人谈谈。 | | `opt_assault` | 强攻寨门。 | | `opt_sneak` | 绕行潜入。 | | `opt_leave` | 离开。 | ## E 组 · 事件(旁白 ×6) | id | 台词全文 | |---|---| | `evt_gold15` | 你在落叶下摸到十五枚金币。 | | `evt_nothing` | 这里什么都没有了。 | | `evt_chest` | 树洞里有两瓶金疮药,你收好了。 | | `evt_hunter_gift` | 老猎人塞给你一瓶金疮药,还说商店会给你算便宜些。 | | `evt_gate_open` | 寨门缓缓打开。 | | `evt_ch1_end` | 寨主倒了,但徒弟不在这里。一张字条,指向南方的腐沼。 | ## B 组 · 战斗(旁白 ×26) | id | 台词全文 | 触发 | |---|---|---| | `btl_start_wolf` | 野狼拦路! | 遭遇狼 | | `btl_start_bandit` | 山贼围上来了! | 遭遇山贼 | | `btl_start_spider` | 毒蛛从树上垂了下来! | 遭遇毒蛛 | | `btl_start_elite` | 寨丁头目挡住了去路! | 遭遇头目 | | `btl_start_boss1` | 黑风寨主,就在你面前。 | Boss 战 | | `cmd_attack` | 攻击。 | 指令 | | `cmd_skill` | 破空斩。 | 指令 | | `cmd_defend` | 防御。 | 指令 | | `cmd_item` | 金疮药。 | 指令 | | `btl_nomp` | 内劲不足。 | mp<3 选技能 | | `btl_noitem` | 没有金疮药了。 | 无药选道具 | | `btl_flee` | 你抽身退出了战斗。 | 逃跑成功 | | `btl_noflee` | 避无可避! | Boss/剧情战逃跑 | | `btl_enemy_die` | 敌人倒下了。 | 击杀 | | `btl_win` | 战斗胜利。 | 胜利 | | `btl_loot_small` | 小有收获。 | 战利 exp+gold <15 | | `btl_loot_mid` | 收获不少。 | 15~40 | | `btl_loot_big` | 大获全胜,收获颇丰。 | >40 | | `btl_levelup` | 你的修为精进了。 | 升级(success 震动) | | `btl_lose` | 你倒下了,黑暗吞没了一切。 | 战败 | | `btl_lose_hint` | 记住,听清前摇,点一下格挡。**(26 号修改稿:格挡=窗口内再单击)** | 战败提示 | | `tut_b1` | 它要扑了,听前摇! | 教学战 | | `tut_b2` | 就是现在,点一下挡住。**(26 号修改稿,critical ≤3s)** | 教学战 | | `tut_b3` | 选攻击,单击出剑。**(26 号修改稿:T1 攻击课)** | 教学战 | | `tut_b4` | 没挡住也没关系,再来一次。 | 教学战格挡失败 | | `tut_b5` | 好剑法!接下来,靠你自己了。 | 教学战结束 | ## SH 组 · 商店(旁白 ×7) | id | 台词全文 | |---|---| | `shop_open` | 商店。左右滑看看货,单击购买。 | | `shop_price_sword` | 铁剑,一百金。 | | `shop_price_armor` | 皮甲,八十金。 | | `shop_price_potion` | 金疮药,三十金。 | | `shop_owned` | 这件你已经有了。 | | `shop_poor` | 钱不够。 | | `shop_buy` | 买下了。 | ## N 组 · NPC(单音色平铺 ×16) | id | 角色 | 台词全文 | |---|---|---| | `npc_headman_1` | 村长 | 外乡人,林子里不太平。这五十金,拿着防身。 | | `npc_headman_2` | 村长 | 商店就在村里,缺什么就去看看。 | | `npc_headman_3` | 村长 | 听说你是用耳朵走路的剑客?保重啊。 | | `npc_headman_4` | 村长 | 救救那些被掳走的孩子吧。 | | `npc_hunter_1` | 老猎人 | 站住。……哦,是个用耳朵的。 | | `npc_hunter_2` | 老猎人 | 寨子里有我旧识。带上这个,别死在路上。 | | `npc_hunter_3` | 老猎人 | 黑风寨主的双刀很快,听清他出刀前的动静。 | | `npc_hunter_4` | 老猎人 | 去吧。让我听听,你的传说。 | | `npc_elite_1` | 寨丁头目 | 哪儿来的瞎子,敢闯黑风寨! | | `npc_elite_half` | 寨丁头目 | 你……你到底是什么人! | | `npc_elite_die` | 寨丁头目 | 寨主……会替我报仇…… | | `npc_boss1_1` | 黑风寨主 | 盲剑客?正好,省得挖你的眼睛。 | | `npc_boss1_2` | 黑风寨主 | 有两下子。可惜,你听不懂死期的声音。 | | `npc_boss1_die` | 黑风寨主 | 白无瞳……会找到你…… | --- **合计:旁白 104 句 × 2 性别 + NPC 16 句 = 224 条音频**(×2 格式 = 448 文件)。对话功能与语气大纲对照见 [05-rpg.md](05-rpg.md) §5.3,场景/战斗触发逻辑见 [05-rpg-chapter1.md](05-rpg-chapter1.md)。 --- ## 键盘变体(key,P1 输入平权路线 a,16 句) 「生效输入模式=键盘」(settings.input=key,或 auto 且键盘在跟/纯桌面初始判定, web/engine/gesture.js inputMode())时,引擎 voice 候选链前置加载 `web/rpg/audio/voice//key/.{ogg,m4a}`,变体缺失回退主资产——触屏措辞零改动。 > > 措辞规范(02-input-parity.md §4.3 路线 a + P1 裁定):向左滑→按左方向键(四向同理, > WASD 不进台词);单击/轻触屏幕→按空格;双击→按回车;按住/长按→按住空格; > 复合短语(左右滑→左右方向键、滑动→方向键)按语义等价展开;只改操作词,其余 > 内容一字不动,不新增「重」类多音字。本表与 `tools/gen_voice_dual.py` 的 > `KEY_LINES` 逐字一致(两表一致铁律:改一处必改另一处)。 > 资产:×2 性别 = 16×2 条、×2 格式 = 16×4 文件;管线 `gen_voice_dual.py --only-variants` > 生成 → `--convert` 落盘,终检 `tools/check_all_assets.py`(key 两性别一致且 ⊆ 主集)。 | id | 键盘台词全文(触屏原句见本表上方对应 id) | |---|---| | `sys_continue_ask` | 检测到你的旅程记录。按空格继续,按右方向键开始新的旅程。 | | `sys_menu` | 菜单。左右方向键选择,按空格确认。 | | `help_explore` | 左右方向键选,按空格确认。上方向键看状态,下方向键开菜单。**(26 号修改稿)** | | `help_battle` | 战斗中,左右方向键选招,按空格出手。前摇一响,按空格挡住。**(26 号修改稿)** | | `btl_lose_hint` | 记住,听清前摇,按空格挡住。**(26 号修改稿)** | | `tut_b2` | 就是现在,按空格挡住!**(26 号修改稿)** | | `tut_b3` | 选攻击,按空格出剑。**(26 号修改稿)** | | `shop_open` | 商店。左右方向键看看货,按空格购买。 | | `skip_hint` | 按空格可跳过旁白。 | | ~~`tut_battle_2`~~ | ~~左右方向键切换招式,攻击、破空斩、防御、金疮药。按空格,出手。~~(**停用**) | | ~~`tut_battle_3`~~ | ~~敌人出手前有一声前摇。听到前摇,马上按回车,就能格挡。~~(**停用**) | | ~~`tut_battle_5`~~ | ~~记住:听清前摇,按回车格挡。开始吧!~~(**停用**) | | `tut_b0` | 战斗里,左右方向键选招式,按空格出手。听到这个声音,就是你的回合。先按一按方向键,试试。 | | `tut_b6` | 来不及挡,就选防御。左右方向键,选防御,按空格。 | | `gd_parry_miss` | 前摇响着呢。按空格,挡住。**(26 号修改稿)** | | ~~`gd_stall`~~ | ~~想好了吗?左右方向键选择,按空格出手。~~(**停用**) | | `sys_first_tap` / `sys_first_tap_short` | 按一下空格。**(新增)** | | `sys_unlock_up` | 想知道自己在哪,就按上方向键。**(新增)** | | `sys_unlock_down` | 按下方向键,可以打开菜单。**(新增)** | | `sys_unlock_dt` | 没听清,就按回车,再听一遍。**(新增)** | | `hint_explore_short` / `hint_swipe_short` | 按方向键。**(新增)** | | `only_explore` | 现在,只要左右方向键。**(新增)** | | `hint_shop_full` | 按空格,买下。**(新增)** | | `hint_shop_short` | 按空格。**(新增)** | | `hint_cmd_short` | 按空格出手。**(新增)** | | `tut_def_short` | 选防御。**(新增,无操作词不变体)** | | `st_where_1` | 村外小路。去黑风寨。按方向键。**(新增)** | | `st_where_2` | 林子深处。去黑风寨。按方向键。**(新增)** | | `st_where_3` | 黑风寨。救徒弟。按方向键。**(新增)** | | `inv_up_locked` | 上方向键还没解锁。先去战斗。**(新增)** | | `inv_down_locked` | 菜单,通关第一章解锁。**(新增,无操作词不变体)** | --- ## 26 号重构变更登记(2026-10,docs/design/26-apply-rpg.md) 完整清单(含全部文案与类别)见 `tools/voice_lines_26/rpg.md`;生成仍以 `tools/gen_voice_dual.py` `RPG_LINES` 为准(**本表与 KEY_LINES 两表一致铁律**)。 NPC 平铺台词(N 组)不改。 | 变更 | id | 说明 | |---|---|---| | **新增 ×20** | `sys_first_tap` / `sys_first_tap_short` / `sys_turn_teach` / `sys_say_again` / `sys_unlock_up` / `sys_unlock_down` / `sys_unlock_dt` / `sys_demo_continue` / `hint_explore_short` / `only_explore` / `hint_shop_full` / `hint_shop_short` / `hint_cmd_short` / `hint_swipe_short` / `tut_def_short` / `inv_up_locked` / `inv_down_locked` / `st_where_1..3` | 已并入上文 S 组与键盘变体表;通用系统句与 storyline 逐字一致 | | **修改 ×6** | `help_explore` / `help_battle` / `btl_lose_hint` / `tut_b2` / `tut_b3` / `gd_parry_miss` | 全部消除「双击格挡 / 双击重听」旧口径:格挡 = 前摇窗口内**再单击**(05 系列明令) | | **停用 ×7** | `intro_3` / `tut_battle_1..5` / `gd_stall` | 开场规则念白砍掉(26 号 §4.10);R6 长教学链改一句一教(原则 11);旧看门狗插播句由三档提示 + 迷茫接管取代 | | **保留在用** | `gd_wrap_first` / `gd_wrap_last` / `tut_b0` / `tut_b1` / `tut_b2b` / `tut_b4` / `tut_b5` / `tut_b6` / `skip_hint` / `foe_hp_*` / `boss1_warn` / `btl_flee_fail` | 探索回绕/末位提示、教学四步、跳句提示、敌方血量档照旧引用 |