同步音频文档至 v5 克隆现行状态

更新林夏设计纲要、执行文档与技术报告,对齐 VoxCPM2 8002 端口、v4/v5 流水线、游戏 184 个 MP3 引用及 13 角色参考音色。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
xsl
2026-05-24 10:35:49 +08:00
co-authored by Cursor
parent 12eb1eab44
commit 9c02fbcd74
5 changed files with 372 additions and 299 deletions
+47 -46
View File
@@ -1,73 +1,74 @@
# 《林夏》角色 Voice Design 提示词
# 《林夏》角色语音提示词
> **模式**VoxCPM2 **Voice Design**(纯提示词,**不使用** `voice/` 参考音频)
> **接口**`POST /v1/speech/styled` — `{ "text": "...", "style": "..." }`**不传** `voice_id`
> **目的**:每个角色用不同提示词生成**不同音色**;同角色内用表演修饰控制 warm/cold 等分支。
> **现行生产(v5)**:参考 wav 锚定音色 + `get_clone_style()` 表演修饰 → `04_gen_tts_clone.py`
> **试听选音色(v4**Voice Design 纯提示词 → `03_gen_voice_samples.py`
> **详细状态**`audio_2/项目状态说明.md`
---
## 1. 与 v2 的区别
## 1. 三阶段关系
| | v2 (`v2_styled`) | v3 (`v3_voice_design`) |
|---|---|---|
| 音色来源 | `voice/{角色}/` 参考音频克隆 | 提示词描述音色 |
| API | `voice_id` + `style` | 仅 `style` |
| 同角色音色 | 与 audio_1 相同 | **全新,各角色互不相同** |
| 阶段 | 脚本 | 音色来源 | 状态 |
|------|------|----------|------|
| v4 试听 | `03_gen_voice_samples.py` | Voice Design 提示词(无参考) | 已选定 13 角色参考 |
| **v5 克隆** | `04_gen_tts_clone.py` | 选定 wav + 表演修饰 | **游戏正在使用** |
| v3 纯设计 | `02_gen_tts_voice_design.py` | 仅提示词 | 已废弃 |
v5 克隆时**不再**叠加 `ROLE_VOICE_DESIGN` 音色描述,音色由 `v4_voice_samples/` 中选定 wav 决定。
---
## 2. 角色音色提示词(Voice Design 核心
## 2. 已选定参考音色(v4 试听结果
| 角色 | 性别 | design 提示词 |
|------|------|--------------|
| `linxia` | 女 | 24岁中国女性,中低音女声,声线偏薄但稳定,疲惫但清醒,克制有温度,普通话,像深夜发微信语音 |
| `mom` | 女 | 52岁中国女性,温厚的中老年女声,音色略哑,轻微西部口音,说话慢而稳,像母亲打电话 |
| `azhe` | **男** | 27岁中国男性,清朗偏低男声,城市口音,理性偏冷,语速平稳,用词克制,略带距离感 |
| `xiaomei` | 女 | 24岁中国女性,明亮偏高的女声,语速快,活泼直接,像闺蜜连发语音,能量足 |
| `xiaomei_drunk` | 女 | 24岁中国女性,同闺蜜音色但喝醉了,口齿略含糊,情绪起伏大,时而哭时而笑 |
| `zhounan` | **男** | 26岁中国男性,温和偏闷的男中音,略拘谨,语速偏慢,像很久没联系的老同学,真诚不油 |
| `hr` | 女 | 38岁中国女性,成熟职场女声,中音区,知性干练,疲惫的善意,像HR发工作语音 |
| `anan` | 女 | 23岁中国女性,甜亮高音女声,语速快,比闺蜜更嗲,像在酒吧里喊,背景略吵 |
| `dorm_a` | 女 | 22岁中国女性,兴奋尖亮女声,语速很快,像群里报喜,充满喜悦 |
| `dorm_b` | 女 | 23岁中国女性,普通随和女声,中音,语速正常,像室友起哄 |
| `dorm_c` | 女 | 23岁中国女性,温柔低声女声,语速略慢,像注意到朋友沉默的室友 |
| `delivery` | **男** | 30岁中国北方男性,**男声**,偏低略粗,麻利直接,语速快,北方口音,像外卖小哥打电话 |
| `self_3y` | 女 | 21岁中国女性,比林夏更亮更高的女声,刚来北京,兴奋带紧张,声音更年轻 |
| 角色 | 文件 | 性别 |
|------|------|------|
| linxia | `linxia_v05.wav` | 女 |
| mom | `mom_v01.wav` | 女 |
| azhe | `azhe_v03.wav` | 男 |
| xiaomei | `xiaomei_v05.wav` | 女 |
| xiaomei_drunk | `xiaomei_drunk_v05.wav` | 女 |
| zhounan | `zhounan_v05.wav` | 男 |
| hr | `hr_v05.wav` | 女 |
| anan | `anan_v04.wav` | 女 |
| dorm_a/b/c | `v03` / `v02` / `v03` | 女 |
| delivery | `delivery_v04.wav` | **男** |
| self_3y | `self_3y_v03.wav` | 女 |
配置文件`audio_2/voice_style_prompts.py`
路径`audio_2/tts/v4_voice_samples/{角色}/` · 副本:`voice/{角色}/{角色}_ref.wav`
---
## 3. 表演修饰(同角色叠加
## 3. 表演修饰(v5 克隆时使用
林夏等分支台词会在音色描述后追加,例如:
`audio_2/voice_style_prompts.py``get_clone_style()` 按文件名返回,例如:
- `_warm` `,语气温暖开放,柔软但有分寸`
- `_cold``,语气冷淡疏离,短促`
- 妈妈长语音 seg1seg8、周南 seg1seg4、小美醉 seg1seg4 等见 `voice_style_prompts.py`
- 林夏 `_warm` / `_cold` / `_curious` / `ending_` / `sys_`
- 妈妈长语音 `seg1``seg8`、周南 `seg1``seg4`、小美醉 `seg1``seg4`
- self-3y 三版:`voice_01` 兴奋带紧张 / `voice_02` 疲惫假装坚强 / `voice_03` 平静有力
---
## 4. 批量生产
## 4. Voice Design 提示词(v4 试听用)
试听变体配置:`audio_2/voice_sample_prompts.py``ROLE_VOICE_VARIANTS`
统一试听文本:`AUDITION_TEXT`(每角色约 10 秒)
重新生成某角色试听:
```bash
VOXCPM_PORT=8002 bash /home/xsl/tts-server/start-voxcpm.sh
# 全量
VOXCPM_PORT=8002 python audio_2/scripts/02_gen_tts_voice_design.py --force
# 试听单个角色
python audio_2/scripts/02_gen_tts_voice_design.py --role delivery --test --force
python audio_2/scripts/02_gen_tts_voice_design.py --role linxia --test --force
VOXCPM_PORT=8002 python audio_2/scripts/03_gen_voice_samples.py --role delivery --force
```
输出:`audio_2/tts/v3_voice_design/*_wav_v3.mp3`
清单:`audio_2/tts/v3_voice_design/voice_design_manifest.tsv`
选定后替换 `v4_voice_samples/{role}/` 中 wav,再跑:
```bash
VOXCPM_PORT=8002 python audio_2/scripts/04_gen_tts_clone.py --role delivery --force
```
---
## 5. 注意事项
1. **Voice Design 同角色各条之间音色可能略有漂移**——无参考音频锚定。若某角色不稳定,可挑一条满意的音频注册为参考,改回 Style Control
2. **调整音**`ROLE_VOICE_DESIGN` 里对应角色的描述,重跑该角色即可
3. **外卖小哥必须是男声**——已在 `delivery` 提示词中写明「中国北方男性,男声」
1. **Voice Design 音色会漂移**——因此正式版必须「试听选定 → 克隆锚定」
2. **男声角**`azhe``zhounan``delivery`(delivery 语速已调慢,后处理倍率 1.00)
3. **游戏仅加载** `audio/mp3/tts/*_wav_v1.mp3`
+2 -3
View File
@@ -18,7 +18,7 @@
```
../audio/mp3/
├── tts/ 对白(177 条
├── tts/ 对白(169 条,游戏引用
├── music/ BGM、铃声
├── sfx/ 音效
└── ambience/ 环境音
@@ -120,7 +120,7 @@ blind/
├── audio/
│ ├── batch_tts_voxcpm.py 台词表 LINES + 角色语速 ROLES
│ └── mp3/ 游戏运行时音频(184 文件,已清理)
│ ├── tts/ 177 条对白
│ ├── tts/ 169 条对白(游戏引用)
│ ├── music/
│ ├── sfx/
│ └── ambience/
@@ -208,7 +208,6 @@ VoxCPM2 **不能**用提示词生成敲门、心跳等 SFX,只能做人声 TTS
- [ ] 实机/playtest 听一遍各角色,标记需重跑的台词或角色
- [ ] 若某角色不满意:改 `voice_sample_prompts.py` → 重跑 `03` 挑选 → 替换 `v4_voice_samples/{role}/` → 重跑 `04`
- [ ] 微调单条表演:改 `voice_style_prompts.py``_performance` 规则 → `--role xxx --force`
- [ ] 设计文档:`林夏.md``执行文档_音频素材制作.md`
---