YourTTS:一个模型,两种不同任务
用一个从未见过的声音生成新语音,以及把已有录音转换成另一个说话人的声音,听起来像是两个相关的问题,但大多数 TTS 系统只为其中一个而构建。由 Coqui 研究人员开发的 YourTTS 则用同一个底层模型同时完成两者——零样本多说话人文字转语音和零样本声音转换——并因此成为首个把真正的多语言方法引入零样本多说话人 TTS 的已发表方案。
什么是 YourTTS?
YourTTS 是 Edresson Casanova 与 Coqui 同事开发的研究模型,构建于 VITS 架构之上。VITS 是一种端到端模型,将变分自动编码器、对抗训练和归一化流结合起来,无需独立的声学模型与声码器阶段,便能直接从文字生成波形。YourTTS 在 VITS 基础上加入了几项具体改动,专门针对零样本、多语言、多说话人生成进行调优。
基于 VITS,但做了实质性修改
其中两项设计选择尤为突出,它们是真正对既有工作的突破,而非渐进式调优。第一,YourTTS 使用原始文字而不是音素作为输入——早期系统通常依赖音素化,这对于拥有成熟、高质量字素转音素工具的语言效果很好,但对于缺少此类工具的语言则表现不均衡。直接处理原始文字绕开了这项依赖,尤其有助于把这套方法扩展到低资源语言。第二,专用说话人编码器会从每条训练语音中提取说话人嵌入,用于调节模型;它还会与 Speaker Consistency Loss 一同训练,后者通过余弦距离,将生成音频中提取的嵌入与原说话人的嵌入进行比较——直接优化模型,使其真正听起来像目标说话人,而不只是生成可理解的语音。
两种不同的能力
零样本多说话人 TTS 只使用从一段短样本计算出的参考嵌入,便能用模型从未训练过的声音生成新语音。零样本声音转换 是一项相关但确实不同的任务:给定一段已有录音,在保留原始内容的同时将其转换成目标说话人的声音——转换的是已经说出的内容,而不是生成新文字。YourTTS 在第一项任务上取得了当时最先进的结果,在第二项任务上取得了可与当时最先进水平媲美的结果,两者都在 VCTK 基准上测得。正因如此,它是一套真正的双用途系统,而不是在 TTS 模型上附带了一项声音转换功能。
对低资源语言的真正贡献
除了醒目的基准数字之外,YourTTS 还展示了一项格外实用的成果:训练时只使用目标语言中一位说话人的数据,也能在该语言上取得有潜力的零样本结果。已发表的训练设置直接体现了这一点——英语使用了 1,000 多位说话人,但法语只有 5 位,葡萄牙语更只有 1 位;语言批次平衡器会刻意为这些代表性不足的语言分配更大比例的训练批次,以作补偿。这样一套可用的多语言、多说话人系统能从如此失衡的数据集中形成,正是该模型提供的具体证据:对于那些不像英语那样拥有大规模、多说话人数据集的语言,这种方法也有望带来零样本 TTS 与声音转换。
为难处理的声音进行微调
如果某位说话人的声音或录音特征与训练数据中的任何内容都有显著差异,YourTTS 支持用不到一分钟的额外语音进行微调;据报告,即使面对这些更困难的情况,它也能取得当时最先进的声音相似度结果。这对于口音罕见、录音条件特殊,或基础模型零样本能力难以充分覆盖的源素材,具有实际意义。
YourTTS 入门
最直接的方式是使用 Coqui TTS 库的命令行界面,指定 YourTTS 模型、目标说话人的参考文件、用于声音转换的可选内容参考文件,以及语言代码,随后由该库完成模型加载与推理。由于原始研究仓库中的链接已经失效,如今通过 Coqui TTS(或其仍在积极维护的社区分支)获取模型,比通过原论文的 GitHub 页面更可靠,更有可能拿到可用的检查点。
获得更好效果的技巧
- 先明确自己到底要完成哪项任务。 零样本 TTS(新文字、新声音)与声音转换(已有音频、新声音)使用 YourTTS 的方式不同——在设置流程之前,先确定项目究竟需要哪一种;混淆两者的工作流,是一个常见的问题来源。
- 目标声音比较特殊时进行微调。 如果源说话人的口音或录音特征很独特,在典型训练数据中缺乏充分代表,就应为已有记录的不到一分钟微调步骤预留时间,而不要期待仅靠零样本能力就能完全解决。
- 使用社区维护的 Coqui TTS 分支,而不是原始仓库。 Coqui 于 2024 年关闭后,Edresson 原始 GitHub 页面上的链接已经失效;仍在积极维护的库分支,才是获取可用模型的更可靠来源。
- 克隆或转换真人声音时尊重其许可。 已有研究表明,YourTTS 的克隆能力可被用于欺骗基于声音的身份验证。因此,凡是涉及特定个人声音的真实部署,都应以获得对方明确许可为前提。
YourTTS 与相关 Coqui 及声音迁移模型对比
| YourTTS | XTTS-v2 | VoiceCraft | |
|---|---|---|---|
| 零样本多说话人 TTS | 是,发布时达到最先进水平 | 是 | 是 |
| 零样本声音转换 | 是,发布时可与最先进水平媲美 | 不是主要重点 | 否(重点在编辑) |
| 基础架构 | VITS + 说话人编码器 + Speaker Consistency Loss | GPT-2 风格自回归 + VQ-VAE | 采用因果掩码与延迟堆叠的自回归架构 |
| 多语言方法 | 该研究领域首创 | 17 种语言 | 以英语为主 |
| 文字输入 | 原始文字(不依赖音素化器) | 标准文字处理 | 标准文字处理 |
| 当前维护情况 | 通过 Coqui TTS 社区分支维护 | 通过 Coqui TTS 社区分支维护 | 由原作者积极维护 |
YourTTS 在这条技术脉络中的独特位置,是作为较早期的 Coqui 研究,证明了多语言零样本多说话人 TTS 是一条可行路线——后来的 XTTS 模型进一步发展了这项工作,而 YourTTS 自身仍因把声音转换视为一等能力而非附带功能而显得独特。
常见问题
YourTTS 的 TTS 模式与声音转换模式有什么区别?
TTS 模式从文字生成目标声音的新语音;声音转换则接收一段已有录音,在保留原始说话内容的同时,将其转换成目标说话人的声音——这是由同一个模型处理的两项相关但不同的任务。
YourTTS 现在还能使用吗?
可以,主要通过 Coqui TTS 库及其仍在积极维护的社区分支使用。Coqui AI 于 2024 年关闭并清空原托管服务器后,原始研究仓库中的模型下载链接已经失效。
YourTTS 克隆声音需要多少数据?
零样本克隆只需一段短参考样本,不需要微调;对于与训练数据差异显著的声音,已有记录表明,使用不到一分钟的额外语音进行微调,可以明显提升相似度。
谁开发了 YourTTS?
YourTTS 由 Edresson Casanova 与 Coqui 的合作者共同开发,并发表于 ICML 2022。
YourTTS 可以免费使用吗?
它可通过开源的 Coqui TTS 库获取;请检查你实际使用的具体软件包或分支的当前许可条款,因为 Coqui AI 关闭后出现的不同社区维护分支,许可细节可能并不相同。
为现有录音更换声音
如果你希望在保留说话内容与表达的同时更换现有录音的声音,可以使用 Echora 的变声器。上传语音录音,选择内置目标音色或已获授权的参考声音,即可在浏览器中生成变声后的音频。