Skip to content

필사 모드: tts-bench:当质量主观时,如何比较本地 TTS

한국어
0%
정확도 0%
💡 왼쪽 원문을 읽으면서 오른쪽에 따라 써보세요. Tab 키로 힌트를 받을 수 있습니다.

引言 — TTS 为什么难以比较

本周在 GeekNews 上引发讨论的 tts-bench,是开发者 5uck1ess 打造的本地基准测试。它让你在手头的硬件上直接比较多个 TTS(text-to-speech)模型。在聊工具之前,先把问题说清楚。语音合成格外难做基准测试,因为"好"并不是单一维度。声音再优美,也可能把发音含糊掉、把单词漏掉;即便字字听得清,也可能平淡而机械;即便两者都不错,用在实时智能体上又可能太慢。自然度、清晰度、速度朝着不同方向拉扯,而前两者是主观的。它没有像语音识别的 WER 那样一锤定音的正确数值。作者也说得很明白:"质量是主观的,真正的标准是你的耳朵。"这个基准之所以值得一读,正是因为它没有掩盖这一事实,反而是建立在它之上的。

把这个项目的轮廓汇总到一起,是这样的。

  • 3 台设备上 55 个模型(Windows + RTX 5090、Linux + RTX 3090、Apple M4)
  • 预定义音色引擎 16 个 + 零样本克隆模型 39 个
  • 在 CPU、CUDA、Apple Silicon(MPS)上运行
  • 基准代码采用 MIT,各模型遵循各自的许可证

tts-bench 实际测量什么

这个基准由三个视角构成。

速度(Speed) 是客观且可以公开的部分。它在 CPU、CUDA、Apple Silicon 上测量冷启动/热启动的 TTFA(到第一段音频的时间)、RTF(实时系数,越高表示比实时越快)和内存。看 2026 年 6 月的领先者就能有个感觉。

  • CPU(Ryzen 9 9950X3D): Piper — 热启动 TTFA 107ms,实时 59 倍
  • CUDA(RTX 5090): Kokoro — 热启动 TTFA 67ms,104 倍
  • Apple M4(16GB): Piper — 热启动 TTFA 208ms,32 倍

这些是可复现的测量值,也是这个基准唯一正面排名的领域。

试听(Listen) 是一个画廊。它把每一个模型、在每一条提示语上,以默认音色和音色克隆(cloning)两种方式播放出来,每一个都配有内联的 <audio> 播放器,可以用耳朵判断。样本与设备无关——只在最高品质的设备上生成一次——因为音色和瑕疵不应该取决于它是在哪台机器上渲染的。正如 README 所说,质量和瑕疵 5 秒就能显现,这是表格无法呈现的。

评分(Scores) 是每个模型客观质量的代理指标。自然度用 UTMOS,清晰度用 WER,克隆保真度用 SIM,针对基准提示语,用 seed-tts-eval 方式的 ASR 和说话人验证来计算。模型清单从轻量的预定义音色引擎(82M 的 Kokoro、约 15M 的 Piper),一直覆盖到零样本克隆一系(F5-TTS、Coqui XTTS-v2、ChatterBox 等众多模型),两组通过默认/克隆开关切换查看。

诚实之处 — 数字能说什么、不能说什么

tts-bench 最有意思的地方,是它不主张什么。它没有"最好听"的单一排名。作者曾把一个叫 NAQ 的客观质量分数做成原型,后来又撤掉了——用他的话说,"它没能足够好地跟上主观排名,所以无法公开",因此正在另行重新设计。这个基准只给速度排名,质量则交给试听视角,以及通向实时人类偏好 Elo 排行榜的盲测 A/B 投票竞技场。UTMOS、WER、SIM 被表述为一种"客观的兜底",而不是判决。

这份谨慎为什么合理,在克隆结果里能看出来。在针对 32 个克隆模型中的 28 个、共 397 次盲测投票里,声音相似度排名前三的模型是这样的。

  • OmniVoice — 声音相似度第 1(24-1-3),不过"可能把单词含糊掉或漏掉"
  • Echo-TTS — 以微弱差距并列第一(21-1-6),干净的 44.1kHz
  • IndexTTS-2 — 第 3(16-2-5),保持语调

陷阱就在第一行。以音色为中心的 A/B 投票不会惩罚含糊掉的单词。也就是说,听起来最像参考声音的模型,在"是否说对了单词"这一点上反而可能落败,而这正是客观的 WER 分数想要捕捉的缝隙。只看一个数字,就会选错模型。

还有一个需要记住的注意点。为了公平,基准会给所有模型喂同样朴素的提示语。因此像情感标签、声音描述、风格旋钮这类表现性功能,不会体现在任何分数里。如果你的用途恰恰依赖这些功能,那么排行榜对最重要的东西保持了沉默。

在本地运行,按自己的用途评测

安装需要 uv 和 Python 3.11,大约花 10~15 分钟。整套下来很重。

  • 每个模型的虚拟环境约 39GB(在仓库内)
  • 模型权重约 125GB(Hugging Face 缓存,不在仓库内)
  • 合计约 165GB

但并不是要你把 55 个全装上。只传你想要的就行。./install.sh kokoro piper miso(Windows 用 .ps1),而 bench.py 只运行有虚拟环境的模型。想快速找找感觉可以用 python speak.py kokoro,做一次性的 A/B 比较有 python compare.py "句子"

这种按需安装的方式正是要点。之所以要在本地运行、而不是迷信全局排行榜,是因为 TTS 质量会随用途而变。它取决于你的提示语、目标音色、语言、延迟预算和硬件。在干净的英文句子上拿到 Elo 第一的模型,遇到你所在领域的专业术语或特定的克隆参考声音时,可能会崩掉。这等于把大家熟悉的"用你自己的数据来评测"这条原则,落实成了一个工具。基准把测试框架递到你手里,然后诚实地说:自己去听。

结语

tts-bench 真正的可贵之处,在于它对"客观性到哪里为止"的克制。速度,它测量并排名;质量,它展示却把判断交给你;克隆偏好,它用盲测投票汇总,却把它命名为偏好而非清晰度。这是一种为主观之物做基准测试的诚实做法。

实用的教训又小又具体。别只看一个分数就定胜负。只装你真正在考虑的两三个模型,在你要部署的那台机器上,喂进你自己的文本和参考声音,用耳朵来决定。把 WER 和 RTF 当作兜底,而不是答案。

参考资料

현재 단락 (1/33)

本周在 GeekNews 上引发讨论的 `tts-bench`,是开发者 5uck1ess 打造的本地基准测试。它让你在手头的硬件上直接比较多个 TTS(text-to-speech)模型。在聊工具之...

작성 글자: 0원문 글자: 2,698작성 단락: 0/33