
Pocket TTS轻量级文本转语音应用CPU 高效运行多特性助力多场景使用Pocket TTS 是一款轻量级的文本转语音TTS应用程序专为在 CPU 上高效运行而设计。无需再为使用 GPU 和提供 TTS 模型的 Web API 而烦恼。有了 Kyutai 的 Pocket TTS只需通过 pip install 安装并调用一个函数就能轻松生成音频。它支持 Python 3.10、3.11、3.12、3.13 和 3.14 版本要求 PyTorch 2.5 及以上版本但不要求使用 PyTorch 的 GPU 版本。 [演示](链接待补充) | [GitHub 仓库](链接待补充) | [Hugging Face 模型卡片](链接待补充) | ⚙️ [技术报告](链接待补充) | [论文](链接待补充) | [文档](链接待补充)主要特性- **CPU 运行**可在 CPU 上运行。- **模型体积小**仅有 1 亿个参数。- **音频流式传输**低延迟约 200 毫秒即可获取第一个音频块。- **速度快于实时**在 MacBook Air M4 的 CPU 上速度约为实时的 6 倍。- **仅使用 2 个 CPU 核心**。- **支持 Python API 和 CLI**。- **支持语音克隆**。- **多语言支持**包括英语、法语、德语、葡萄牙语、意大利语和西班牙语。- **可处理无限长的文本输入**。- **可在浏览器客户端运行**未来可能会添加更多语言支持。试用方式在线试用访问 Kyutai 网站可直接在浏览器中试用。无需安装输入文本、选择不同语音即可生成语音。使用 CLI 试用- **生成命令**可直接在命令行使用 pocket - tts。推荐使用 uv它能在隔离环境中即时安装所有依赖[uv 安装说明](链接待补充)也可使用 pip install pocket - tts 手动安装。以下命令将使用默认语音生成包含默认文本的 ./tts_output.wav 文件并显示一些速度统计信息uvx pocket - tts generate# 若使用 pip 手动安装可直接运行pocket - tts generate可使用 --voice 修改语音使用 --text 修改文本。我们提供了一个小型语音库。在运行 generate、export - voice 或 serve 命令时可使用 --language 选择预训练语言模型默认英语。非英语语言还有 24 层的变体质量更高但速度较慢例如可使用 --language italian_24l 进行选择。--config 选项仅接受本地 YAML 文件路径以使用自定义权重。可查看[此页面](链接待补充)了解每个语音的许可详情。以下是部分可用语音- alba (en)- giovanni (it)- lola (es)- juergen (de)- rafael (pt)- estelle (fr)- anna (en)- azelma (en)- bill_boerst (en)- caro_davy (en)- charles (en)- cosette (en)- eponine (en)- eve (en)- fantine (en)- george (en)- jane (en)- jean (en)- javert (en)- marius (en)- mary (en)- michael (en)- paul (en)- peter_yearsley (en)- stuart_bell (en)- vera (en)--voice 参数也可接受普通的 WAV 文件作为语音克隆的输入。你可以使用自己的文件也可查看我们的[语音仓库](链接待补充)。建议在将样本用于 Pocket TTS 之前进行清理因为样本的音频质量也会被保留。更多详情和示例可查看[生成文档](链接待补充)。若想快速试用多种语音和提示建议使用 serve 命令。- **服务命令**还可运行本地服务器通过 HTTP 请求生成音频uvx pocket - tts serve# 若使用 pip 手动安装可直接运行pocket - tts serve访问 http://localhost:8000 可试用网页界面由于模型在请求之间会保留在内存中因此比命令行更快。更多详情和示例可查看[服务文档](链接待补充)。- **导出语音命令**处理音频文件如 .wav 或 .mp3进行语音克隆的速度相对较慢但加载 safetensors 文件从音频文件转换而来的语音嵌入的速度非常快。可使用 export - voice 命令进行此转换。更多详情和示例可查看[导出语音文档](链接待补充)。作为 Python 库使用可在 [Colab](链接待补充) 上试用 Python 库。使用以下命令安装包pip install pocket - tts# 或使用 uvuv add pocket - tts可将此包作为简单的 Python 库从文本生成音频from pocket_tts import TTSModelimport scipy.io.wavfiletts_model TTSModel.load_model()voice_state tts_model.get_state_for_audio_prompt(alba # 预定义语音之一见上文# 也可使用本地或 Hugging Face 上的任何语音文件# ./some_audio.wav# 或 hf://kyutai/tts - voices/expresso/ex01 - ex02_default_001_channel2_198s.wav)audio tts_model.generate_audio(voice_state, Hello world, this is a test.)# 音频是包含 PCM 数据的 1D torch 张量scipy.io.wavfile.write(output.wav, tts_model.sample_rate, audio.numpy())若要使用多种语音可保留多个语音状态。load_model() 和 get_state_for_audio_prompt() 操作相对较慢因此建议尽量将模型和语音状态保留在内存中。若想更快地加载语音可将语音状态导出为 safetensors 文件from pocket_tts import TTSModel, export_model_statemodel TTSModel.load_model()# 导出语音状态以便后续快速加载model_state model.get_state_for_audio_prompt(some_voice.wav)export_model_state(model_state, ./some_voice.safetensors)# 稍后快速加载由于只需从磁盘读取 kvcache 且无需进行其他计算速度很快model_state_copy model.get_state_for_audio_prompt(./some_voice.safetensors)audio model.generate_audio(model_state_copy, Hello world!)更多详情和示例可查看 [Python API 文档](链接待补充)。不支持的功能目前我们不支持以下功能欢迎提交拉取请求添加- 在文本输入中添加静音以生成停顿。- 我们曾尝试在 GPU 上运行此 TTS 模型但与 CPU 执行相比并未观察到速度提升主要是因为我们使用的批量大小为 1 且模型非常小。开发与本地设置我们欢迎贡献可在 GitHub 上自由提交问题或拉取请求。可在 CONTRIBUTING.md 文件中找到开发说明也能了解如何进行本地开发的可编辑安装。浏览器实现Pocket TTS 体积足够小可直接在浏览器中以 WebAssembly/JavaScript 运行。目前我们尚未提供官方支持但你可以尝试以下社区实现- [wasm - pocket - tts](链接待补充) 由 LaurentMazare 开发使用 XN 对 Pocket TTS 进行的 Rust 移植[演示](链接待补充)。- [pocket - tts - onnx - export](链接待补充) 由 KevinAHM 开发将模型导出为 .onnx 并使用 ONNX Runtime Web 运行[演示](链接待补充)。- [pocket - tts](链接待补充) 由 babybirdprd 开发基于 CandleRust实现带有 WebAssembly 和 PyO3 绑定意味着也可在网页上运行。- [jax - js](链接待补充) 由 ekzhang 开发使用用于网页的 ML 库 jax - js[演示](链接待补充)。替代实现- [pocket - tts - mlx](链接待补充) 由 jishnuvenugopal 开发针对 Apple Silicon 优化的 MLX 后端。- [pocket - tts - xn](链接待补充) 由 LaurentMazare 开发使用 XN 实现的 Pocket TTS 的 Rust 移植。- [pocket - tts - candle](链接待补充) 由 babybirdprd 开发基于 CandleRust实现带有 WebAssembly 和 PyO3 绑定。- [PocketTTS.cpp](链接待补充) 由 VolgaGerm 开发使用 ONNX Runtime 的单文件 C 运行时带有 CLI、HTTP 服务器和 FFI C API。- [sherpa - onnx](链接待补充) 由 csukuangfj 开发可在 Windows、macOS、Linux 和嵌入式开发板如 Raspberry Pi、Jetson、RK3588 等上运行 PocketTTS提供 12 种编程语言的绑定C、C、Python、JavaScript、Java、C#、Kotlin、Swift、Go、Dart、Rust、Pascal以及 WebAssembly。- [pocket - tts - csharp](链接待补充) 由 TheAjaykrishnanR 开发使用 TorchSharp 和 TorchSharp.PyBridge 实现的 Pocket TTS 的 C# 移植便于在 .NET 项目中作为库使用。使用 Pocket TTS 的项目- [pocket - reader](链接待补充) 由 lukasmwerner 开发浏览器屏幕阅读器。- [pocket - tts - wyoming](链接待补充) 由 ikidd 开发使用 Wyoming 协议的 Pocket TTS 的 Docker 容器可用于 Home Assistant 语音功能。- [Sonorus](链接待补充) 由 KevinAHM 开发可与《霍格沃茨之遗》中的任何命名角色以其原始语音进行对话。- [Native macOS App](链接待补充) 由 slaughters85j 开发原生 macOS 应用无需 Python。通过 Core ML 运行 Pocket - TTS完全在设备上运行包括已签名和公证的 .app 版本。- [Electron macOS App](链接待补充) 由 slaughters85j 开发Electron Mac 桌面应用 macOS 快速操作。- [pocket - tts - openai_streaming_server](链接待补充) 由 teddybear082 开发兼容 OpenAI 的流式服务器支持 Docker 化和 .exe 版本发布。- [pocket - tts - unity](链接待补充) 由 lookbe 开发Pocket - TTS 的 Unity 6 集成。- [ComfyUI - Pocket - TTS](链接待补充) 由 ai - joe - git 开发适用于 ComfyUI 的轻量级基于 CPU 的文本转语音工具。- [pocket - tts - server](链接待补充) 由 ai - joe - git 开发轻量级实时语音克隆和聊天服务器具有兼容 OpenAI 的 API。只需 20 秒音频即可克隆任何语音并立即使用该语音与 AI 聊天。- [discord - tts](链接待补充) 由 alkmei 开发使用 Pocket TTS 的多语音 Discord 文本转语音机器人。- [cursed - codex](链接待补充) 由 dooart 开发带有疯狂实时足球评论的 AI 编码代理。- [pocket - tts - deno](链接待补充)将 pocket - tts - server 移植为带有语音 TTS API 的 wasm onnx Deno 服务器。- [FrontPocket](链接待补充) 由 markd89 开发Pocket - TTS 的前端可从剪贴板、文件、CLI热键和 GUI 工具栏读取文本进行语音合成。可即时更改播放速度、语音并在句子间前后移动。- [openclaw - pockettts](链接待补充) 由 dodgyrabbit 开发包含 Python 实现的 Docker 容器将其作为 OpenAI TTS API 暴露便于与 OpenClaw 集成。- [openclaw - pocketts.cpp](链接待补充) 由 dodgyrabbit 开发包含 PocketTTS.cpp 版本的 Docker 容器便于与 OpenClaw 集成。- [tts - audiobook - tool](链接待补充) 由 zeropointnine 开发多模型有声读物生成器具有自动错误检测、48kHz 上采样、同步浏览器阅读器和独立服务器模式。- [seshat - tts](链接待补充) 由 scriptriva 开发为游戏和应用程序提供实时音频合成的辅助工具还具有基于用户预设克隆语音的语音管理器。- [LocalVocal.ai](链接待补充) 由 joshwhiton 开发适用于配备 Apple Silicon 的 Mac 的全本地对话式语音工具包括语音活动和轮次检测、听写、语音克隆、与 Claude、Codex 等进行对话的 CLI 等功能。禁止使用场景使用我们的模型必须遵守所有适用的法律法规不得导致、涉及或便利任何非法、有害、欺骗性、欺诈性或未经授权的活动。禁止的使用场景包括但不限于- 未经明确合法同意进行语音模仿或克隆。- 传播错误信息、虚假信息或进行欺骗行为包括虚假新闻、欺诈性电话或将生成内容伪装成真实人物或事件的真实记录。- 生成非法、有害、诽谤、辱骂、骚扰、歧视、仇恨或侵犯隐私的内容。我们对任何不符合规定的使用行为不承担任何责任。作者Manu Orsini*、Simon Rouard*、Gabriel De Marmiesse*、Václav Volhejn、Neil Zeghidour、Alexandre Défossez* 表示贡献相同