Files
SoundGame/docs/design/17-abyss-voice-ids.md
T
xsl ee5d4d2544 feat(playbook): 26 号交互手册全量落地——剩余 12 款深度重构 + 语音全量重制
storyline/escape/simon 首批之后的推广收官:15 款全部按 26 号模式运行
(发言权/回执/三档提示/迷茫接管/手势阶梯/断点复述),旧「双击重听/格挡/
菜单确认」等反模式口径全线废除,开场零规则念白(首句即动手)。

游戏层(12 款):rpg(格挡=前摇窗口内再单击)/ rhythm / space / radio /
dungeon / abyss / detective / cipher / teahouse / keeper / bridge /
hunt(联机切片):
- 每款 game.js 接引擎六模块 + makeInputPipeline(doubleTapWindow:0);
  四向玩法类 swipeCore + 长按帮助;双击是玩法的(space 护盾 / hunt
  旋风斩)按手势阶梯阶段 3 分档恢复双击窗口(doubletapCore)
- 每款 playtest 重写:玩法断言 + §6.2 乱点机器人(无声操作 / 被动
  原句重复 / 打断失败 = 0);15 款 3900+ 断言全绿
- 12 份 docs/design/26-apply-*.md 施工单 + tools/voice_lines_26/
  台词清单 + voice-ids 文档同步 + 转写会话剧本按新口径重写

引擎层(web/engine/,6 处修复):pipeline 增 doubletapCore;novice
teachLine 带 voice/ 前缀(此前教学句被静默丢弃);confusion.record
前置到新手门(锁定手势的乱点也计信号);InvalidHints 播完恢复解释前
状态(根治孤儿 BUSY);WaitPoint takeover(2) 台账去重;台账只在
speak 真正播出时登记。遗留引擎债登记 roadmap §3.1。

语音资产:台词表合并(新增 ~250 系统句 / 改 ~50 旧口径 / 删 ~110
废止句;合并器 tools/merge_voice_lines_26.py + 引用校验器
tools/validate_voice_refs.py),GPU 重录 1536 wav → 4204 ogg/m4a
落地,check_all_assets + validate_voice_refs 双绿;键盘变体同步扩表。

大厅/文档:15 款统一新交互口径(「新交互」徽标退役);README /
HANDOVER / rpg README 旧口径修正;roadmap P0-P3 置完成。
2026-10-02 12:33:20 +08:00

34 KiB
Raw Blame History

17b · 《深海回音》(abyss) 语音台词表(voice ids,录音依据)

26 号对齐(资产清单,不是交互宪法)

  • 交互与新手手势以 26-audio-interaction-playbook.md 和对应游戏正文为准。
  • 本表仍是 TTS id 事实源的登记副本(生成以 tools/gen_voice_dual.py 为准)。含「双击重听 / 双击使用 / 双击格挡 / 单击循环菜单」的句子 停用或按游戏正文重录。
  • 写作:指令 ≤12 字,短句档 ≤6 字,叙事 ≤25 字;每句标 critical / content / hint / feedback。游戏主动提示不得原样重复;重听前加「再说一遍:」。
  • 键盘变体:新手期回车当空格(单击)。删除「按回车=重听」类旧口径,或仅在阶段 3 解锁双击后启用。
  • 共用新句见 14-guide-layer.md §7(sys_first_tap 等)。各游戏 _full / _short 在游戏正文设计单里点名,补进本表后再进生成脚本。

