字节笔记本

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-wheels

Conda 环境安装(推荐)

bash
# 创建新环境
conda env create -n mockingbird -f env.yml

# 激活环境
conda activate mockingbird

快速开始

方式一:使用社区预训练模型

  1. 下载社区分享的预训练合成器模型
  2. 将模型放入 synthesizer/saved_models/ 目录
  3. 启动工具箱:
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 秒的语音样本进行克隆。

使用示例

工具箱界面操作

  1. 启动工具箱后,选择或录制参考音频(5-15秒)
  2. 输入要合成的文本内容
  3. 点击合成按钮生成语音
  4. 可调整参数优化合成效果

语音转换功能(PPG-based VC)

基于 PPG-VC 技术,实现变声效果:

bash
# 启动 VC 模式
python demo_toolbox.py -vc -d <datasets_root>

数据集支持

数据集大小下载地址
aidatatang_200zh200小时OpenSLR
magicdata755小时OpenSLR
aishell385小时OpenSLR
data_aishell150小时OpenSLR

常见问题

显存不足

修改 synthesizer/hparams.py 中的 batch_size 参数:

python
# 将 12 调整为更小的值,如 8 或 6
tts_schedule = [(2,  1e-3,  20_000,  8), ...]

模型加载错误

如果遇到 size mismatch 错误,请参考 Issue #37 进行修复。

训练完成标准

  1. 必须出现注意力模型(attention)
  2. Loss 值低于 0.4
  3. 参考值:18k 步后出现注意力,50k 步后 loss < 0.4

相关论文

项目链接

许可证

本项目采用 MIT License 开源协议。

分享: