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

3.0 KiB
Raw Blame History

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)。