给音频总监的录制说明

  • 双性别组(潜航员 DIVER + 调度/系统 DECK,126 句):落 web/abyss/audio/voice/female|male/<id>.{ogg,m4a},两性别 id 集合完全一致(含全部 _k 变体)。
    • DIVER(潜航员=玩家):female = Serena,instruct 常量 低沉冷静的年轻女声,深潜救援员,干练沉着,水下通讯的轻微气声;male = Uncle_Fu,instruct 常量 低沉冷静的男声,深潜救援员,干练沉着,水下通讯的轻微气声。
    • DECK(母船调度/系统音/向导 gd_*):female = Vivian,instruct 常量 清晰稳定的女声,母船潜水调度员,专业干脆,隔着耳机下达指令;male = Dylan,instruct 常量 清晰稳定的男声,母船潜水调度员,专业干脆,隔着耳机下达指令。
    • 区分度设计:玩家(头戴耳机的自语音)与调度(母船通讯声)共用 speaker 池但不同 speaker 配对——female 侧玩家 Serena / 调度 Vivian、male 侧玩家 Uncle_Fu / 调度 Dylan,同场景高频对话的两者永不同 speaker。
  • NPC 平铺组(21 句):单音色、不做双性别,平铺落 web/abyss/audio/voice/<id>.{ogg,m4a}(引擎平铺回退命中),转码时按 §电台滤波 加带通。船员共 4 人(≤5 约束),同一角色 speaker+instruct 恒定,区分度风险逐个标注:
    角色 speaker instruct 常量 区分度风险
    小舟(23 岁声呐兵,女) Serena 年轻女声,二十三岁声呐兵,缺氧后发虚,强撑着干脆 中:与 female 玩家同 speaker,靠年龄感 instruct + 电台滤波(420-3200Hz)区分,请试听确认
    老白(50 岁轮机长,男) Uncle_Fu 沙哑爽朗的中年男声,五十岁轮机长,忍着伤痛开玩笑 中:与 male 玩家同 speaker,靠沙哑 instruct + 滤波(350-3000Hz)区分,请试听确认
    陈医官(45 岁船医,女) Vivian 平静沙哑的中年女声,四十五岁船医,专业镇定,语气温和 低:与 female 调度同 speaker 不同 instruct + 滤波(400-3100Hz),且从不同场
    高船长(58 岁船长,男) Eric 低沉苍老的男声,五十八岁船长,疲惫克制,有老舵手的威严 低:male 侧唯一 Eric + 滤波(300-2800Hz)
  • 电台滤波(转码侧):NPC 全部走带通+轻压缩(参数见上表,详表见 17-abyss.md §5.3/§6.1);DIVER/DECK 不滤波(母船级音质)——「电台里的人」与「耳机里的人」靠音质差立住。试听不可读的句子回退未滤波原声(宁窄勿脏)。
  • 称呼规则:船员对玩家一律称「救援员/你」,全表禁用「姑娘/小哥/大哥/大姐/叔叔」类性别化称呼(玩家性别随用户设置变化)。
  • 键盘变体(PC 键盘通道,P1 机制):带 _k 后缀的 id 为键盘措辞版(「按空格」「回车」「左箭头/右箭头/上箭头/下箭头」),与触屏版成对生成、成对落盘(check_all_assets 校验 _k 配对);运行时由 gesture.inputMode() 选择:key → <id>_k,touch → <id>,auto 跟随最近使用通道,_k 缺失回退无后缀版。变体共 11 对,全部集中在下方 §G0 操作提示句区与 §D1 首个抉择(dv1_teach / p1),以粗体标注。
  • 数字规避:潜次/氧气全部分档整句(prog_d1..d4、oxy_full/ok/low/crit、oxy_gain);句内数字(三千米/三格/四潜/十二小时/四小时/一小时/三页)写死在整句里,禁止运行时拼接。
  • 禁语速词:instruct 不含任何语速描述(引擎 SoundTouch 变速);NPC 句靠短句+逗号停顿实现「水下慢半拍」听感。
  • 管线:tools/gen_voice_dual.py 照录(SPEAKERS 表需新增 abyss 行);多音字自查见文末注记。

G0 组 · 系统/向导/状态(DECK 双性别 ×37)

G0.a 操作提示句(含键盘变体,9 对 18 句——键盘玩家听这一区就够)

id 台词全文 触发
gd_brief 单击继续简报。要选择时,向左或向右滑。 开场链最前(full 档,F8 先例)
gd_brief_k 按空格继续简报。要选择时,用左右方向键。 同上(inputMode=key)
gd_continue 单击屏幕,继续。 叙事链末看门狗第 1 级(full 25s / standard 13s)
gd_continue_k 按空格,继续。 同上(key)
gd_again 还在吗?单击继续。 看门狗第 2 级(50s / 30s),新句不逐字重播
gd_again_k 还在吗?按空格继续。 同上(key)
gd_ping1 声呐待命。单击,发脉冲。 搜索等待静默 10s(第 1 级)
gd_ping1_k 声呐待命。按空格,发脉冲。 同上(key)
gd_ping2 回波不会自己来。单击。 搜索等待静默 25s(第 2 级,必须与第 1 级不同句)
gd_ping2_k 回波不会自己来。按空格。 同上(key)
sys_help 单击继续,双击重新听。上滑听状态,下滑开菜单。选择时,左右滑。 上滑帮助 / 菜单内上滑
sys_help_k 空格继续,回车重新听。上箭头听状态,下箭头开菜单。选择时,左右箭头。 同上(key)
sys_menu 菜单。单击切换选项,双击确认。 下滑呼出模态菜单
sys_menu_k 菜单。空格切换选项,回车确认。 同上(key)
sys_skip 听过的句子再播时,单击就能跳过。 开场每局一次(skip_hint 先例;R2-F6 改词,见文末修订记录)
sys_skip_k 听过的句子再播时,按空格跳过。 同上(key)
sys_continue_ask 检测到你的下潜记录。单击继续上次,右滑开始新救援。 有存档进游戏
sys_continue_ask_k 检测到你的下潜记录。空格继续上次,右箭头开始新救援。 同上(key)

