MockingBird:让英文声音克隆器学会说普通话的社区分支
MockingBird 所基于的 Real-Time-Voice-Cloning 项目可以用几秒钟的音频克隆声音——但仅支持英语。开发者 babysor 专门创建了这个分支来弥补这一缺口:没有从零开始,而是针对普通话重新训练并扩展原项目。这段由社区推动的起源,正是 MockingBird 成为 GitHub 上 fork 数和 star 数最多的中文声音克隆仓库之一的原因:它解决了中文开发者真实而具体的需求缺口,而不是一项碰巧支持中文的通用研究成果。
什么是 MockingBird?
MockingBird 是一套开源声音克隆和实时语音合成工具,基于采用 SV2TTS 的 Real-Time-Voice-Cloning 项目创建分支,并专门为普通话重新设计。它只需短至 5 秒的参考音频,就能克隆目标声音,并用该声音实时生成任意新语音;训练和测试覆盖了多个主要中文语音数据集。
MockingBird 的功能优势
- 5 秒声音克隆。 一段很短的参考音频就足以捕捉目标声音,这得益于复用预训练的说话人验证编码器,而不必为每个新说话人从头训练声音识别能力。
- 实时生成,推理引擎专门针对速度做了优化,而非只面向批量式离线处理。
- 专为普通话打造,在 aidatatang_200zh、MAGICDATA、AISHELL-3 和 data_aishell 等多个中文语音数据集上训练和验证,而不是在以英语为先的模型上事后附加中文支持。
- 真正跨平台,可在 Windows、Linux,甚至 Apple Silicon Mac 上运行。
- 两种使用方式:用于本地交互实验的图形化工具箱,以及用于远程调用的 webserver 模式——既覆盖动手测试,也能集成到更大型的应用中。
- 庞大而活跃的中文开发者社区,这一点反映在其 GitHub fork 数和 star 数上;与典型的学术发布相比,这也意味着更多社区故障排查资源和共享经验。
迁移学习技巧究竟如何工作
正是这项具体的工程决策,让中文声音克隆项目无需海量新训练资源也能实现,因此值得理解。MockingBird 的流程继承自其所基于的 SV2TTS 方法,分为三个组件:编码器负责学习如何表示说话人的声音特征(它最初针对说话人验证任务训练,这种能力可以很好地泛化到识别“是什么让这个声音听起来像这个声音”,即使说话人在训练中从未出现过);合成器根据该说话人表征,将文本转换为梅尔频谱图;声码器则把频谱图转换成真实波形。
MockingBird 的方法基本按原样复用原英语项目中预训练的编码器和声码器,把新训练专门集中在合成器上——也就是实际负责把中文文本映射为语音内容的组件。由于编码器的说话人识别能力和声码器的波形生成能力无需从零重新学习,增加普通话支持就比从头训练一套全新的三阶段流程容易得多;这也直接解释了为什么项目自己的文档把仅重新训练三个组件中的一个所得到的结果描述为“easy and awesome”。
MockingBird 入门
设置过程首先要创建一个专用的 Python 3.9 conda 环境,克隆仓库,再通过 pip 安装依赖——除了 PyTorch 及其相关软件包外,还特别包括 webrtcvad-wheels。环境就绪后,准备一段 5 到 30 秒的目标声音样本,然后启动项目提供的图形化工具箱,加载样本、输入想让它说出的文本,并直接通过界面生成克隆语音。如果不是交互式使用,而是要集成到另一个应用中,webserver 模式则会开放同样的能力供远程调用。
获得更好结果的技巧
- 使用 5 到 30 秒范围内的干净录音。 虽然 5 秒是宣传中的最低要求,但一段稍长且录制良好的样本,往往比每次都紧贴最低时长更能产生稳定结果。
- 做好在较新系统上排查依赖版本问题的准备。 项目记录的测试使用的是 PyTorch 1.9.0 和 2021 年前后的特定 GPU 配置——在现代环境中,你可能需要手动调整软件包版本,而不能假定所有依赖都能直接顺利安装。
- 构建自定义集成前,先使用 GUI 工具箱。 这是最快的方式,可以在围绕 webserver 模式编写任何代码之前,确认你的环境和指定声音样本确实可以正常工作。
- 借助中文开发者社区解决设置问题。 这个项目在社区中被广泛 fork 和讨论,因此你遇到的某条具体错误信息,很可能已经有人解决并记录过。
MockingBird 与其他面向中文的克隆工具对比
| MockingBird | GPT-SoVITS | XTTS-v2 | |
|---|---|---|---|
| 克隆所需的最短音频 | 5 秒 | 5 秒(零样本) | 约 6 秒 |
| 核心架构 | SV2TTS 风格的编码器/合成器/声码器 | GPT + SoVITS(基于 VITS)混合架构 | GPT-2 风格的自回归架构 + VQ-VAE |
| 是否源于中文专项需求 | 是,专门为增加普通话支持而创建分支 | 在中文/日文方面口碑突出 | 通用多语言,并非专门面向中文 |
| 内置数据准备工具 | 否 | 是(人声分离、ASR、自动切分) | 否 |
| 界面选项 | GUI 工具箱 + webserver | 完整 WebUI | Python API |
| 社区活跃度 | 历史社区庞大,核心开发活跃度较低 | 积极维护,版本更新频繁 | Coqui 关闭后由社区维护分支 |
MockingBird 的独特定位,是最早由社区推动、用来回答“我想要 Real-Time-Voice-Cloning 的体验,但需要普通话版本”这一需求的项目——此后,GPT-SoVITS 等较新的项目已经打造出维护更活跃、功能更丰富的替代方案,但 MockingBird 的知名度和文档基础仍使它成为一个真正实用的起点,尤其适合想了解 SV2TTS 风格架构底层工作原理的人。
常见问题
MockingBird 需要多少音频才能克隆声音?
最少只需 5 秒,建议使用 5 到 30 秒的音频以获得更稳定的结果。
为什么要创建 MockingBird,而不是直接使用原来的英语项目?
原始 Real-Time-Voice-Cloning 项目只支持英语。MockingBird 专门为普通话创建分支、重新训练并进行扩展,训练和验证使用了多个中文语音数据集。
MockingBird 是否需要为中文训练新的声音编码器?
不需要——这正是该项目提高效率的关键。它复用了原英语模型中预训练的编码器和声码器,并把新训练集中在合成器组件上,因此无需重新训练整个流程,也能实现中文支持。
MockingBird 可以在哪些平台上运行?
文档明确支持 Windows、Linux 和 Apple Silicon Mac。
MockingBird 仍在积极维护吗?
自最活跃的时期以来,它的核心开发节奏已经放缓,项目记录的测试也反映的是 2021 年前后的软件版本——在现代系统上,预计需要排查部分依赖版本问题。不过,由于社区规模庞大,大多数常见问题都已有记录完备的解决方案。
使用参考音频生成相似音色语音
如果你希望完成相近的“参考音频 + 新文本 → 相似音色语音”流程,可以使用 Echora 的声音克隆。上传你自己的声音或已获明确授权使用的参考音频,输入最多 5,000 个字符的新文本,即可生成与参考音色相近的新语音。