使用 Kokoro 实现本地 CPU 友好型 TTS
使用 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 系统以实现高质量转录,从而为双向语音交互提供了一个统一的解决方案。