快速设备端语音克隆 (9分钟阅读)

TLDR AI 模型

摘要

Sopro V2 是一个开源、快速、设备端的文本转语音模型,具有语音克隆功能,专门针对欧洲葡萄牙语及其他语言,以实现低延迟和隐私通信。

Halo Neuro 介绍了 Sopro V2 并开源了 Sopro V2 Turbo,这是一个拥有120M参数的多语言语音克隆模型,可以在笔记本电脑CPU和浏览器中流式处理。
查看原文
查看缓存全文

缓存时间: 2026/08/28 15:56

# Sopro V2:私密、快速、端侧的文本转语音模型 来源:https://research.haloneuro.ai/posts/sopro-v2 ## Sopro V2 Turbo 今天,我们推出一个全新的文本转语音模型家族——Sopro V2,并开源其最快速版本:sopro-v2-turbo (https://huggingface.co/samuel-vitorino/sopro-v2-turbo)。Sopro V2 Turbo 是一个拥有1.2亿参数的语音克隆文本转语音模型,支持流式传输,可在笔记本电脑CPU或浏览器中流畅运行,并且支持多语言:英语、德语、法语,以及对我们而言更重要的、据我们所知首个原生支持**欧洲**葡萄牙语的开源TTS模型。 它也确实非常快。在Apple M3 CPU上,sopro-v2-turbo离线生成的实时率(RTF,生成时间除以音频时长)为0.24,流式传输时首字音频时间约为300毫秒,RTF为0.21。在单块H100上,其离线RTF可达0.07,流式传输时首字音频时间约为200毫秒。所有数据均为单流PyTorch使用默认设置得出,未使用批处理。 Sopro旨在尽可能简单易用。一条命令即可启动本地演示: ``` uvx --from sopro soprotts serve `` 还有一个完全在浏览器中运行的ONNX演示 (https://samuel-vitorino.github.io/sopro/),无需任何服务器;注意在移动设备上,模型经过了量化,因此效果可能略逊于上述演示,且低内存设备可能会崩溃。 更多详细信息,请参阅代码仓库 (https://github.com/samuel-vitorino/sopro) 的README。 > 我们希望人们的交流能像过去一样快捷。 ## 一点背景故事 Sopro 始于2025年12月的一个个人项目,在我联合创办的初创公司——Halo NeuroAI (https://haloneuro.ai/) 的两周假期中构建。Halo 是一家软件和硬件公司,其主要目标是为因ALS或中风后失语症等疾病而失声的人们重新赋予声音。我们提供(并仍在提供)多种语音克隆服务:OpenAI、Cartesia、ElevenLabs。反复出现的问题是,欧洲葡萄牙语在任何这些服务上听起来都不对,主要是因为巴西葡萄牙语数据的偏差,而我们为补偿此问题构建的变通方案显著增加了延迟,尤其是在我们当时质量最佳的服务提供商OpenAI上,生成一个句子需要4到6秒。对我们来说,这是无法接受的:我们希望人们的交流能像过去一样快捷。ElevenLabs 自那时起已有所改进,Cartesia 是三者中最快的,因为流式传输显著减少了首字音频时间,但其欧洲葡萄牙语发音仍不达标。这甚至还未谈及隐私或价格问题。 因此,我渴望在业余时间探索现有模型并训练自己的模型。预算限制或多或少迫使我采用了非常小的模型,现在回想起来,这反而是件好事:它让我意识到存在一个市场空白,即对良好、本地化、快速的TTS的需求,而这个空白自那时起正逐渐被填补。Sopro V1 引发了一些关注,并登上了Hacker News的第二名,一些有影响力的人士也与我们取得了联系。但V1确实存在问题:它不稳定,克隆质量在不同声音之间不一致,并且并非基于严格的消融实验和评估构建;毕竟,它只花了250美元训练。它还只支持英语,因此甚至没有解决最初引发这一切的问题。然而,它足以吸引关注并最终获得计算资源。我们目前仍未获得融资,因此无法自行购买计算资源。我们的合作伙伴FCCN-FCT (https://www.fccn.pt/) 及时伸出援手,首先是在葡萄牙的超级计算机Deucalion (https://macc.fccn.pt/) 上,后来是在MareNostrum 5 (https://www.bsc.es/marenostrum/marenostrum-5) 上。我们非常感谢他们:他们使得上述研究和成果成为可能。 ## 模型 Sopro V2 是从我们随时间进行的消融实验中有机发展而来的。起点是 Sopro V1,其架构当时接近 Sesame 的 CSM (https://www.sesame.com/research/crossing_the_uncanny_valley_of_voice):使用 Mimi (https://arxiv.org/abs/2410.00037) 作为编解码器,一个自回归卷积模型预测语义码(Mimi的码本0),以及一个非自回归头分阶段预测剩余的声学码本,并带有对参考码的交叉注意力和FiLM注入的说话人特征。在 V2 的开发过程中,这些组件中的每一个都被替换或改进了。 Sopro V2 推理架构:文本和参考音频输入一个自回归 Transformer 生成语义标记,该标记用于条件化一个基于流匹配的声学头和一个因果声码器。Sopro V2 架构概览 ### 文本分词器 我们替换的第一个组件是 Llama 文本分词器及其128k大小的词汇表。在384维的嵌入表中,128k个条目约有4900万参数,因此 Sopro V1 实际上是一个约8500万参数的模型,而非标题数字。对于 V2,我们训练了一个8,192个标记的 SentencePiece (https://arxiv.org/abs/1808.06226) unigram 分词器:我们在不付出巨大词汇表代价的情况下保持了一定的压缩率。 ### 自回归模型 第二个改变是用 Transformer 解码器替换了卷积基础模型。卷积模型过于短视,导致重复,在我们处理的句子长度下,注意力机制在有KV缓存时代价低廉。我们保持了其简单性:一个带有 RoPE、RMSNorm 和分组查询注意力的解码器。 与 CosyVoice 风格的模型不同,我们不需要参考音频的转录:提供给语义语言模型的提示只是参考的语义标记加上一些风格标记。这消除了推理时对ASR的依赖,这在边缘计算场景中很重要,且发音或相似度上没有可听辨的差异。 ### 基于流匹配的声学头 第三个改变是声学头,我们探索了几个方向。如果你尝试过 Sopro V1,你可能会注意到语音通常很干净,但未能传达使声音听起来像其本身的东西:麦克风特性、环境音等。其中一部分原因(并非全部:最近的模型如 Qwen3-TTS (https://arxiv.org/abs/2601.15621) 表明离散头也能工作)来自声学码本的离散性质。最近的工作一直在转向连续声学头(F5-TTS (https://arxiv.org/abs/2410.06885)、CosyVoice (https://arxiv.org/abs/2412.10117)、PocketTTS (https://kyutai.org/blog/2026-01-13-pocket-tts)),因此我们也这样做了。我们首先尝试保留 Mimi 的语义分支,并将声学分支换为连续的 VAE,类似于 CALM (https://arxiv.org/abs/2509.06926) 和 PocketTTS。它部分有效,但即使使用 KL 正则化,也很难保持潜在空间足够规整以进行下游建模,同样难以保证两个分支之间清晰的语义/声学分离。最终,我们采用了 F5/CosyVoice 的方法,使用梅尔频谱图作为声学前端,这本身就具有良好的结构性。与这些模型不同的是,我们添加了一个条件掩码,使模型知道哪个区域是提示,并对流匹配 (https://arxiv.org/abs/2210.02747) 的梅尔谱进行了均值/方差归一化。 ### 语义语音分词器 最后一个改变是语音分词器本身。我们最初保留了 Mimi 的编码器及其经过 WavLM (https://arxiv.org/abs/2110.13900) 蒸馏的语义分支,但一个基于它训练的中间模型不稳定且可懂度低,在 LibriSpeech 测试集干净部分上 WER 约为7%,在 Seed-TTS 测试集英语部分上为14%。WavLM 特征天然地包含语义之外的信息,并且不能保证与文本对齐。因此,我们从 Whisper (https://arxiv.org/abs/2212.04356) large-v3 编码器开始进行热启动,并插入一个 FSQ (https://arxiv.org/abs/2309.15505) 瓶颈,为英语、法语、德语和葡萄牙语训练了一个 ASR 对齐的分词器。这极大地提高了可懂度。然后我们将该分词器蒸馏成一个等效的2000万参数的版本。它以23.4375 Hz 运行,而不是 Mimi 的12.5 Hz,因此一个标记正好对应我们93.75 Hz 声码器前端的4个梅尔帧,并且需要的上采样更少。 ### 声码器 我们为离线路径微调了一个稍深的 Vocos (https://arxiv.org/abs/2306.00814) 以适应我们的数据,并进一步将其微调为一个因果变体,具有3帧的前瞻,用于流式传输。 ## 训练 我们在开源和公开可用的数据混合上训练了 Sopro V2,其中包括 Emilia YODAS (https://arxiv.org/abs/2407.05361) 和 FalAR (https://arxiv.org/abs/2605.27062),主要关注英语和欧洲葡萄牙语,同时保持对法语和德语的支持。训练分为四个阶段:预训练、偏好微调、蒸馏和回流。 我们首先预训练了一个0.5B的基础模型,使用了CFG感知的dropout;在推理时,基础模型使用CFG 3.0和32个声学求解器步骤运行。它在4块H100上以有效批量72训练了40万步。为了支持离线和流式生成,一半的样本使用完整的声学注意力上下文进行训练,另一半样本则从32、64、128和256帧中均匀采样未来块大小。这在推理时提供了多功能性:当有GPU可用时进行批量离线生成,或使用较小的块进行流式传输以降低首字音频时间(但会增加实时率),或使用较大的块进行反向权衡。训练片段被限制在30秒以内,但生成长度没有限制:较长的输入被分割成片段,每个片段使用前一个生成的输出作为语义语言模型的上下文进行生成,因此模型可以无限期地说下去。 然后我们尝试了使用WER、相似度和时长奖励的GRPO,但发现它使模型不稳定。在相同类型的偏好对上使用 DPO (https://arxiv.org/abs/2305.18290) 效果好得多:它改善了失败尾部,同时保持了基础模型的稳定性。我们在教师模型上进行了三轮这样的训练。 接下来,我们将0.5B的教师模型蒸馏成一个120M的学生模型,混合了教师看到的真实数据和精心挑选的教师模型生成数据。学生模型最终比教师模型更稳定,仅在相似度上略有落后。 最后阶段通过回流 (https://arxiv.org/abs/2209.03003) 的自蒸馏将求解器步骤从32减少到2,使声学头加速了16倍,达到了与32步模型几乎相当的水平,且在质量、相似度或可懂度上没有可测量的损失。该模型即为 sopro-v2-turbo。 Sopro V2 训练流程:0.5B基础模型的预训练,三轮DPO,蒸馏到120M,以及回流到2个求解器步骤。四个训练阶段 ## 评估 我们在三个基准测试上进行评估:Seed-TTS-eval (https://github.com/BytedanceSpeech/seed-tts-eval) 测试集英语部分、遵循F5-TTS协议的 LibriSpeech 测试集干净部分,以及 MiniMax 多语言测试集 (https://huggingface.co/datasets/MiniMaxAI/TTS-Multilingual-Test-Set)。全文:WER 使用 Whisper large-v3 计算,相似度使用 WavLM 说话人验证模型计算,遵循每个基准的官方测试框架。基线数字来自各表格中引用的论文,粗体标记了每列中的最佳值(参考行除外)。 ### Seed-TTS 测试集英语部分 在 Seed-TTS 测试集英语部分,Sopro V2 Turbo 达到了SOTA级别的可懂度,并在相似度上与大3-14倍、有些运行16倍求解器步骤的模型相比具有竞争力。通过更多的后训练我们可能还能进一步提升,但如表所示,我们已经低于真实WER,并接近重合成真实音频的相似度;超过这一点,我们主要是在迎合古德哈特定律(Goodhart's law)。我们使用官方评估框架,该框架仅应用轻量级文本规范化:如果Whisper将"fifty"转录为"50",则WER会受到严厉惩罚,而优化掉这一点意味着针对Whisper而非人类优化模型的发音。 Seed-TTS-eval 测试集英语部分基线来自其作者报告(CosyVoice 2/3、Spark-TTS、VibeVoice、F5-TTS论文;Seed-TTS和MaskGCT引用自CosyVoice 2和F5-TTS论文;Qwen3-TTS来自其技术报告,该报告仅在此基准上报告WER)。真实音频行遵循CosyVoice 2论文;重合成行使用我们的声码器在官方框架上测量。 Seed-TTS 测试集英语部分 · 参考音频 vs. Sopro V2 Turbo 英语 “It is also used as an initial ingredient in homeopathic remedies.” 参考音频 Sopro 英语 “As such, symbols and customs of Mexico grew up in New Mexico as well.” 参考音频 Sopro 英语 “Changes to diet and nutritional supplements may help some patients.” 参考音频 Sopro ### LibriSpeech 测试集干净部分 (F5协议) 我们使用F5-TTS跨句协议(来自LibriSpeech-PC测试集干净部分的1,127个样本)。基线行来自F5-TTS论文。 LibriSpeech-PC 测试集干净部分 · F5-TTS协议基线来自F5-TTS论文,表1(E2-TTS是F5作者的复现);PocketTTS来自其博客文章 (https://kyutai.org/blog/2026-01-13-pocket-tts) 和 CALM (https://arxiv.org/abs/2509.06926) 论文,后者未报告可比的WavLM相似度。真实音频行如F5-TTS论文所报告;重合成行使用我们的声码器测量。 ### MiniMax 多语言评估 在 MiniMax-Speech (https://arxiv.org/abs/2505.07916) 多语言测试集上,Sopro V2 Turbo 在英语、法语、德语和葡萄牙语方面与闭源系统相比表现良好。在葡萄牙语上,对比对我们并不完全公平:基准葡萄牙语部分的参考说话人是巴西人,而Sopro的葡萄牙语目标是欧洲变体。欧洲发音本身也会推高WER:非重读元音会被弱化,因此像"telefone"、"esperança"或"desenvolvimento"这样的词,其发音相比巴西读法会显得短促,即使欧洲发音正确,ASR也更容易错误转录。 MiniMax 多语言测试集 · 每种语言的WER ↓ / SIM ↑每个单元格为WER / SIM。MiniMax-Speech和ElevenLabs行来自MiniMax-Speech论文(表2,Whisper large-v3 WER)。 MiniMax 多语言 · 参考音频 vs. Sopro V2 Turbo 英语 “I guess it comes down a simple choice. Get busy living or get busy dying.” 参考音频 Sopro 英语 “As the spacecraft broke through the atmosphere of the alien planet, the crew held their breath, unsure of what new life forms they might encounter.” 参考音频 Sopro 葡萄牙语 “Neste episódio, nossos ouvintes conhecerão os segredos da fabricação artesanal do queijo da Serra da Estrela, considerado um dos melhores queijos de Portugal.” 参考音频 Sopro 葡萄牙语 “Os buracos negros são regiões do espaço onde a gravidade é tão intensa que nem mesmo a luz consegue escapar, o que os torna invisíveis aos telescópios convencionais.” 参考音频 Sopro 葡萄牙语 “Não posso adiar este abraço que é uma arma de dois gumes, amor e ódio.” 参考音频 Sopro 德语 “Der Wetterdienst hat eine Warnung vor starken Stürmen herausgegeben, die in den nächsten drei Tagen die Küstengebiete treffen werden.” 参考音频 Sopro 德语 “Die Stadtverwaltung hat die Einführung eines neuen öffentlichen Verkehrssystems angekündigt.” 参考音频 Sopro 法语 “Les américains ont bien insisté là-dessus, il faut être nickel à cheval.” 参考音频 Sopro 法语 “Un séisme de magnitude 6,2 a frappé la côte nord du pays ce matin, mais aucune victime ni dégât majeur n'a été signalé pour le moment.” 参考音频 Sopro ### 欧洲葡萄牙语 欧洲葡萄牙语是 Sopro 存在的理由,因此这里有一些来自我们内部欧洲葡萄牙语测试集的声音,这些声音由欧洲葡萄牙语 Common Voice 说话人构建。 欧洲葡萄牙语 · 参考音频 vs. Sopro V2 Turbo 葡萄牙语(欧洲) “Você quer jogar um jogo quinta-feira?” 参考音频 Sopro 葡萄牙语(欧洲) “Oceano Índico, Pacífico e Atlântico” 参考音频 Sopro 葡萄牙语(欧洲) “agroquímicos, agroplásticos, películas, estufas, mudas, polímeros, polietileno, linear, densidade” 参考音频 Sopro ## 局限性

相似文章

OpenVoice:多功能即时语音克隆

Papers with Code Trending

OpenVoice是一种多功能语音克隆方法,它能够使用单个音频片段实现灵活的语音风格控制和高效率的零样本跨语言克隆。

seshat-tts:一款支持语音克隆的本地实时游戏旁白工具

Reddit r/ArtificialInteligence

seshat-tts 是一款开源工具,可通过 OCR 或大语言模型提取文本,并使用 pocket-tts 进行本地合成,实现带语音克隆的实时游戏旁白。语音克隆在 RTX 2070 Super 上约需 10 秒,缓存后可在 CPU 上运行。