CPU TTS基准测试与UTMOS MOS评分:Kokoro、Supertonic、Inflect-Nano和Kyutai的新Pocket TTS [P]
摘要
一项CPU TTS基准测试使用UTMOS MOS评分对比了Kokoro、Supertonic、Inflect-Nano和Kyutai的Pocket TTS,揭示了关于RTF缩放、UTMOS在小声码器上的局限性以及未记录的输出上限的有趣发现。Pocket TTS在CPU上提供了独特的零样本声音克隆能力。
分享一份带有客观MOS评分的CPU TTS基准测试结果,希望对评估小型TTS模型的人有用。之所以加入这项测试,是因为Kyutai的Pocket TTS在架构上与其他模型不同,而且我还没看到过它与这些模型的直接对比。
模型:
- Kokoro 82M(PyTorch和ONNX Runtime,受StyleTTS2启发)
- Supertonic 3(2步和5步流匹配,基于Vector Estimator主干)
- Inflect-Nano-v1(4.6M参数,FastSpeech风格,极小端)
- Pocket TTS(约100M参数,基于Kyutai的Mimi神经音频编解码器的流式语言模型)
设置:Intel Xeon 8272CL,4核,15.6GB RAM。环境层面禁用CUDA。ONNX会话固定为CPUExecutionProvider。六种配置,六种文本长度(12到1712字符),每个单元格五次计时重复(舍弃一次预热后)。总计180次运行。每个保存的WAV文件用UTMOS(utmos22_strong)进行客观MOS评分。
汇总结果:
| 配置 | 平均RTF | UTMOS |
|------|---------|-------|
| Supertonic 3 (2步) | 0.121 | 1.53 |
| Inflect-Nano-v1 | 0.145 | 3.48 |
| Supertonic 3 (5步) | 0.240 | 4.32 |
| Kokoro 82M (ONNX) | 0.641 | 4.44 |
| Kokoro 82M (PyTorch) | 0.665 | 4.46 |
| Pocket TTS | 0.714 | 4.10 |
我认为确实有趣的发现:
1. **流式语言模型架构产生平坦的RTF缩放。** Pocket TTS的RTF在整个文本长度范围内为0.69到0.76。由于它以恒定速率自回归地生成音频令牌,成本与输出长度成线性关系,没有固定的开销需要摊销。相比之下,Kokoro PyTorch从短输入的0.49上升到长输入的0.83;Supertonic则相反(从短输入的0.36下降到中等输入的0.20),因为每次调用的固定开销很高。如果你在为交互系统预算最坏情况下的延迟,平坦的曲线非常有价值。
2. **UTMOS在小型声码器上存在已知的失效模式。** Inflect-Nano-v1得分为3.48,看起来处于中等水平。但实际听起来嗡嗡作响且机械感强。这是一个已记录的问题:UTMOS会奖励HiFi-GAN输出的清晰度,即使它们缺乏韵律自然度。Pocket TTS得分相似(4.10),但听起来确实自然。关键不是说UTMOS有问题,而是对于小型模型,单一质量分数无法区分“清晰但机械”和“清晰且自然”。值得结合人类试听或特定于自然度的指标(如NISQA)一起评估。
3. **Inflect-Nano有一个未记录的约15秒输出上限。** 模型配置设置max_frames = 1400,这限制了合成时长约为14.93秒,无论输入文本长度如何。它在长文本/段落/扩展输入上的RTF和吞吐量被夸大了,因为它相比对比模型做了更少的工作。该模型的真正对比应仅限于短文本/中等长度。
4. **Kokoro的ONNX与PyTorch结果与之前运行相反。** 我在AMD EPYC上运行了该基准测试的早期版本,当时PyTorch整体上比ONNX快。在这台Xeon上,ONNX更快(0.641对比0.665)。相同的代码,不同的芯片。AMD与Intel在CPU推理上的内核优化差异确实足以翻转排名。如果有人能在ARM上复现,我会很感兴趣。
**零样本声音克隆** 是一项不适用于基准测试轴的能力:Pocket TTS可以在CPU上从大约5秒的参考音频中零样本克隆声音。该领域的其他模型都无法做到这一点。为了公平进行速度/质量对比,我将其固定为预设声音,因此克隆能力未体现在数字中。这是基于RTF和MOS比较的一个真正局限:它们无法捕捉只有某个模型才具备的能力。或许v2版本需要单独的声音相似性评估。
**局限性:**
- 仅单一硬件平台
- 仅英文
- UTMOS只是一种MOS预测器;NISQA或聆听小组会加强质量结论
- 未评估声音克隆质量
- 未测试批量推理
**声明:** 基准测试工具由AI工程代理(Neo)根据我指定的提示编写。我选择了方法、验证了输出并审查了音频。提及这一点是因为它与你如何权衡代码相关。所有代码、原始CSV(180行)、MOS CSV(36行)和WAV样本均放置在下方评论中提到的仓库中 👇
欢迎对协议提出反馈,特别是关于MOS方法以及如何进行合适的声音克隆评估。
相似文章
Kyutai 的 Pocket TTS 能在 CPU 上运行,仅需 5 秒音频即可克隆声音,采用 MIT 许可证发布。在英文 TTS 上与 Kokoro、Supertonic 和 Inflect-Nano 进行了基准测试。
Kyutai 发布了 Pocket TTS,这是一个文本转语音模型,只需 5 秒音频即可克隆声音,可在 CPU 上运行,并以 MIT 许可证发布。该模型在英文 TTS 上与 Kokoro、Supertonic 和 Inflect-Nano 进行了基准测试。
在CPU上对Kokoro 82M与Supertonic 3 TTS进行基准测试
详细的CPU基准测试,对比Kokoro 82M和Supertonic 3 TTS模型,测量不同文本长度下的RTF、延迟和吞吐量。结果显示Supertonic 3速度更快,但Kokoro生成的语音更自然,并针对不同使用场景给出了实用建议。
kyutai-labs/pocket-tts
Kyutai 发布了 Pocket TTS,这是一个轻量级的文本转语音模型,可高效在 CPU 上运行,拥有 1 亿参数、低延迟和语音克隆功能,支持多种语言。
哪个更好的本地移动TTS:Kokoro 还是 Supertonic?
比较两个本地运行的移动TTS模型——Kokoro和Supertonic,质疑它们在初始演示之外的生产质量。
使用Kokoro实现本地、CPU友好、高质量的文本转语音(TTS)
本文介绍Kokoro,一个轻量级82M参数的文本转语音模型,可在本地CPU上运行,提供跨多种语言的高质量语音合成,同时保护隐私。文章解释了如何通过Docker容器设置Kokoro,并使用兼容OpenAI的API进行简单集成。