字
字节笔记本
2026年2月22日
MockingBird - 中文实时语音克隆工具
MockingBird 是一个开源的中文实时语音克隆项目,基于 PyTorch 深度学习框架开发。该项目支持通过少量语音样本克隆说话人的声音,并能生成自然流畅的中文语音。截至目前,该项目在 GitHub 上已获得超过 3.6 万 stars,是中文语音合成领域最受欢迎的开源项目之一。
项目简介
MockingBird 最初从仅支持英语的 Real-Time-Voice-Cloning 项目分叉而来,经过社区贡献者的持续开发,现已完整支持中文普通话。项目使用多种中文数据集进行训练和测试,包括 aidatatang_200zh、magicdata、aishell3、biaobei、MozillaCommonVoice 等。
核心特性
- 中文支持:完整支持普通话,使用多种中文数据集训练优化
- PyTorch 框架:基于 PyTorch 1.9.0+ 开发,支持 GPU 加速(Tesla T4、GTX 2060 等)
- 跨平台:支持 Windows 和 Linux 操作系统,M1 Mac 也有社区成功运行案例
- 开箱即用:仅需下载或训练合成器即可使用,支持复用预训练模型
- Web 服务:可部署为 Web 服务,支持远程调用
技术架构
MockingBird 采用经典的语音合成流水线架构,包含三个核心模块:
| 模块 | 功能 | 技术基础 |
|---|---|---|
| Encoder | 声音特征编码 | GE2E (Generalized End-To-End) |
| Synthesizer | 文本到梅尔频谱合成 | Tacotron + Global Style Token |
| Vocoder | 频谱到波形生成 | WaveRNN / HiFi-GAN / Fre-GAN |
支持的声码器
- WaveRNN:经典声码器,效果稳定
- HiFi-GAN:实时高质量语音合成
- Fre-GAN:频率一致性对抗网络
安装指南
环境要求
- Python 3.7 或更高版本
- PyTorch 1.9.0+
- CUDA 10.2+(GPU 加速)
- ffmpeg
安装步骤
bash
# 1. 克隆项目
git clone https://github.com/babysor/MockingBird.git
cd MockingBird
# 2. 安装 PyTorch
pip install torch torchvision torchaudio
# 3. 安装 ffmpeg
# macOS: brew install ffmpeg
# Ubuntu: sudo apt-get install ffmpeg
# 4. 安装依赖
pip install -r requirements.txt
pip install webrtcvad-wheelsConda 环境安装(推荐)
bash
# 创建新环境
conda env create -n mockingbird -f env.yml
# 激活环境
conda activate mockingbird快速开始
方式一:使用社区预训练模型
- 下载社区分享的预训练合成器模型
- 将模型放入
synthesizer/saved_models/目录 - 启动工具箱:
bash
python demo_toolbox.py -d <datasets_root>方式二:训练自己的模型
bash
# 1. 数据预处理
python pre.py <datasets_root> -d aidatatang_200zh -n 10
# 2. 训练合成器
python ./control/cli/synthesizer_train.py mandarin <datasets_root>/SV2TTS/synthesizer
# 3. 训练声码器(可选)
python ./control/cli/vocoder_train.py <trainid> <datasets_root> hifigan启动 Web 服务
bash
python web.py访问 http://localhost:8080 使用 Web 界面。支持录制 5-15 秒的语音样本进行克隆。
使用示例
工具箱界面操作
- 启动工具箱后,选择或录制参考音频(5-15秒)
- 输入要合成的文本内容
- 点击合成按钮生成语音
- 可调整参数优化合成效果
语音转换功能(PPG-based VC)
基于 PPG-VC 技术,实现变声效果:
bash
# 启动 VC 模式
python demo_toolbox.py -vc -d <datasets_root>数据集支持
| 数据集 | 大小 | 下载地址 |
|---|---|---|
| aidatatang_200zh | 200小时 | OpenSLR |
| magicdata | 755小时 | OpenSLR |
| aishell3 | 85小时 | OpenSLR |
| data_aishell | 150小时 | OpenSLR |
常见问题
显存不足
修改 synthesizer/hparams.py 中的 batch_size 参数:
python
# 将 12 调整为更小的值,如 8 或 6
tts_schedule = [(2, 1e-3, 20_000, 8), ...]模型加载错误
如果遇到 size mismatch 错误,请参考 Issue #37 进行修复。
训练完成标准
- 必须出现注意力模型(attention)
- Loss 值低于 0.4
- 参考值:18k 步后出现注意力,50k 步后 loss < 0.4
相关论文
| 论文 | 说明 |
|---|---|
| Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis | SV2TTS 核心论文 |
| Style Tokens: Unsupervised Style Modeling | Global Style Token |
| HiFi-GAN: Generative Adversarial Networks | HiFi-GAN 声码器 |
| Generalized End-To-End Loss for Speaker Verification | GE2E Encoder |
项目链接
- GitHub 仓库:https://github.com/babysor/MockingBird
- Demo 视频:Bilibili
- Wiki 教程:快速入门
- 知乎专题:炼丹技巧
许可证
本项目采用 MIT License 开源协议。
分享: