Files
SoundGame/web/rpg/gen/README.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

36 lines
3.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.
# web/rpg 音频资产清单与再生成方法(R4)
设计依据:`docs/design/05-rpg-ch1-voice-ids.md`(台词)、`05-rpg-chapter1.md`(场景/战斗/资产清单)、`05-rpg-addendum.md`(层叠修正)。
## 目录结构
```
web/rpg/audio/
├── voice/
│ ├── male/ # 旁白 107 id(Uncle_Fu,说书人)×{ogg,m4a}
│ ├── female/ # 旁白 107 id(Serena,讲武侠故事)×{ogg,m4a}
│ └── npc_*. # NPC 14 id 单音色平铺(引擎平铺回退,同 storyline 角色模式)
├── bgm/ # village / battle / boss / ending(90s 无缝循环,loudnorm -20)
└── sfx/ # 35 件(tel_* 9 / 战斗 6+SYN2 / 探索 4+SYN3 / amb_* 11)
```
## voice(107 旁白 id + 14 NPC id)
- 旁白 id 分组:A 序章 `intro_1..3`;S 系统 `sys_* help_* settings_hint st_*`(28);D 场景 `desc_*`(16);O 选项 `opt_*`(18);E 事件 `evt_*`(6);B 战斗 `btl_* cmd_* tut_*`(26);SH 商店 `shop_*`(7);addendum 补录敌方档位 `foe_hp_high/mid/low`(3)。
- NPC(平铺,speaker+instruct 恒定):村长 `npc_headman_1..4`(Uncle_Fu·慈祥和缓的老者);老猎人 `npc_hunter_1..4`(Eric·沙哑粗犷豪爽);寨丁头目 `npc_elite_1/half/die`(Dylan·凶狠粗鲁);黑风寨主 `npc_boss1_1/2/die`(Uncle_Fu·低沉阴狠——与村长同 speaker 不同 instruct,请试听区分度)。
- 再生成:`source env.d/tts.sh && flock .gpu.lock .venv-tts/bin/python tools/gen_voice_dual.py --game rpg --gender both`(staging 在 `tools/gen_voice_dual_wav/rpg/`,断点续跑;`--only id1,id2` 单句重录;`--check` 两性时长离群检查;`--convert` 转 ogg+m4a)。
## bgm(4 首,Mureka)
`village`(村庄/安全区)`battle`(普通战斗)`boss`(Boss 战)`ending`(章结算)。探索期**无音乐**(addendum §3),`amb_*` 由游戏层手动 loop 接 sfx 总线。再生成:`source env.d/mureka.sh && python3 tools/mureka_gen.py --prompt ... --out tools/mureka_out/rpg_<id>`(prompt 见 `tools/mureka_log.md` R4 节与本目录设计文档)。
## sfx(35 件)
- SA3 生成 29 件(`tools/gen_rpg_sfx.sh`,staging `tools/gen_rpg_sfx_wav/`):前摇 `tel_wolf tel_bandit tel_spider tel_elite tel_boss1 tel_croc tel_shaman tel_puppet tel_boss2`(裁 1.0s 格挡窗口);战斗 `atk_swing atk_hit parry skill_slash enemy_die potion`;探索 `chest drink_water rest door_heavy`;环境 `amb_village amb_path amb_fork amb_chest amb_stream amb_hunter amb_deepwood amb_gate amb_hall amb_swamp amb_peak`(6s→1s 首尾交叉淡化成 5s 循环,均值 -25dB)。
- 程序合成 5 件(numpy,`tools/gen_rpg_syn.py`):`hurt`(低频闷击)`flee`(渐远脚步)`step`(单步)`coin`(硬币叮当)`levelup`(A 小调五声上行钟声琶音)。
- one-shot 统一峰值 -1dBFS;`ui_deny` 按设计不做(反馈走震动)。
## 双格式约定
全部 `.ogg`(libvorbis q3, 44.1kHz)+ `.m4a`(aac 128k, 44.1kHz)。