使用 Kokoro 实现本地 CPU 友好型 TTS

Kokoro 可以在 CPU 上实现高质量的本地语音合成

Kokoro 是一个仅有 8200 万参数的紧凑型文本转语音 (TTS) 模型,能够生成英语、普通话和印地语的逼真语音。其核心价值在于能够在 CPU 上本地交付高保真音频,无需昂贵的 NVIDIA GPU,并通过将所有处理保留在本地机器上来确保数据隐私。

不同 CPU 架构下的性能基准测试

Kokoro 在包括旧系统在内的广泛硬件上都表现出极高的效率。一段短测试段落(约 30 个单词)的合成时间因 CPU 而异:

  • AMD Ryzen 7 8745HS: 1.5 秒
  • Apple M2 Pro: 4.5 秒
  • Intel Core i7-4770K: 4.7 秒

一款 12 年前的 CPU (i7-4770K) 能够在不到五秒内生成逼真的语音,这一事实突显了该模型对于硬件资源有限的用户而言的易用性。

部署与 API 集成

通过 Kokoro-FastAPI 快速设置

部署 Kokoro 最简单的方法是使用 Kokoro-FastAPI 容器镜像,它将语音模型打包进一个约 5 GB 的镜像中。可以使用 Docker 或 Podman 通过以下命令启动:

podman run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu

运行后,容器会在 localhost:8880/web 提供一个 Web UI,以便立即进行测试。

OpenAI API 兼容性

Kokoro-FastAPI 提供了一个与 OpenAI 语音 API 兼容的 TTS 接口,允许开发者将现有的基于 OpenAI 的 TTS 实现替换为本地 Kokoro 实例。通过将 TTS_API_BASE_URL 设置为本地服务器(例如 http://127.0.0.1:8880/v1)并使用 TTS_VOICE 环境变量指定语音,即可实现集成。该模型提供大约 50 种不同的语音,主要针对英语进行了优化。

实际应用与社区见解

社区成员已将 Kokoro 集成到各种生产和爱好者工作流中,揭显了小参数规模带来的优势与局限性:

  • 无障碍功能与发音: 用户已成功将 Kokoro 用于无障碍产品,并指出它支持手动 IPA (International Phonetic Alphabet) 发音指南以解决同形异义词错误。
  • 边缘侧部署: 该模型已被移植到 iPhone 的 Apple Neural Engine (ANE) 以提高电池效率和散热表现,也被移植到 Jetson Orin 套件以实现持久的流媒体传输。
  • 内容消费: 用户构建了自定义的文章阅读器,将网页内容转换为 RSS 订阅源,以便通过播客应用进行消费。
  • Web 集成: 已开发出 Chrome 扩展程序,用于在任何网页上同时提供文本高亮显示和语音合成。

已知局限性

一些用户报告称,Kokoro 在处理极短输入(一个或两个单词)时表现吃力,偶尔会添加幻听声音(例如,将 "ah-six-ah" 代替 "six")。一个已记录的解决方法是:将目标单词嵌入到一个较长的句子中,并使用 Kokoro API 提供的的时间戳来裁剪出所需的特定单词音频。

TTS 与 STT 结合的替代方案

对于需要同时具备文本转语音 (TTS) 和语音转文本 (STT) 的用户,Speaches 是一个可行的替代方案。虽然 Speaches 需要通过其 API 手动下载语音权重,而不是将其打包在镜像中,但它包含了 OpenAI 的 Whisper 系统以实现高质量转录,从而为双向语音交互提供了一个统一的解决方案。

Sources

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目