G0.b 状态/系统句(无手势词,无变体)

id 台词全文 触发
gd_invalid 这个手势,水里用不上。 无效手势(error 震,idle-only,同局限次)
gd_prog1 滑动在这里用不上。想想调度刚说的话。 无进展轨 60s(第 1 级,乱按抢救)
gd_prog2 别乱。停一下,想想下一步。 无进展轨 120s(第 2 级)
sys_menu_resume 回到水下。 菜单项
sys_menu_restart 重新开始这次救援。 菜单项
sys_menu_lobby 保存并回大厅。 菜单项(确认后跳转前播)
sys_settings 音色、语速、背景音乐,请回大厅修改。 菜单内设置提示
sys_new_dive 新的一次下潜,开始了。 新救援开始 / 菜单重开
prog_d1 现在是第一次下潜。 上滑状态链(按当前潜次选播)
prog_d2 现在是第二次下潜。 同上
prog_d3 现在是第三次下潜。 同上
prog_d4 现在是最后一次下潜。 同上
prog_saved1 已经救上一个人。 上滑状态链·已救人数(R2-F10,saved=1)
prog_saved2 已经救上两个人。 同上(saved=2)
prog_saved3 已经救上三个人。 同上(saved=3)
prog_saved4 已经救上四个人。 同上(saved=4)
prog_saved5 五个人都在甲板上了。 同上(saved=5;saved=0 不播人数句)
oxy_full 气瓶还足,救得动。 氧气 ≥9(跨档时挂上浮结算链;上滑状态链)
oxy_ok 氧气还够两潜。 氧气 6-8(floor(oxy/3)=2,句义逐格为真)
oxy_low 氧气告急,只够最后一潜。 氧气 3-5;此后垫 sfx/breath_loop
oxy_crit 氧气见底,必须上浮。 氧气 0-2·水下(DIVE/COMMS);各播报位附 warning 震
oxy_crit_deck 氧气见底,一潜都下不去了。 氧气 0-2·水面(SURFACE/ENDING;R2-F5,句义=floor(0..2/3)=0 潜,逐格为真)
oxy_gain 应急瓶接上了,多三格。 D2 上浮后补给(全局唯一一次)
dry_a 气瓶用干了。立刻上浮。 mid-dive 氧气 floor 至 0,干涸链首句
dry_b 气花在了人身上。人,都上来了。 干涸链归因句(真话:气耗在走心选择上)

G1 组 · 开场(双性别 ×4)

id 声部 台词全文 触发
b_open 潜航员 风停了。我站在问海号甲板上,下面三千米,是海燕号。 INTRO(配 sfx/amb_deck)
b_rule 调度 规矩就一条:气不够一潜,人就必须上浮。 INTRO(一句规矩,P4;与取消门一致)
b_goal 调度 海燕号,五个人。你的双瓶,够下四潜。 INTRO(氧气预算承诺)
b_go 调度 第一潜,找船。耳朵交给声呐。 INTRO,随后自动下潜

D1 组 · 第一潜·找船·小舟(教学潜)(双性别 13 + 小舟平铺 5 = 18)

id 声部 台词全文 触发
dv1_down 调度 下潜开始。水会越来越黑,声音会越来越多。 下潜链(垫 sfx/amb_deep)
dv1_teach 调度 到深度了。声呐静了。单击,发一枚脉冲。 搜索等待武装(教「单击=脉冲」,配 turn cue)
dv1_teach_k 调度 到深度了。声呐静了。按空格,发一枚脉冲。 同上(key)
dv1_metal 调度 金属回波,钢板。听见这个,就是海燕号的船身。 首枚回波解读(教「金属回波=钢板」,配 echo_metal_l)
dv1_link 调度 回波后面有杂音,是电台!接通了。 通讯接通(配 link_beep)
z1_a 小舟 ……有人吗?声呐兵,小舟。我们还活着,全艇五个人。 通话主干(垫 sfx/static_burst)
z1_b 小舟 轮机长老白困在机舱,陈医官和小郑在病舱,船长在指挥舱。 通话主干
z1_knock 小舟 等等,你听。管子里,有人在敲。 线索音引入(配 sfx/pipe_knock 两遍)
p1 调度 管路在响。向左滑,停下来听敲管的暗号。向右滑,先带小舟上浮。 抉择提示(播完即可选)
p1_k 调度 管路在响。左箭头,停下来听敲管的暗号。右箭头,先带小舟上浮。 同上(key;首个抉择的键位绑定)
d1_listen 潜航员 都别出声。管子那头,敲得很稳。 p1 左(knowsPipe=true,-1 气)
d1_code 调度 是老白的暗号:腿被压住,先泄压,再撬。记住这个敲法。 p1 左·收(情报句,D2 兑现)
d1_up 潜航员 小舟,抓住我的肩锁。我们上。 p1 右
z1_bye 小舟 好。上面……是不是天亮了? p1 右·反应
p2 调度 小舟想回去拿声呐日志。向左滑,等她。向右滑,直接上浮。 抉择提示
d1_log 小舟 日志里有失事前,最后一段录音。给你,替我们收好。 p2 左(hasLog=true,-1 气)
d1_nolog 潜航员 日志可以补,人不能等。走了。 p2 右
d1_surf 调度 小舟出水,第一潜收工。往返,扣三格气。 上浮结算(配 surf_splash+ascent_chime;教「每潜扣 3」)

