EchoraEchora
返回模型列表

Real-Time-Voice-Cloning:让一代开发者理解声音克隆原理的开源项目

2026年9月18日
•
7 分钟阅读

早在商业平台把声音克隆变成按月订阅的服务之前,就有一个免费项目让一代开发者理解了它背后的工作原理。Real-Time-Voice-Cloning 由 Corentin Jemine 开发并发布在 GitHub 上,通过名为 SV2TTS 的三阶段流程,从一小段样本中克隆声音。它被分叉、研究和用于后续开发的次数如此之多,以至于实际上已经成为神经网络声音克隆的参照点。如果你现在想要达到生产级别的输出,它并不是首选;但运行它、理解它的构建方式,几乎是理解后续所有相关技术的必修课。

什么是 Real-Time-Voice-Cloning?

Real-Time-Voice-Cloning 是由 Corentin Jemine(GitHub 用户名为 CorentinJ)创建的免费开源声音克隆项目,围绕 SV2TTS 构建。SV2TTS 是一种从短音频样本中克隆声音的三阶段技术,最初由 Google 的一个研究团队于 2018 年提出。项目的宣传语——“5 秒克隆声音,实时生成任意语音”——甚至低估了它后来产生的影响:它已累计获得超过 60,000 个 GitHub Star 和 9,400 次 Fork,成为有史以来使用和引用最广泛的声音克隆代码库之一。它留下的影响也超出了仓库本身:编码器组件被拆分成名为 Resemblyzer 的独立软件包,现在由 Resemble AI 组织维护(Jemine 后来加入了这家公司);底层技术还被改编成 MockingBird,这是一个广泛使用的普通话分支,专为中文声音克隆而构建。

Real-Time-Voice-Cloning 的功能优势

  • 完全免费,全部运行在你自己的硬件上。 不需要账号,不需要 API 密钥,也没有按次生成费用——安装依赖并下载预训练模型后,一切都在本地运行。
  • 非常适合学习的架构。 编码器、合成器和声码器是彼此独立、可以查看内部实现的 Python 模块,而不是一个不透明的整体模型,因此它是理解神经网络声音克隆内部原理时较容易上手的代码库之一。
  • 让短样本克隆最初成为可能的迁移学习技巧。 这个项目提供了该技术的可运行实现,让声音克隆能够泛化到模型在训练期间从未听过的说话人——这也是后来大多数商业克隆工具赖以构建的概念基础。
  • 真正的工具箱,而不只是训练脚本。 demo_toolbox.py 提供图形界面,可以录制或加载声音样本、生成语音,并查看生成的嵌入;demo_cli.py 则为同一流程提供了可编写脚本调用的命令行入口。
  • 可供学习的分支和衍生项目生态。 由于项目广受欢迎且采用宽松许可证,MockingBird 等社区分支将它扩展到新的语言,让你能够在原版以英语为主的实现之外,获得可运行的参考实现。
  • 无需自行训练即可使用预训练模型。 你可以立即使用作者发布的预训练权重克隆声音,只有在确实需要不同的基础数据集或语言时,才进行完整的重新训练。

SV2TTS 的三阶段架构究竟如何工作

SV2TTS 背后的核心思路,也是在 2019 年大多数 TTS 系统还需要每位说话人数小时带转写的语音时,这个项目却能仅凭几秒音频克隆声音的原因,是一种特定的迁移学习技巧:把“这个声音听起来是什么样”与“如何让 TTS 模型用这个声音朗读文字”两个问题分开,再分别使用实际容易获取的数据集训练这两部分。

编码器按说话人验证模型进行训练——这种系统唯一的任务,就是判断两段音频由同一个人还是不同的人说出。它使用 VoxCeleb1 等数据集训练,这类数据集提供数千名说话人的音频,而不需要逐词转写。为了解决这一验证任务,模型必须学习一种紧凑的数值表示(即嵌入),在不依赖说话内容的情况下捕捉声音特征。由于这个嵌入空间具有良好的泛化能力,即使编码器从未接触过某个声音,也能仅凭该声音几秒钟的讲话,生成可用的表示。

合成器是一个 Tacotron 风格的序列到序列模型,它同时接收文本和说话人嵌入,并以两者为条件生成梅尔频谱图——一种基于频率的语音可视化表示。通过在 LibriSpeech 和 VCTK 等数据集上训练,它学会了根据输入的嵌入来调整朗读任意文本的方式,因此一个训练好的合成器就能生成多种不同声音的语音,无需为每位说话人准备单独的模型。

声码器接收梅尔频谱图,并将其转换成真正可播放的波形。这里的声码器基于 WaveRNN,选择这一神经网络架构,正是因为它生成音频的速度足以满足实时使用,而不是采用当时常见的速度更慢、延迟更高的声码器。由于这三个阶段在很大程度上独立训练——编码器使用说话人验证数据集,合成器使用带转写的多说话人音频,声码器使用相应的频谱图——在推理时,只需让一小段样本通过已经训练好的编码器,就能克隆一个新声音,完全不必重新训练合成器或声码器。

