数据决定上限
TTS模型效果好不好,80%取决于数据质量。
常见问题:
- 录音有底噪 → 合成出来有杂音
- 音量不稳定 → 合成忽大忽小
- 断句不自然 → 合成节奏奇怪
录音要求
硬件
| 设备 | 推荐 | 预算 |
|---|---|---|
| 麦克风 | 电容麦(如AT2020) | ¥500-1500 |
| 声卡 | 独立声卡或USB麦 | ¥300-800 |
| 环境 | 安静房间+吸音棉 | ¥100-300 |
录音参数
| |
录音技巧
- 距离:麦克风离嘴15-20cm
- 音量:保持-12dB到-6dB之间
- 状态:正常语速,自然呼吸
- 时长:至少2小时(5-10小时效果更好)
数据清洗流程
graph LR
A[原始音频] --> B[降噪]
B --> C[音量标准化]
C --> D[切分句子]
D --> E[对齐文本]
E --> F[质量检查]
F --> G[训练数据]
1. 降噪
工具:Audacity(免费)、Adobe Podcast(在线)
| |
⚠️ 注意:过度降噪会导致声音失真,宁可保留少量底噪
2. 音量标准化
| |
3. 切分句子
原则:一个音频片段 = 一句话(3-15秒)
工具:
- Whisper:自动转写+时间戳
- UVR:人声分离(去除背景音乐)
| |
4. 文本对齐
每个音频片段需要对应的文本标注:
| |
常见格式:
- LJSpeech格式:
文件名|文本 - CSV格式:带时间戳
常见坑
坑1:录音环境不一致
同一批数据,有的在卧室录,有的在办公室录 → 合成效果不稳定
解决:固定一个录音环境
坑2:情绪变化大
开始精神饱满,后面疲惫无力 → 合成声音不稳定
解决:分多次录,每次1小时以内
坑3:文本标注错误
音频说"今天",标注写"昨天" → 模型学混了
解决:用Whisper自动转写,人工校验
坑4:切分太碎
3个字一个片段 → 模型学不到完整语调
解决:保持5-15秒一个片段
数据量参考
| 目标 | 数据量 | 效果 |
|---|---|---|
| 快速验证 | 10分钟 | 勉强能用 |
| 基本可用 | 1-2小时 | 像那么回事 |
| 效果不错 | 5-10小时 | 接近真人 |
| 专业级 | 20小时+ | 几乎分不出 |
推荐工具
| 用途 | 工具 | 备注 |
|---|---|---|
| 录音 | Audacity | 免费 |
| 降噪 | Adobe Podcast | 在线免费 |
| 人声分离 | UVR5 | 开源 |
| 转写 | Whisper | 开源 |
| 批处理 | FFmpeg | 命令行工具 |
下一步
数据准备好后,就可以开始训练了。下篇讲TTS模型微调。
有问题留言。