返回

文章详情

本地、CPU友好、高质量的TTS(文本转语音)与Kokoro

Hacker News2026年7月7日 18:24

2026年3月31日 #tts #privacy 仅仅几年前,现实的本地语音生成似乎不可想象。今天,它的质量已经非常出色,而且,最重要的是,它在保持隐私的同时实现了这些结果。上面的视频展示了从样本文本生成的音频,完全在之前讨论的GTX 1080 Ti本地LLM文章中提到的本地机器上运行。虽然这台机器有一个专用的GPU,但GPU完全保留用于LLM推理,而语音合成完全由CPU驱动。使用的模型是Kokoro,尽管其参数仅为82M,却可以以多种语言(包括英语、普通话和印地语)生成真实的语音。它提供大约50种不同的声音,主要针对英语进行了优化。有几种方法可以为Kokoro设置服务器。最简单的方法是使用一个名为Kokoro-FastAPI的预制容器镜像,其中包含了预先下载的语音模型。因此,该容器镜像相当大,约为5GB。要使用Docker或Podman启动容器,请使用以下命令:podman run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi。为了快速验证其是否正常运行,容器在localhost:8880/web提供了一个简单的Web用户界面。您可以在这里生成(并自动播放)给定文本的音频。除了简单的Web用户界面外,该容器还提供与OpenAI语音API兼容的TTS接口,便于适应已经使用OpenAI语音API的现有程序。为了方便快速测试,GitHub上提供了JavaScript和Python的示例代码,地址为github.com/remotebrowser/speak。克隆此存储库将使您能够跟随后续的演示。对于JavaScript:export TTS_API_BASE_URL = http://127.0.0.1:8880/v1 ./speak.js "早上好!今天你怎么样?" 对于Python,命令非常相似:export TTS_API_BASE_URL = http://127.0.0.1:8880/v1 ./speak.py "早上好!今天你怎么样?" 生成的音频将保存为MP3文件。如果您的计算机上安装了SoX或Sound eXchange(详细信息请参见sox.sf.net),音频也将自动播放。您还可以通过设置TTS_VOICE环境变量选择不同的声音:export TTS_API_BASE_URL = http://127.0.0.1:8880/v1 export TTS_VOICE = "am_eric" ./speak.js "早上好!今天你怎么样?" 可用声音的完整列表可以在Kokoro项目的官方页面上找到: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)。与Kokoro-FastAPI不同,Speaches要求您通过其API显式下载语音权重,因为它们未打包在容器镜像中。然而,Speaches通过包含Whisper(OpenAI著名的高质量语音转文本STT系统)提供了一个优势。如果您的应用程序需要同时具备TTS和STT功能,Speaches可能是您的一站式解决方案。当与本地LLM结合时,这样的语音合成系统让您享受听LLM回答而不是阅读的乐趣!注意:本文最初出现在Remote Browser Substack上。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