D2 组 · 第二潜·机舱·老白(双性别 14 + 老白平铺 4 = 18)

id 声部 台词全文 触发
dv2_down 调度 第二潜,机舱。顺着敲管的声音走。 下潜链
dv2_found 调度 碎石回波后面,敲管声密了。机舱到了。 搜索解读(配 echo_debris+pipe_knock)
bai_a 老白 哈哈,救援的?我这腿,跟冷却管缠上了。 通话主干
bai_b 老白 艇上的药板烧了。病舱那两个,比我悬。 通话主干(埋 D3 险)
p3 调度 钢梁压着腿。向左滑,泄压后慢慢撬。向右滑,切割枪,快切。 抉择提示
d2_pry 潜航员 老白,忍住。先泄压,再撬。 p3 左
d2_pry_ok 调度 暗号没白听。管子一松,钢梁抬起来了。 p3 左·收(条件 knowsPipe=true,-0 气)
d2_pry_slow 调度 摸着找泄压阀,多费了一格气。腿,出来了。 p3 左·收(条件 knowsPipe=false,-1 气)
d2_cut 潜航员 切割枪。老白,闭眼,憋气。 p3 右
d2_flash 调度 火花炸了一下,虚惊。老白咳着,腿抽出来了。 p3 右·收(危机拍:danger 签名+spark_flash 前置 2s)
bai_out 老白 腿还在!我的腿还在!走,我给你带路。 两路汇合(正反馈)
p4 调度 老白要去关电池舱阀门。向左滑,陪他去。向右滑,直接上浮。 抉择提示
d2_valve 潜航员 电池舱我陪你去。这片海不能脏。 p4 左(valve=true,-2 气;配 valve_close)
d2_valve_e 调度 阀门关死了。两格气,换一片干净海。 p4 左·收(账目真实:明说两格)
bai_thanks 老白 这片海养着一村人。这份情,我记一辈子。 p4 左·反应
d2_leave 潜航员 阀门交给母船。你先上,腿要紧。 p4 右
d2_surf 调度 老白出水。他一直扒着舱门,往水里看。 上浮结算
d2_supply 调度 潜友阿凯捎来应急瓶。甲板上,粥给你温着。 补给剧情(随后 oxy_gain +3,全局唯一)

D3 组 · 第三潜·病舱·陈医官/小郑(双性别 12 + 陈医官平铺 4 = 16)

小郑为无台词角色(重伤固定于吊床,radio 老主播「带子里只有电流声」先例);其状态由调度句 d3_chen_e/d3_stay_lost 承载。

id 声部 台词全文 触发
dv3_down 调度 第三潜,病舱。海燕号在倾斜,别恋战。 下潜链
dv3_groan 调度 回波发闷。船体在呻吟,它撑不久了。 搜索解读(配 echo_groan,D4 险预告)
chen_a 陈医官 你来了。小郑股骨断了,我给他固定好了。 通话主干
chen_b 陈医官 救援钟一次带一个。我是医生,我最后走。 通话主干(抉择铺垫)
p5 调度 病舱一次只能走一个。向左滑,先带陈医官。向右滑,先带小郑。 抉择提示(无气差的双义抉择)
d3_chen 潜航员 陈医官,你的手在抖。这次,听我的。 p5 左(陈医官上,stayer=zheng)
chen_up 陈医官 ……好。小郑,等我,上面给你热粥。 p5 左·反应
d3_chen_e 调度 陈医官出水。小郑固定在吊床上,呼吸平稳。 p5 左·收
d3_zheng 潜航员 小郑先走。陈医官,下一潜,就是你的。 p5 右(小郑上,stayer=chen)
d3_zheng_e 调度 小郑吊上去了。他一路,都没敢出声。 p5 右·收
chen_stay 陈医官 去吧。我守着灯,灯不灭,人就不散。 p5 右·留守宣言
p6 调度 留守的人要空气。向左滑,留下你的备用瓶。向右滑,约定下一潜来接。 抉择提示
d3_spare 潜航员 备用瓶留下。灯,给我亮着。 p6 左(spareGift=true,-2 气,可触发干涸链)
d3_spare_e 调度 备用瓶挂上了,能多撑十二小时。 p6 左·收(账目:时间量而非气格)
d3_promise 潜航员 四小时内,我下来。等我。 p6 右
d3_surf 调度 病舱的人出水。海燕号的呻吟,隔着水都听得见。 上浮结算(随后走氧气门)