在本地开始使用 Real-Time-Voice-Cloning

  1. 克隆仓库并准备运行环境。 当前仓库使用 uv 管理 Python 环境和依赖,配置要求 Python 3.9,CPU 和 CUDA 版本均使用 PyTorch 1.10 系列。运行时由 uv 创建相应环境。
  2. 安装 ffmpeg 和 uv。 ffmpeg 用于读取音频文件;安装 uv 后,在仓库根目录使用下方对应命令运行工具,uv 会处理所需的 Python 依赖。
  3. 使用预训练模型。 首次运行时会自动下载编码器、合成器和声码器的预训练权重,无需自行训练。如果自动下载失败,可按官方 README 的链接手动下载。
  4. 运行工具箱,进行交互式操作。 demo_toolbox.py 会打开图形界面,你可以录制或加载参考声音,根据输入的文本生成语音,并直观地查看生成的嵌入。
  5. 也可以使用 CLI,方便通过脚本调用。 demo_cli.py 从命令行运行同样的编码器—合成器—声码器流程,相比交互式工具箱,更适合集成到较大的脚本中。
  6. 如果计划重新训练任何模型,请使用 GPU。 工具箱本身可以在配置相对较低的硬件上运行(实验性的低显存模式支持显存仅约 2GB 的 GPU),但认真重新训练这三个模型中的任何一个时,独立 GPU 都能带来显著帮助。
使用方式CPUNVIDIA GPU
图形工具箱uv run --extra cpu demo_toolbox.pyuv run --extra cuda demo_toolbox.py
命令行示例uv run --extra cpu demo_cli.pyuv run --extra cuda demo_cli.py

改善 Real-Time-Voice-Cloning 效果的技巧

  • 开始前先建立合理预期。 就连原作者也坦言,它的输出质量落后于现代商业和开源替代方案——应当把它当作理解声音克隆原理的途径,而不是制作可直接发布音频的工具。
  • 使用干净的单人参考音频。 编码器使用相对干净的说话人验证数据训练,因此参考样本中的背景噪声或重叠人声,对生成嵌入的损害会比在更新、更稳健的系统中更加明显。
  • 生成前先查看工具箱中的嵌入可视化。 图形界面里的嵌入图可以揭示参考片段是否产生了较差或异常的表示,在这里发现问题,比听到合成器输出含混不清的语音后再判断更快。
  • 先使用预训练模型,再尝试重新训练。 仅下载 LibriSpeech 的 train-clean-100 子集就足以用工具箱做实验——等到你确实打算从头重新训练模型时,再下载完整的 VoxCeleb1 和 VCTK。
  • 如果目标语言不是英语,可以看看 MockingBird。 与其自行尝试将最初用英语训练的模型适配到其他语言,不如从现有的普通话分支入手;对于普通话这个具体场景,它是更直接的起点。

Real-Time-Voice-Cloning 与较新的开源声音克隆项目对比

Real-Time-Voice-Cloning (SV2TTS)较新的开源项目(如 Coqui XTTS-v2、Chatterbox)
发布时间20192023–2025
维护情况架构较早,后续仍有依赖、安装和兼容性维护更新积极维护中
架构独立的编码器、合成器、声码器(Tacotron + WaveRNN)通常采用单一端到端或集成程度更高的架构
零样本质量具有历史意义,但按当前标准已显过时自然度和稳定性明显更好
如今最适合的用途通过动手实践学习声音克隆原理实际的自托管生产用途或爱好者使用

常见问题

什么是 SV2TTS?

SV2TTS(Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis,即从说话人验证到多说话人文本转语音合成的迁移学习)是 Real-Time-Voice-Cloning 所基于的三阶段技术,最初由 Google 的一个研究团队于 2018 年提出。

Real-Time-Voice-Cloning 还在维护吗?

项目的模型架构较早,但仓库后续仍有依赖、安装和兼容性更新。作者也提醒其音质落后于较新的方案,因此正式项目应根据实际需求评估是否采用。

Real-Time-Voice-Cloning 需要多少音频才能克隆声音?

根据项目最初的宣传语,短至几秒即可——但实际效果高度取决于参考样本的干净程度,而且整体质量通常落后于较新的声音克隆系统。

Real-Time-Voice-Cloning 可以免费使用吗?

可以。它运行在你自己的硬件上,不需要账号、API 密钥或订阅——不过,要比较顺畅地运行,你需要一台性能尚可的电脑,最好配备 GPU。

这个项目与 Resemble AI 是什么关系?

项目创建者 Corentin Jemine 后来加入了 Resemble AI;Resemblyzer 是从本项目的说话人编码器衍生出来的独立软件包,现在由 Resemble AI 的 GitHub 组织维护。

在 Echora 中根据参考声音生成新语音

如果你希望在浏览器中完成类似的声音克隆流程,可以向 Echora 的声音克隆上传参考录音,输入新文本,生成与参考声音相似的语音,随后试听并下载结果。请仅使用你自己的声音,或已获得明确克隆授权的声音。

在 Echora 中克隆声音 →