使用Kokoro实现本地、CPU友好、高质量的文本转语音(TTS)

Hacker News Top 工具

摘要

本文介绍Kokoro,一个轻量级82M参数的文本转语音模型,可在本地CPU上运行,提供跨多种语言的高质量语音合成,同时保护隐私。文章解释了如何通过Docker容器设置Kokoro,并使用兼容OpenAI的API进行简单集成。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/07 20:14

# 本地、CPU友好、高质量的TTS(文本转语音)——使用Kokoro 来源:https://ariya.io/2026/03/local-cpu-friendly-high-quality-tts-text-to-speech-with-kokoro ## 2026年3月31日 \#tts (https://ariya.io/tags/tts/)\#privacy (https://ariya.io/tags/privacy/) 就在几年前,实现逼真的本地语音生成还显得难以想象。如今,其质量已出类拔萃,关键是,这一切都不以牺牲隐私为代价。 上方视频展示了一段示例文本生成的音频,完全在本地机器上运行(该机器曾在前文《GTX 1080 Ti 用于本地大语言模型》(https://ariya.io/2026/02/gtx-1080-ti-for-local-llm) 中讨论过)。虽然该机器配有独立GPU,但GPU完全用于LLM推理,而语音合成则完全由CPU驱动。 使用的模型是Kokoro (https://huggingface.co/hexgrad/Kokoro-82M),尽管它“仅”有8200万参数,却能生成包括英语、普通话和印地语在内的多种语言的逼真语音。它提供约50种不同的声音,主要针对英语进行了优化。 有多种方式可以为Kokoro搭建服务器。最简单的方法是使用一个名为Kokoro-FastAPI (https://github.com/remsky/Kokoro-FastAPI) 的预构建容器镜像,其中包含了预先下载的语音模型。因此,该容器镜像体积较大,约5GB。 要使用Docker或Podman启动容器,请执行以下命令: `` podman run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu `` 要快速验证其是否正常运行,容器在`localhost:8880/web`提供了一个简单的Web界面。在这里,你可以根据给定文本生成(并自动播放)音频。 Kokoro 网页界面 除了简单的Web界面外,该容器还提供了一个与OpenAI语音API (https://platform.openai.com/docs/guides/text-to-speech) 兼容的TTS接口,这使得现有使用OpenAI语音API的程序可以轻松适配。为了便于快速测试,JavaScript和Python的示例代码可在github.com/remotebrowser/speak (http://github.com/remotebrowser/speak) 获取。克隆此仓库后,你就可以跟随后续演示进行操作。 对于JavaScript: `` export TTS_API_BASE_URL=http://127.0.0.1:8880/v1 ./speak.js "Good morning! How are you today?" `` 对于Python,命令非常相似: `` export TTS_API_BASE_URL=http://127.0.0.1:8880/v1 ./speak.py "Good morning! How are you today?" `` 生成的音频将保存为MP3文件。如果你的机器上安装了SoX或Sound eXchange(详情请见sox.sf.net (https://sox.sf.net/)),音频也会自动播放。 你也可以通过设置`TTS_VOICE`环境变量来选择不同的声音: `` export TTS_API_BASE_URL=http://127.0.0.1:8880/v1 export TTS_VOICE="am_eric" ./speak.js "Good morning! How are you today?" `` 所有可用声音的完整列表可以在Kokoro的官方项目页面找到:huggingface.co/hexgrad/Kokoro-82M/blob/main/VOICES.md (https://huggingface.co/hexgrad/Kokoro-82M/blob/main/VOICES.md)。 合成速度有多快?以下是在一小段测试段落上使用`am_eric`声音测得的几组数据: > 木星是我们太阳系中最大、质量最大的行星。这颗主要由氢和氦组成的气态巨行星,以其大红斑而闻名——这是一个已被观测了几个世纪的巨大风暴。 下列列表总结了在不同CPU上的生成时间(取3次运行中最佳值): - Intel Core i7-4770K:4.7秒 - Apple M2 Pro:4.5秒 - AMD Ryzen 7 8745HS:1.5秒 列表中的第一款CPU已于12年前发布。如果那么古老的CPU都能正常工作,你就知道这是一个非常强大的TTS系统。 最后,另一个与OpenAI兼容的容器化TTS服务是Speaches(speaches.ai (https://speaches.ai/))。与Kokoro-FastAPI不同,Speaches要求你通过其API显式下载语音权重,因为它们并未打包在容器镜像中。然而,Speaches的优势在于它包含了Whisper (https://openai.com/index/whisper/),这是OpenAI著名的高质量语音转文字(STT)系统。如果你的应用需要同时具备TTS和STT功能,Speaches可能是一个一站式解决方案。 当与本地LLM结合时,像这样的语音合成系统可以让你享受聆听LLM答案的乐趣,而不必阅读它们! *注意:本文最初发表于Remote Browser Substack (https://remotebrowser.substack.com/p/100-local-cpu-friendly-high-quality)。*

相似文章

jaaari/kokoro-82m

Replicate Explore

Kokoro-82M 是一款高效、高质量的文本转语音模型,在 Replicate 上可用,支持多种语言和声音,推理成本低。

在CPU上对Kokoro 82M与Supertonic 3 TTS进行基准测试

Reddit r/LocalLLaMA

详细的CPU基准测试,对比Kokoro 82M和Supertonic 3 TTS模型,测量不同文本长度下的RTF、延迟和吞吐量。结果显示Supertonic 3速度更快,但Kokoro生成的语音更自然,并针对不同使用场景给出了实用建议。