声纹克隆 & 语音合成
何时使用此 Skill
| 场景 | 是否需要此 Skill |
|---|
| 数字人平台支持声纹克隆(可灵/即梦/HeyGen) | 不需要,直接在 digital-avatar 里处理 |
| 数字人平台不支持声纹克隆 |
需要,生成音频后上传 |
| 纯音频输出(播客/有声书)| 需要 |
| 需要更精细的语音控制 | 可选,MiniMax/ElevenLabs 控制更细 |
推荐:优先用数字人平台自带的声纹克隆,保持后端一致性。
功能
- 1. 声纹克隆:上传音频样本 → 生成声纹 ID
- 语音合成:文本 + 声纹 → 音频文件
- 批量生成:分镜列表 → 多个音频文件
支持的后端
| 后端 | 克隆 | 情绪 | 多语言 | 特点 |
|---|
| MiniMax | ✓ | ✓ | 中/英 | 国内快,中文好 |
| ElevenLabs |
✓ | ✓ | 30+ | 质量顶级 |
| Fish Audio | ✓ | - | 中/英/日 | 开源,便宜 |
| Azure TTS | - | ✓ | 100+ | 稳定,多语言 |
| OpenAI TTS | - | - | 多语言 | 简单快速 |
默认使用 MiniMax(如已配置)。
工作流程
流程 A:声纹克隆
CODEBLOCK0
流程 B:语音合成
CODEBLOCK1
流程 C:批量生成
CODEBLOCK2
输入参数
声纹克隆
- | minimax / elevenlabs / fish |
| audio_sample | ✓ | 音频文件路径(10s-5min)|
| name | - | 声纹名称 |
| description | - | 声纹描述 |
语音合成
| 参数 | 必填 | 说明 |
|---|
| mode | ✓ | synthesize |
| backend |
- | 同上 + azure / openai |
| text | ✓ | 要合成的文本 |
| voice_id | ✓ | 声纹 ID 或预设名 |
| output | - | 输出路径 |
| speed | - | 语速 0.5-2.0(默认1.0)|
| emotion | - | 情绪(见下表)|
| pitch | - | 音调调整 |
| format | - | mp3 / wav / ogg |
批量生成
- | 同上 |
| scenes | ✓ | 分镜列表(含台词)|
| voice_id | ✓ | 声纹 ID |
| output_dir | - | 输出目录 |
情绪控制
| 情绪 | 英文 | 适用场景 |
|---|
| neutral | neutral | 默认/旁白 |
| happy |
happy | 轻松/种草 |
| sad | sad | 共情/痛点 |
| angry | angry | 吐槽/愤怒 |
| excited | excited | 惊喜/CTA |
| serious | serious | 专业/严肃 |
| whisper | whisper | 悄悄话/ASMR |
输入格式(批量)
CODEBLOCK3
输出格式
声纹克隆
CODEBLOCK4
语音合成
CODEBLOCK5
批量生成
CODEBLOCK6
后端配置
详见 references/backend-setup.md
音频样本要求
声纹克隆最佳实践
| 项目 | 要求 |
|---|
| 时长 | 30s-3min(最佳1-2min) |
| 格式 |
mp3 / wav / m4a |
| 采样率 | ≥16kHz |
| 内容 | 清晰朗读,无背景噪音 |
| 情绪 | 自然平稳,不要太夸张 |
提高克隆质量
- 1. 安静环境录制
- 保持语速稳定
- 内容覆盖常用音节
- 避免口水音/换气声
- 使用高质量麦克风
使用示例
克隆声纹
CODEBLOCK7
单条合成
CODEBLOCK8
批量合成分镜
CODEBLOCK9
与上下游对接
上游:video-script-generator 的 scenes[].narration
下游:
- -
digital-avatar:音频输入生成口播 - INLINECODE2 :音频轨道
- INLINECODE3 :音频合并
Pipeline 集成
CODEBLOCK10
注意事项
- 1. 声纹克隆需遵守各平台使用条款
- 不要用他人声音做误导性内容
- 商用需确认版权协议
- 批量生成建议控制并发,避免 rate limit
- 保存 voice_id,避免重复克隆
声纹克隆 & 语音合成
何时使用此 Skill
| 场景 | 是否需要此 Skill |
|---|
| 数字人平台支持声纹克隆(可灵/即梦/HeyGen) | 不需要,直接在 digital-avatar 里处理 |
| 数字人平台不支持声纹克隆 |
需要,生成音频后上传 |
| 纯音频输出(播客/有声书)| 需要 |
| 需要更精细的语音控制 | 可选,MiniMax/ElevenLabs 控制更细 |
推荐:优先用数字人平台自带的声纹克隆,保持后端一致性。
功能
- 1. 声纹克隆:上传音频样本 → 生成声纹 ID
- 语音合成:文本 + 声纹 → 音频文件
- 批量生成:分镜列表 → 多个音频文件
支持的后端
| 后端 | 克隆 | 情绪 | 多语言 | 特点 |
|---|
| MiniMax | ✓ | ✓ | 中/英 | 国内快,中文好 |
| ElevenLabs |
✓ | ✓ | 30+ | 质量顶级 |
| Fish Audio | ✓ | - | 中/英/日 | 开源,便宜 |
| Azure TTS | - | ✓ | 100+ | 稳定,多语言 |
| OpenAI TTS | - | - | 多语言 | 简单快速 |
默认使用 MiniMax(如已配置)。
工作流程
流程 A:声纹克隆
输入: 音频样本(10s-5min)
↓
上传到后端
↓
等待训练(即时-几分钟)
↓
输出: voice_id
流程 B:语音合成
输入: text + voice_id + 参数
↓
调用 TTS API
↓
输出: 音频文件
流程 C:批量生成
输入: scenes[] + voice_id
↓
逐条生成(或并行)
↓
输出: 音频文件列表
输入参数
声纹克隆
- | minimax / elevenlabs / fish |
| audio_sample | ✓ | 音频文件路径(10s-5min)|
| name | - | 声纹名称 |
| description | - | 声纹描述 |
语音合成
| 参数 | 必填 | 说明 |
|---|
| mode | ✓ | synthesize |
| backend |
- | 同上 + azure / openai |
| text | ✓ | 要合成的文本 |
| voice_id | ✓ | 声纹 ID 或预设名 |
| output | - | 输出路径 |
| speed | - | 语速 0.5-2.0(默认1.0)|
| emotion | - | 情绪(见下表)|
| pitch | - | 音调调整 |
| format | - | mp3 / wav / ogg |
批量生成
- | 同上 |
| scenes | ✓ | 分镜列表(含台词)|
| voice_id | ✓ | 声纹 ID |
| output_dir | - | 输出目录 |
情绪控制
| 情绪 | 英文 | 适用场景 |
|---|
| neutral | neutral | 默认/旁白 |
| happy |
happy | 轻松/种草 |
| sad | sad | 共情/痛点 |
| angry | angry | 吐槽/愤怒 |
| excited | excited | 惊喜/CTA |
| serious | serious | 专业/严肃 |
| whisper | whisper | 悄悄话/ASMR |
输入格式(批量)
yaml
mode: batch
voiceid: voiceabc123
backend: minimax
scenes:
- id: 1
text: 你是不是也遇到过这样的问题?
emotion: neutral
speed: 1.0
- id: 2
text: 每次做 PPT 都要花好几个小时...
emotion: sad
speed: 0.9
- id: 3
text: 现在只需要 30 秒!
emotion: excited
speed: 1.1
- id: 4
text: 链接在评论区,快去试试吧
emotion: happy
speed: 1.0
outputdir: ./audiooutput/
format: mp3
输出格式
声纹克隆
yaml
voice:
id: voice_abc123
backend: minimax
name: 我的声音
status: ready
created_at: 2024-01-01T00:00:00Z
语音合成
yaml
audio:
path: ./output/scene_01.mp3
duration: 3.5
format: mp3
sample_rate: 44100
批量生成
yaml
audios:
- id: 1
path: ./audiooutput/scene01.mp3
duration: 2.8
- id: 2
path: ./audiooutput/scene02.mp3
duration: 4.2
- id: 3
path: ./audiooutput/scene03.mp3
duration: 2.1
- id: 4
path: ./audiooutput/scene04.mp3
duration: 3.0
total_duration: 12.1
后端配置
详见 references/backend-setup.md
音频样本要求
声纹克隆最佳实践
| 项目 | 要求 |
|---|
| 时长 | 30s-3min(最佳1-2min) |
| 格式 |
mp3 / wav / m4a |
| 采样率 | ≥16kHz |
| 内容 | 清晰朗读,无背景噪音 |
| 情绪 | 自然平稳,不要太夸张 |
提高克隆质量
- 1. 安静环境录制
- 保持语速稳定
- 内容覆盖常用音节
- 避免口水音/换气声
- 使用高质量麦克风
使用示例
克隆声纹
用户:用这段音频克隆我的声音 [附音频]
执行:
- 1. mode=clone, audiosample=<音频路径>
- 上传到 MiniMax
- 返回 voiceid
单条合成
用户:用 voice_abc123 合成这句话:大家好,欢迎来到我的频道
执行:
- 1. mode=synthesize, voiceid=voiceabc123, text=...
- 调用 TTS API
- 返回音频文件
批量合成分镜
用户:根据这个分镜列表生成配音 [附 YAML]
执行:
- 1. 解析 scenes 列表
- 逐条调用 TTS
- 返回音频列表 + 总时长
与上下游对接
上游:video-script-generator 的 scenes[].narration
下游:
- - digital-avatar:音频输入生成口播
- scene-video-generator:音频轨道
- video-stitcher:音频合并
Pipeline 集成
yaml
video-script-generator 输出
scenes:
- id: 1
narration: 你是不是也...
duration: 3s
自动提取 narration → voice-clone-tts
输出音频 → digital-avatar / video-stitcher
注意事项
- 1. 声纹克隆需遵守各平台使用条款
- 不要用他人声音做误导性内容
- 商用需确认版权协议
- 批量生成建议控制并发,避免 rate limit
- 保存 voice_id,避免重复克隆