D4 组 · 第四潜·指挥舱·高船长(高潮)(双性别 18 + 高船长 7 + 陈医官 1 = 26)

id 声部 台词全文 触发
dv4_none 调度 气不够一潜了。第四潜,取消。 氧气门·取消形态(oxy≤2;800ms 手势死窗)
gao_final 高船长 别下来。带他们回家,就算救完了。海燕号,通话结束。 取消链·船长的最后通讯(随后直达 ◆p9)
dv4_down 调度 最后一潜,指挥舱。海燕号,撑不住了。 下潜链(双载/单载共用)
dv4_dual 调度 两个人下同一潜。这趟往返,扣四格气。 下潜链·仅双载形态追加(R2-F4:D4 双载 3+1 扣账口播,不再无声扣款)
dv4_slide 调度 它滑了!抓稳索缆,指挥舱里还有人! 搜索危机拍(danger 签名+landslide 前置 2s 渐强+danger 震)
gao_a 高船长 救援员。我船上,还剩两个活人。 通话主干
gao_b 高船长 都带走,我最后上。这是船长的规矩。 通话主干
p7 调度 双人上浮。向左滑,逐站减压慢慢浮。向右滑,违规直浮,搏一把。 抉择提示(双载形态:oxy≥4)
p7_chen 调度 气只够带一个。向左滑,带船长。向右滑,带陈医官。 抉择提示(单载形态·留守=陈医官:oxy=3)
p7_zheng 调度 气只够带一个。向左滑,带船长。向右滑,带小郑。 抉择提示(单载形态·留守=小郑)
d4_slow 潜航员 逐站停,慢慢浮。规矩不能破。 p7 左·双载(-2 气)
d4_slow_e 调度 减压站一个个过。气瓶在跳,人稳着。 p7 左·双载·收
d4_fast 潜航员 来不及了。直浮! p7 右·双载
d4_fast_e 调度 违规快浮。医疗舱的灯,先给你们开好。 p7 右·双载·收(回响伏笔)
d4_pick_gao 潜航员 船长,抓住我。海燕号的事,上面再说。 p7 左·单载(带船长)
d4_pick_chen 潜航员 陈医官,轮到你了。抓住,上浮。 p7 右·单载·留守=陈医官
d4_pick_zheng 潜航员 小郑,吊床连人一起。走了。 p7 右·单载·留守=小郑
chen_last 陈医官 去吧。灯我留着,人齐了就熄。 单载·带走船长时留守者=陈医官的留别
d4_stay_lost 调度 另一位,留在了倾斜的船舱。航标灯,替所有人亮着。 单载·带走船长时留守者=小郑的留别(克制措辞)
gao_last 高船长 航标灯替我留着。就说,船长睡了。 单载·带走留守者时船长的留别(p8 跳过,直达上浮)
gao_c 高船长 三年前……没什么。走吧,别耽误。 心结引入(条件 hasLog=false)
gao_confess 高船长 日志你拿了?里面写着。是我下令,多采了一小时。 心结引入(条件 hasLog=true,替代 gao_c)
p8 调度 船长的话没说完。向左滑,把你听到的说出来。向右滑,什么都不问,拉他上浮。 抉择提示(船长在乘时可 达,30 字全表最长句)
d4_talk 潜航员 日志我听完了。海燕号为什么沉,我会带上去。走吧。 p8 左(gaoPeace=true)
gao_peace 高船长 ……好。这一次,听救援员的。 p8 左·反应
d4_silent 潜航员 纪律就是纪律。抓住,上浮。 p8 右
d4_surf 调度 最后一潜收工。问海号的甲板,从没这么亮过。 上浮结算

F9 组 · 签收抉择(心结)(双性别 ×7)

id 声部 台词全文 触发
g9_in 调度 医疗舱躺满了。你的气瓶剩多少,你比我清楚。 收队签收引入(SURFACE(4)/取消链之后)
g9_knot 潜航员 三年前,也是这条沟。我按时上浮了,搭档没有。 心结自述(玩家背景)
p9 调度 海燕号的船钟,还挂在沉船上。向左滑,用最后的气,下去取。向右滑,进医疗舱。 抉择提示(左路需 oxy≥1)
g9_dry 调度 一格气都不剩了。能带的,你都带回来了。 p9 左路封锁句(oxy<1:播出后自动走右,不摆假选项)
d9_bell 潜航员 最后一潜。不为救人,为个交代。 p9 左(bell=true;配 bell_toll 后接 d9_bello)
d9_bello 调度 船钟出水。海燕号的声音,回家了。 p9 左·收
d9_rest 潜航员 交代,留给明天的人。我去医疗舱。 p9 右

