Kokoro 最近频频出现 — 它登上了 Hacker News 热榜,也在开源文本转语音榜单名列前茅,创作者们还一直在问:一个能在普通 CPU 上运行的 8200 万参数模型,真的能替代付费的语音 API 吗?所以我们就安装它、在笔记本上跑起来,并生成了下面这些你可以直接播放的样本。这是一篇实测拆解:Kokoro 是什么、实际听感如何、两个让我们踩坑耗时的安装陷阱,以及什么时候用托管工具更划算。来源:github.com/hexgrad/kokoro(Apache-2.0)。

Kokoro 是什么?是谁做的?

Kokoro 是 hexgrad 发布的一款开源权重文本转语音模型,名为 Kokoro-82M。亮点就写在名字里:8200 万参数 — 以 2026 年的标准看非常小,小到甚至能在手机上跑 — 但它却能输出自然、富有表现力的旁白。它沿袭 StyleTTS 2 的技术路线,并以宽松的 Apache-2.0 许可证发布,因此确实可免费用于商业用途。

截至 2026-07-11,主仓库 hexgrad/kokoro 约有 7,900 个 GitHub stars。我们使用社区提供的 ONNX 运行时 thewh1teagle/kokoro-onnx(约 2,600 stars,MIT)来跑它;这是在 CPU 上运行、且无需安装 PyTorch 的最省事方式。

我们查看实际权重文件后统计到:内置共有 54 个音色,覆盖 9 组语言与口音 — 美式与英式英语、西班牙语、法语、印地语、意大利语、日语、巴西葡萄牙语,以及普通话。整体来看,美式英语音色明显最成熟。

我们真的跑了(Apple M3 Pro,仅 CPU)

不需要 GPU,不用云端 — 就是一台搭载 M3 Pro、18 GB 内存的 MacBook Pro。下面是完整、真实的实测过程。

安装与权重

Python 包几秒就能装好:pip install kokoro-onnx soundfile。但这里有第一个坑 — pip 包只包含代码,不包含模型。你必须手动从 kokoro-onnx 的 GitHub releases 页面下载两个文件:kokoro-v1.0.onnx(310 MB)和 voices-v1.0.bin(27 MB)。快速上手文档对这一步一笔带过,所以第一次运行会直接报缺文件错误,直到你把权重下回来。

espeak-ng 路径 bug(真正让我们耗时间的那个)

Kokoro 用 espeak-ng 把文本转换成音素。第一次合成时我们就遇到了这个:

Error processing file '/Users/runner/work/espeakng-loader/.../espeak-ng-data/phontab': No such file or directory

看到 /Users/runner/work/ 这个路径基本就能确定问题了:pip 的 espeakng-loader wheel 打包了一个在 CI 里编译的 libespeak-ng,而且写死了一个你机器上不存在的数据路径。更抓狂的是:设置 ESPEAK_DATA_PATH 环境变量也没用,因为 kokoro-onnx 根本不会读取它 — 它直接从打包的 loader 里拿数据路径。

我们验证有效的修复方法:安装系统版 espeak-ng,并通过 Kokoro 的 EspeakConfig 明确指定路径:

brew install espeak-ng   # macOS; apt install espeak-ng on Linux

from kokoro_onnx import Kokoro, EspeakConfig
cfg = EspeakConfig(
    lib_path="/opt/homebrew/lib/libespeak-ng.dylib",
    data_path="/opt/homebrew/share/espeak-ng-data",
)
k = Kokoro("kokoro-v1.0.onnx", "voices-v1.0.bin", espeak_config=cfg)

这样之后,生成就能正常工作了。如果你也曾被这个 phontab: No such file 报错折磨过,这就是解法。

速度(实测,热启动)

只用 CPU 的情况下,模型加载大约需要 1.7 秒,合成速度也能稳定快于实时。一段 22 秒的旁白在 3.5 秒 内渲染完成 — 实时系数约 0.16×,差不多是播放速度的 6 倍。单句短文本通常 1 到 2 秒就返回。对于这么小的模型、在笔记本上跑出这样的速度,确实已经能用于生产场景。下面是这段旁白渲染出来的真实波形图:

我们在 M3 Pro CPU 上使用 Kokoro 生成的 22 秒旁白段落的波形图

我们生成的样本(未剪辑)

