Files
SoundGame/docs/design/04-space-voice-ids.md
T
SoundGame Dev cc0f8c008d HTML5 重写:6 款游戏 + 用户系统 + 全局设置 + 5 轮迭代重构
- 新增 web/ 纯音频 HTML5 平台:共享引擎(手势/WebAudio 三层/设置/震动)、
  Node 零依赖服务器(静态 + 注册登录 + 进度存档 API)
- 游戏:剑与声(RPG 新作)、声命线、暗室(重设计)、音序回响(重设计)、
  节拍行者(跟随领奏重构)、盲航(同向闪避重构);声东击西删除
- 全局功能:男声/女声双套 TTS 资产、三档语速、BGM 音量三档、
  震动反馈语言(10 种震型)、服务器进度同步
- 资产:899 ogg + 899 m4a(Qwen3-TTS 双性别语音、Stable Audio 3 音效、
  Mureka BGM 4+3 首),终检零缺失
- 文档:docs/design/ 13 篇设计审查文档、docs/audio/ 资产管线、
  web/server/README.md API 文档
2026-08-29 21:55:44 +08:00

106 lines
6.0 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.
# 04a · 《盲航》重构版语音台词表(voice ids,R4 录音依据)
> **给音频总监的录制说明**
> - 设计依据:[04-space-rebuild.md](04-space-rebuild.md)。闪避为**同向**(左来左滑),台词已全部按此写死,不存在反向表述。
> - 旁白双性别:**female = Serena,male = Uncle_Fu**(R1 音色分配表)。落 `web/space/audio/voice/female|male/<id>.{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 约定在切换验证后统一清理。