EP 组 · 结局与尾声回响(双性别 22;结局 8 + 回响 14)

id 声部 台词全文 触发
e1_a 潜航员 五个人都在甲板上。船钟的第一声,是替这条沟敲的。 结局 e1(saved=5 且 p9=左)主句
e1_b 潜航员 三年了,我终于敢往下看。明天,想再潜一次。 e1 收(钩子)
e2_a 潜航员 五个人都救上来了。船钟,留在了沟底。 结局 e2(saved=5 且 p9=右)主句
e2_b 潜航员 没人怪我。可半夜醒来,总听见钟在响。 e2 收(钩子)
e3_a 潜航员 没能都带回来。可我到底下去了,敲响了那口钟。 结局 e3(saved<5 且 p9=左)主句
e3_b 潜航员 钟声替他们,在沟底响了一声。这样,也好。 e3 收(钩子)
e4_a 潜航员 我按规矩上浮了。规矩里,没写怎么难过。 结局 e4(saved<5 且 p9=右)主句
e4_b 潜航员 沟底很安静。安静得,像三年前那天。 e4 收(钩子;心结回环)
ep_lead 调度 收队了。调度台给你记一笔——他们,后来怎样了。 结局链后尾声引入
ep_zhou_ok 调度 小舟:归队报告打了三页。她说,声音都记得。 尾声(bond_zhou=1:p1 左或 p2 左)
ep_zhou_no 调度 小舟:声呐日志没了。她凭记忆,重新描了一遍海图。 尾声(bond_zhou=0)
ep_bai_ok 调度 老白:腿保住了。阀门那夜之后,见人就夸你。 尾声(bond_bai=1:p3 左或 p4 左)
ep_bai_no 调度 老白:腿打了钢钉。他说,瘸着也值。 尾声(bond_bai=0)
ep_chen_ok 调度 陈医官:回了医院。诊室里,挂着一盏海底的灯。 尾声(陈医官生还)
ep_chen_lost 调度 陈医官:她守着灯,到最后一小时。灯,还亮着。 尾声(陈医官留守未归)
ep_zheng_ok 调度 小郑:拆了石膏,第一件事,去看海。 尾声(小郑生还)
ep_zheng_lost 调度 小郑:吊床随船,滑进了沟底。他没来得及看日出。 尾声(小郑留守未归)
ep_gao_peace 调度 高船长:退役申请自己写的。第一行写着:数据不如人。 尾声(船长生还且 p8 左)
ep_gao_up 调度 高船长:上了岸,一直没说话。听说,他在学敲管语。 尾声(船长生还且 p8 右)
ep_gao_lost 调度 高船长:随海燕号留在沟底。航标灯,还亮着。 尾声(船长未归)
ep_trench_bell 调度 沟底:船钟挂在问海号桅杆上。风一过,就响一声。 尾声(bell=true)
ep_trench_deep 调度 沟底:很深,很静。海燕号睡在里面,像睡着了。 尾声(bell=false)

合计:155 句(GPU 预算 ≤170 ✓;R2 修订后)

  • 双性别 134 句(DIVER 潜航员 30 + DECK 调度/系统 104,含 _k 键盘变体 11)×2 性别 = 268 文件;
  • NPC 平铺 21 句(小舟 5 / 老白 4 / 陈医官 5 / 高船长 7)= 21 文件;
  • 合计 289 条音频 ×2 格式(ogg+m4a)= 578 文件。
  • 键盘变体 11 对:gd_brief / gd_continue / gd_again / gd_ping1 / gd_ping2 / sys_help / sys_menu / sys_skip / sys_continue_ask / dv1_teach / p1(成对生成,check_all_assets 校验 _k 配对与双性别集合一致)。
  • 每结局专属台词齐备:e1/e2/e3/e4 各 2 句 + 尾声回响 14 句(好感/存活/flag 选播)。
  • 每局实走抉择 7-9 个(p7 单载右路跳过 p8;D4 取消路径跳过 p7/p8),抉择提示 p1..p9 共 9 个。

多音字 / 发音风险自查注记