下面每个片段都是我们在上述 M3 Pro CPU 上用 Kokoro 生成的 — 直接模型原始输出,没有清理、没有后期处理。你可以自己播放,亲自判断音质。

af_sarah — 美式英语
am_michael — 美式英语
bf_emma — 英式英语
更长的旁白(af_sarah,22 秒)— 就是我们上面用于测速的那段

由 VisionStory 通过 kokoro-onnx 调用 Kokoro-82M 生成,2026-07-11。注意一个关键信号:这是一条很干净的音轨 — 但它只有声音。没有脸、没有口型、没有屏幕上的主持人。这正是下一节要讲的差距所在。

真实结论:优势与硬伤

真正让我们惊艳的点:

  • 单位体积的质量很夸张。 只有 8200 万参数,美式英语音色就已经很自然、很有情绪 — 接近付费 TTS 的水平,多数听众在短片段里未必听得出来。
  • 它确实能在 CPU 上跑,而且很快。 在无 GPU 的笔记本上做到 6 倍实时,是它最核心的卖点,而且实测站得住。
  • 真的免费,也适合商用。 Apache-2.0,没有按字符计费。做大批量配音时,这套经济账很难不香。

它的短板 — 而且都是真问题:

  • 不支持语音克隆。 只有 54 个固定预设音色。你无法克隆自己的声音或客户的声音 — 如果这是你的需求,Kokoro 走不通。
  • 英语效果依赖 espeak-ng:不仅会遇到上面的打包 bug,还可能偶尔把人名、品牌名或缩写读错。
  • 长文本需要手动分段。 每次调用有音素长度上限,所以长脚本需要你自己拆分并拼接音频。
  • 非英语音色表现参差不齐 — 变动明显比主打的美式英语更大。
  • 输出只有裸 WAV。 没有逐词时间戳、没有 viseme(口型序列)— 开箱即用无法驱动口型同步。
  • 它只有声音。 没有脸、没有视频。要做会说话的主持人,你必须把 Kokoro 和另一个口型同步或虚拟人系统配合使用,并自行处理对齐与时序。

自托管 Kokoro vs 托管工具:该选哪个?

Kokoro 和托管的虚拟人工具解决的是问题的不同半边。Kokoro 给你的是声音;而像 VisionStory 这样的工具给你的是会说话的主持人 — 一次输出就包含声音、脸部与口型同步。下面是最真实的取舍对比。

 Kokoro(自托管)VisionStory(托管)
成本免费(用你自己的硬件)订阅 / 积分
部署pip + 330 MB 权重 + 修 espeak-ng无需设置 — 浏览器直接运行
产出内容仅音轨(WAV)会说话的虚拟人视频(声音 + 人脸 + 口型同步)
语音克隆不支持 — 54 个预设支持 — 可克隆你的声音
单段生成速度CPU 上约 ~0.16× 实时(几秒级)几秒级,托管生成 — 本地无需算力
商用支持(Apache-2.0)支持(视方案而定)
维护你需要自己修 espeak、依赖、分段拼接无需维护
最适合你只需要免费的配音音轨,并且会写代码你想快速拿到成片的会说话视频

选 Kokoro:如果你只需要免费的配音、你用 Python 很顺手,并且你愿意把人脸与口型同步单独处理(或者你根本不需要脸)。选托管工具:如果你需要把声音绑定到一个能口型同步的主持人身上,或你需要克隆某个指定人物的声音 — 这两点 Kokoro 都做不到。

Kokoro 给我们的启发

真正的收获是:声音正在快速变成“通货”。现在一个 82 MB 的模型,在笔记本上就能免费生成足够用于真实工作的配音。如果你的产品唯一卖点是“我们做文本转语音”,那条护城河已经没了。

更难、也依然没有被彻底解决的部分,是声音之后的所有东西:把一条音轨变成可信的会说话人脸 — 精准口型、表情、头部动作,以及整体时序都能对得上。这正是我们专注的那一层。所以我们的结论不是“别用 Kokoro”— 它确实是一个很强的语音引擎。真正的问题在于:只有声音,只能算半个视频。如果你想要另外一半,VisionStory 可以把一张照片和一段脚本一步生成带口型同步的会说话主持人;如果你还需要匹配某个指定音色,也可以克隆

常见问题

  • 可以。Kokoro 以 Apache-2.0 许可证发布,允许商业用途,并且不按字符计费。你只需要为自己的算力买单,可以只是普通 CPU。