使用Kokoro实现本地、CPU友好、高质量的文本转语音(TTS)
摘要
本文介绍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
Kokoro-82M 是一款高效、高质量的文本转语音模型,在 Replicate 上可用,支持多种语言和声音,推理成本低。
@HuggingModels: 想象一个听起来如此自然的文本转语音模型,拥有8200万参数和超过1100万次下载。Kokoro-82M来了,一个…
Kokoro-82M是一个高度自然的文本转语音模型,拥有8200万参数和超过1100万次下载,代表了AI语音生成的重大进步。
CPU TTS基准测试与UTMOS MOS评分:Kokoro、Supertonic、Inflect-Nano和Kyutai的新Pocket TTS [P]
一项CPU TTS基准测试使用UTMOS MOS评分对比了Kokoro、Supertonic、Inflect-Nano和Kyutai的Pocket TTS,揭示了关于RTF缩放、UTMOS在小声码器上的局限性以及未记录的输出上限的有趣发现。Pocket TTS在CPU上提供了独特的零样本声音克隆能力。
在CPU上对Kokoro 82M与Supertonic 3 TTS进行基准测试
详细的CPU基准测试,对比Kokoro 82M和Supertonic 3 TTS模型,测量不同文本长度下的RTF、延迟和吞吐量。结果显示Supertonic 3速度更快,但Kokoro生成的语音更自然,并针对不同使用场景给出了实用建议。
哪个更好的本地移动TTS:Kokoro 还是 Supertonic?
比较两个本地运行的移动TTS模型——Kokoro和Supertonic,质疑它们在初始演示之外的生产质量。