风险词 处理
重听 全表写「重新听」(sys_help / sys_help_k),无「重听」字样;「重写」规避为「日志可以补」(d1_nolog)
壳(ké/qiào) 全表不用「壳」,写「钢板 / 船身」(dv1_metal)
脏(zāng/zàng) 「这片海不能脏」(d2_valve)为 zāng 正确常用读法,保留,试听确认
闷(mēn/mèn) 「回波发闷」(dv3_groan)为 mèn 常用读法,保留,试听确认
颤(chàn/zhàn) 台词侧用「发抖」(d3_chen);instruct 描述不进语音,不受影响
塞 / 巷 / 挣 / 血 / 露 / 降(jiàng 外义)/ 率 / 传(zhuàn 义) 全表未使用(「撑住」「股骨断了」替代;下潜 qián 恒用)
教(jiāo/jiào) 未使用;「船长」zhǎng、「数据」shùjù、「调度」diàodù 为固定词
了 / 还 / 得 常规句式常见读法,逐句人工试听项(d3_zheng_e「都没敢出声」、d1_surf「扣三格气」等)
数字 句内数字全部写死(三千米 / 三格 / 四潜 / 两格 / 十二小时 / 四小时 / 一小时 / 三页 / 一盏),序号与档位用分档整句(prog_d1..d4、oxy_*)

台词侧自查

  • 单句 ≤40 字:全表最长 = p8 与 p9(各 30 字),次长 sys_help_k(28 字)、p6(27 字)✓;NPC 句平均 ≤20 字(P4 语速感靠短句+逗号,不用 instruct 语速词)✓。
  • 船员 ≤4 人、speaker+instruct 恒定、区分度风险逐个标注 ✓(小舟 Serena / 老白 Uncle_Fu / 陈医官 Vivian / 高船长 Eric)。
  • 称呼合规:船员对玩家只用「救援员 / 你」,性别化称呼零出现 ✓。
  • 每个结局(e1..e4)专属主句+钩子各 2 句齐备,尾声救/未救双线齐备 ✓。
  • 归因真话律:负向收尾句(dry_b / gao_final / chen_last / d4_stay_lost / gao_last / ep_*_lost / e4_b)全部指向玩家实际选择或真实处境,无「运气不好」类假归因、无惩罚性措辞 ✓。
  • 向导 gd_* 13 句(gd_brief/gd_continue/gd_again/gd_ping1/gd_ping2 各带 _k 变体,gd_invalid/gd_prog1/gd_prog2 无变体)符合 14 号 §6 台词规范(一句一义、无重复句式、单句 ≤18 字)✓。
  • 氧气档位句与数值一一对应(oxy_full≥9 / ok=6-8 / low=3-5 / crit=0-2,均按 floor(oxy/3) 可下潜次数措辞),账目真实 ✓。

R2 修订记录(2026-09-13,依据 research/new8/abyss/round1/synthesis.md)

# 改动 依据
R2-F4 新增 dv4_dual(双性别,仅双载形态下潜链追加):D4 双载起播 3+1=4 格扣账口播化 R1 P1 心算账对不上耳朵(无声扣款)
R2-F5 新增 oxy_crit_deck 水面变体;oxy_crit 限水下场景 R1 crit「必须上浮」在甲板播出=错场景措辞(档位表原注「水面=一潜都下不去」义落地)
R2-F6 sys_skip/sys_skip_k 改词:「听过的句子再播时,单击/按空格就能跳过」——与 G5 复播可即掐(首播保护)机制对齐 R1 live P1-2:旧词「想跳过这句,单击就行」在 F5 首播保护下名存实亡
R2-F10 新增 prog_saved1..5(双性别):上滑状态链 G6 顺序改为 潜次→已救人数→氧档→帮助;saved=0 不播 R1 P3:被打断后要捡回「船上躺着谁」

以上四组为新增/改词;其余裁定(148 句中未改词的 146 句原文、触发条件、滤波参数)不变。

R3 · 26 号深度重构(设计单 26-apply-abyss.md;施工台词清单 tools/voice_lines_26/abyss.md)

交互权威 26 号手册;玩法正文 = 17-abyss.md 附录 C。本轮开场第一句改 critical 指令 「点一下屏幕。」(b_rule / gd_brief 规矩念白废除)、等待点三档提示统一 sys_hint_* / 主动重听「再说一遍:」前缀、手势阶梯三阶段教学句、菜单改左右滑换项 + 单击确认 (00 §5.4)、「双击重听回波」废止(搜索等待再单击=再发脉冲,自然再听)。增量清单 原文 = tools/voice_lines_26/abyss.md(生成并表时逐字并入 tools/gen_voice_dual.py ABYSS_DECK_LINES,两表一致铁律)。类别:critical / content / hint / feedback。 系统/交互层句子全部走 DECK 母船调度组(=系统音,与 radio PROD 组同型)。

新增(23 句 × 双性别,DECK 组;其中 4 条由引擎播出但资产照落本目录):

