Files
SoundGame/docs/audio/round1-report.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

4.8 KiB
Raw Blame History

R1 音频轮次报告(2026-08-29,音乐音效总监)

本轮主题:双性别旁白资产管线 + simon BGM 移除。Mureka 花费 $0(无新 BGM,预算余额 $1.85)。

1. 新目录约定(给开发)

  • 旁白/系统音按性别分目录:web/<game>/audio/voice/male/<id>.{ogg,m4a} 与 web/<game>/audio/voice/female/<id>.{ogg,m4a}。
  • 两个目录的 id 集合完全一致(每游戏核对过),引擎按用户选择整目录切换即可,无需按 id 特判。
  • 双格式:每个 id 都有 .ogg(libvorbis q3 44.1k)和 .m4a(aac 128k 44.1k),沿用现有格式协商逻辑。
  • 平铺的旧文件 voice/<id>.* 本轮保留未动。引擎切到 male/female 子目录后,后续轮次再删除平铺文件(storyline 角色台词除外,见 §3)。
  • staging wav 保留在 tools/gen_voice_dual_wav/<game>/<gender>/,供后续轮次增量重生成(管线支持断点续跑,已有且合格的 wav 会跳过)。

2. 生成统计

游戏 ids/性别 male 总时长 female 总时长
storyline 36 806.6s 960.6s
escape 41 230.8s 212.4s
simon 30 63.4s 62.9s
rhythm 9 71.5s 59.0s
space 27 78.2s 65.1s
合计 143 × 2 = 286 条 1250.5s 1360.0s

落盘文件 286 × 2 格式 = 572 个。质量控制:全部通过 时长>0.3s / 峰值>0.05 / 峰值归一 0.89;数字类同 instruct 整批生成;>40 字台词拆句拼接。两性时长离群(>3 倍)初检 3 条,已全部重生成并复检通过:

  • simon/male/num_4(8.00s → 0.48s)
  • simon/female/teach_end(29.04s → 14.80s)
  • space/male/n_ge(2.16s → 1.12s)

3. storyline 角色音色映射(角色台词不做双性别)

角色 speaker 文件 id(沿用平铺原文件)
旁白/系统音 male=Uncle_Fu / female=Vivian 36 个双性别 id(见 asset-manifest.md)
林晚(主角) Serena n02_linwan n03_radio n12_take n19_betray n21_redeem n24_open n25_secure
猎狗(反派) Dylan n07_dog n18_dog
小满(小男孩) Vivian(童声 instruct) e1_child
林晨(妹妹录音) Vivian(收音机 instruct) n03_msg
广播女声 Vivian(广播 instruct) n05_bcast

需要开发配合:角色台词在两个性别下使用同一份音频。建议引擎对 storyline 做回退:在 voice/<gender>/ 找不到的 id 回退读平铺 voice/<id>;或由开发/后续轮次把 12 个角色 id 复制进两个子目录(资产侧未复制,避免重复文件进入仓库前等引擎方案定稿)。

注意:female 旁白选用 Vivian 而非 Serena,因为 Serena 是主角林晚的音色,旁白与主角同声会混淆;代价是旁白与小满/林晨/广播同 speaker,已用截然不同的 instruct(冷静低沉 vs 童声/收音机/机械广播)区分,请策划试听确认。

4. 音色分配表

游戏 male female
storyline Uncle_Fu(沿用原旁白) Vivian
escape Uncle_Fu(沿用) Serena
simon Uncle_Fu Serena(沿用)
rhythm Uncle_Fu Vivian(沿用)
space Uncle_Fu Serena(沿用)

Ryan(英语母语音色)未采用:项目已有中文发音投诉(反馈⑥),男声统一中文母语 Uncle_Fu。冒烟样本在 tools/samples/ryan_zh_*.wav,如策划试听认为可用,改 tools/gen_voice_dual.py 的 SPEAKERS 重跑即可。

5. 需要游戏代码配合的点

  1. 引擎支持 voice 性别目录切换:按用户设置在 audio/voice/male|female/ 之间切换;storyline 需平铺回退(§3)。
  2. simon 删除 BGM 引用:资产 web/simon/audio/bgm/theme.{ogg,m4a} 已按用户要求删除(bgm/ 目录现为空),请移除 game.js 中的 bgm 加载/播放逻辑及 preload 清单条目。
  3. 语音选择 UI 入口:需要「男声/女声」设置项(全局或每游戏),默认建议 male=storyline/escape、female=simon/rhythm/space(即各游戏原音色性别),具体由策划定。
  4. 平铺旧 voice 文件待引擎切换完成后通知音频侧清理(R2+)。

6. 质量遗留问题

  • 本轮 QC 为自动检查(时长/峰值/两性离群),未做人工试听;发音准确性需策划/QA 试听把关。文本层多音字风险清单在 docs/audio/asset-manifest.md(如 storyline help 的「重听」建议改「重新听」),确认误读后改台词表重跑单条即可。
  • simon/female/teach_end 重生成后 14.8s(male 7.8s),比值正常但偏长,建议试听确认无重复啰嗦。
  • 管线脚本:tools/gen_voice_dual.py(含全部台词表,支持 --game/--gender/--only/--check/--convert)。

7. Mureka 花费

本轮 $0(无新 BGM 需求;simon BGM 为删除而非重制)。累计 $0.15 / $2.00,未动 tools/mureka_log.md(无新条目)。