在CPU上对Kokoro 82M与Supertonic 3 TTS进行基准测试
摘要
详细的CPU基准测试,对比Kokoro 82M和Supertonic 3 TTS模型,测量不同文本长度下的RTF、延迟和吞吐量。结果显示Supertonic 3速度更快,但Kokoro生成的语音更自然,并针对不同使用场景给出了实用建议。
想要真正对比一下这两款能在CPU上顺畅运行的TTS模型。找不到带有具体数据的评测,所以我自己跑了一个。发出来是因为结果出乎我的意料。先给还没见过Supertonic 3的朋友快速介绍一下:这是一种流匹配TTS,你可以减少推理步数来换取速度,默认是5步,“速度模式”是2步。Kokoro 82M大家应该都知道了。
**硬件:** AMD EPYC 7763,4个vCPU,16GB内存,无GPU。大致相当于Ryzen 5600或像样的N100盒子。
**设置:** 6种文本长度,从12个字符到1712个字符,每种跑5次,共120次计时运行。显式禁用了CUDA。丢弃了预热运行。
**平均RTF(越低越快):**
* Supertonic 3,2步:0.165(6.1倍实时)
* Supertonic 3,5步:0.313(3.2倍实时)
* Kokoro 82M PyTorch:0.469(2.1倍实时)
* Kokoro 82M ONNX:0.509(2.0倍实时)
**中等文本(196个字符,约13秒音频)的实际延迟:**
* Supertonic 2步:1.82秒
* Supertonic 5步:3.67秒
* Kokoro PyTorch:5.62秒
* Kokoro ONNX:5.51秒
长文本和超长文本的详细信息见下方GitHub仓库。
**稳定状态下每秒处理的字符数(吞吐量):**
Supertonic 2步大约111,Supertonic 5步大约55,Kokoro无论后端如何,都在33到36之间徘徊。
**质量方面,这实际上颠倒了排名:**
Supertonic在2步时很快,但音频粗糙。单词含糊不清,韵律机械,不是我会发货的水平。在5步时则干净很多,确实可用。Kokoro无论哪个后端,仍然是我在这个规模级别测试过的模型中最自然的语音。它能在TTS Arena排行榜上排名第一是有原因的。
所以实际的排序更像是:
* 想要声音像人类 → Kokoro,接受较慢的速度
* 想要为助手/聊天机器人提供低延迟 → Supertonic 5步是甜点位置
* Supertonic 2步 → 仅限演示和原型制作
**两件让我惊讶的事:**
1. 在这块CPU上,Kokoro的ONNX版本比PyTorch版本*更慢*。我原本以为会相反。ONNX在长文本上有优势,但在短文本上因为固定开销较高而吃亏。值得在Intel硬件上重新测试,看看是否是AMD的问题。
2. Supertonic每次调用的固定开销比Kokoro大得多。短文本的RTF是0.30,中等文本降到0.13。而Kokoro在各种长度下表现更平稳。所以如果你的工作负载是大量短语句,两者之间的差距会缩小。
详细说明和包含全部24个音频样本的GitHub仓库如下,基准测试也在下面的评论中提到👇
这两个TTS模型的评估使用了**Neo AI Engineer**,它构建了评估框架,处理了模型运行时问题并汇总了结果。我手动审查了所有内容。
如果有人手头有N100或树莓派5并运行此测试,我很想看到数据。这才是我真正想要部署的硬件层级。
相似文章
哪个更好的本地移动TTS:Kokoro 还是 Supertonic?
比较两个本地运行的移动TTS模型——Kokoro和Supertonic,质疑它们在初始演示之外的生产质量。
Supertone/supertonic-3
Supertonic 3 是一个轻量级的开权重文本转语音模型,专为快速设备端推理而设计,支持的语言扩展至 31 种,并提升了稳定性及表情标签支持。
jaaari/kokoro-82m
Kokoro-82M 是一款高效、高质量的文本转语音模型,在 Replicate 上可用,支持多种语言和声音,推理成本低。
supertone-inc/supertonic
Supertonic 是一个开源的端内文本转语音(TTS)系统,专为本地推理设计,具有极低的开销。现已发布第 3 版,支持 31 种语言,并提升了准确性。
@FeitengLi: 99M 参数的 TTS 跑在 CPU 上,比 2B 大模型跑在 A100 上还快。 Supertone 新开源的 supertonic-3 ONNX Runtime,完全本地,浏览器能跑,手机能跑,树莓派也能跑。
Supertone released Supertonic 3, an open-source TTS model with 99M parameters that runs faster on CPU than a 2B model on A100, supporting 31 languages and ONNX Runtime for fully local inference.