id 台词全文 类别 触发
sys_first_tap 点一下屏幕。 critical 冷启动第一句(≤3s,不可打断,§4.10)
sys_first_tap_short 点一下。 hint intro 等待点 _short 档
sys_turn_teach 听到这个声音,就是轮到你了。 content 「轮到你」交接提示音首现教学(全局一次,原则 2)
sys_hint_ping_full 单击,发一枚脉冲。 hint 搜索等待 full 档(8s;与 dv1_teach 动作词一致)
sys_hint_ping_short 单击。 hint 搜索等待 _short 档(18s)
sys_hint_continue_full 单击,继续。 hint continue 等待点 full 档(13s;COMMS 链末复用)
sys_hint_continue_short 单击。 hint continue/settle 等待点 _short 档
sys_hint_choice_short 左右滑,选。 hint choice 等待点 _short 档(25s 台账降档)
sys_hint_settle_full 单击,开始新救援。 hint 结算等待点 full 档(20s;结局链听完后的动作句)
sys_only_choice 现在,只要左右滑。 hint 迷茫 L2 抉择点缩小选择
sys_demo_continue 听我做一次。 hint 迷茫 L3 演示前缀(intro/continue)
sys_demo_choice 左右滑,都可以。现在你来。 hint 迷茫 L3 抉择点演示(不替玩家选)
sys_act_ping 点一下,发脉冲。 feedback 搜索等待无效滑动首次解释(17 号 §7)+ 上滑状态链动作句
status_choice 正在抉择。左右滑。 hint 抉择等待点上滑「我在哪」动作句
menu_help 左右滑换项,点一下确认。 content 菜单说明(menu 等待点 full 档 + 菜单内上滑重听)
inv_nosel 现在不用选。单击继续。 feedback 非抉择点滑动首次解释(原则 7)
inv_up_locked 上滑还没解锁。先单击继续。 feedback up 未解锁首次解释(阶段 0)
inv_down_locked 菜单,玩完一局解锁。单击继续。 feedback down 未解锁首次解释(阶段 <2)
sys_menu_restart_confirm 再点一下,确认重开。 feedback 「重新开始」二次确认(00 §5.4 破坏性操作)
sys_say_again 再说一遍: hint 主动重听前缀(engine/hints.js 播出,全项目一句)
sys_unlock_up 想知道自己在哪,就向上滑。 content 阶段 1 教学句(挂第一次脉冲成功后的回波链尾;engine/novice.js teachLine 播出)
sys_unlock_down 向下滑,可以打开菜单。 content 阶段 2 教学句(挂首局结局链尾;engine/novice.js)
sys_unlock_dt 没听清,就双击,再听一遍。 content 阶段 3 教学句(第 3 局;双击=重听等待点完整句;engine/novice.js)

修改(1 句,id 不变重录):sys_menu「菜单。左右滑换项,点一下确认。」(原 「菜单。单击切换选项,双击确认。」= 旧菜单口径,00 §5.4 废止;sys_menu_k 同步重录 「菜单。左右方向键换项,按空格确认。」)。其余既有句不动(sys_skip / sys_continue_ask / sys_new_dive / 菜单三项 / gd_invalid / prog_* / oxy_* / dry_* / prog_saved* 与全部剧情句; dv1_teach「单击,发一枚脉冲」与新 sys_hint_ping_full 动作词一致,不重录)。

删除(10 句):gd_brief / gd_continue / gd_again / gd_ping1 / gd_ping2 (向导层让位三档提示 sys_hint_ping_/continue_,原则 7/9)、gd_prog1 / gd_prog2 (迷茫接管 L1 改用等待点 _short 档,原则 8 不说教)、sys_help(全局帮助溢出废止, 含旧「双击重新听」口径)、sys_settings(菜单仅三项,永无播出位)、b_rule(开场 规矩念白,§4.10 砍掉;氧气账目契约由档位句与取消链 dv4_none 承载)。上方 G0 / G1 组 表中对应行按本节口径废止;「双击重听回波」无专属台词 id(旧实现复用回波资产), 台词层无删项、代码层已清理。合计 123 − 10 + 23 = 136 句(双性别)+ NPC 21。

键盘变体:新增 20 条(sys_first_tap / sys_first_tap_short / sys_hint_ping_full / sys_hint_ping_short / sys_hint_continue_full / sys_hint_continue_short / sys_hint_choice_short / sys_hint_settle_full / sys_only_choice / sys_demo_choice / sys_act_ping / status_choice / menu_help / inv_nosel / inv_up_locked / inv_down_locked / sys_menu_restart_confirm / sys_unlock_up / sys_unlock_down / sys_unlock_dt,措辞照 KEY_LINES["storyline"]「按空格 / 左右方向键 / 按回车」)+ sys_menu 重录;删除 6 对(gd_brief / gd_continue / gd_again / gd_ping1 / gd_ping2 / sys_help 随主句停用); 保留 4 对(sys_skip / sys_continue_ask / dv1_teach / p1)。变体合计 11 − 6 + 21 = 26 对。 多音字口径维持全表无「重听」(一律「重新听」/「再听一遍」/「重开」)。