实时语音克隆
本仓库实现了从语音验证到多说话人文本到语音合成的迁移学习(SV2TTS),并配备了一个可以实时工作的声码器。这是我的硕士论文。
SV2TTS 是一个包含三个阶段的深度学习框架。在第一阶段中,从几秒钟的音频中创建一个声音的数字表示。在第二和第三阶段中,该表示用作参考,根据任意文本生成语音。
视频演示(点击图片):
实现的论文
URL | 设计名称 | 标题 | 实现来源 |
---|---|---|---|
1806.04558 | SV2TTS | 从语音验证到多说话人文本到语音合成的迁移学习 | 本仓库 |
1802.08435 | WaveRNN (声码器) | 高效的神经音频合成 | fatchord/WaveRNN |
1703.10135 | Tacotron (语音合成器) | Tacotron:走向端到端的语音合成 | fatchord/WaveRNN |
1710.10467 | GE2E (编码器) | 用于语音验证的广义端到端损失 | 本仓库 |
注意事项
和深度学习领域的其他东西一样,本仓库已经很快变得过时了。许多 SaaS 应用(通常是付费的)将提供比这个仓库更好的音质。如果您希望获得具有高音质的开源解决方案:
- 查看 paperswithcode 获取其他仓库和语音合成领域的最新研究。
- 查看 CoquiTTS 获取一个具有更好语音克隆质量和更多功能的仓库。
- 查看 MetaVoice-1B 获取一个大规模的高音质语音模型。
设置
1. 安装依赖
- 支持 Windows 和 Linux。推荐使用 GPU 进行训练和推理以提高速度,但不是必需的。
- 推荐使用 Python 3.7。Python 3.5 或更高版本应该可以工作,但可能需要调整依赖项的版本。我推荐使用
venv
设置虚拟环境,但这不是必需的。 - 安装 ffmpeg。这是读取音频文件所必需的。
- 安装 PyTorch。选择最新的稳定版本、您的操作系统、您的包管理器(默认是 pip),如果您有 GPU,请选择任何建议的 CUDA 版本,否则选择 CPU。运行给定的命令。
- 使用
pip install -r requirements.txt
安装其余依赖项。
2. (可选)下载预训练模型
预训练模型现在会自动下载。如果这对您不起作用,您可以在这里手动下载它们。
3. (可选)测试配置
在下载任何数据集之前,您可以通过以下命令测试您的配置:
python demo_cli.py
如果所有测试都通过,您就可以继续了。
4. (可选)下载数据集
如果只是为了使用工具箱,我只推荐下载 LibriSpeech/train-clean-100
。将内容解压到 <datasets_root>/LibriSpeech/train-clean-100
,其中 <datasets_root>
是您选择的目录。工具箱中支持其他数据集,参见此处。您可以选择不下载任何数据集,但那样的话您需要使用自己的音频文件数据,或者需要用工具箱进行录音。
5. 启动工具箱
然后您可以尝试启动工具箱:
python demo_toolbox.py -d <datasets_root>
或
python demo_toolbox.py
具体取决于您是否下载了任何数据集。如果您正在运行 X-server 或者遇到 Aborted (core dumped)
错误,请参见此问题。