kyutai-labs/pocket-tts

A TTS that fits in your CPU (and pocket)

Pocket TTS – 轻量级仅限 CPU 的文本转语音

这是什么 – Pocket TTS 是一个 Python 库(和 CLI),可将书面文本转换为语音音频。它内置一个 1 亿参数的神经 TTS 模型,可在普通 CPU 上高效运行,因此您不需要 GPU 或远程 Web API。该项目还提供训练脚本、一组预制语音,以及从短音频片段克隆任何语音的方法。

主要功能

  • CPU 优先:适用于仅限 CPU 的 PyTorch 构建;在 MacBook Air M4 上,仅使用两个核心即可生成约 6 倍于实时速度的语音。
  • 低延迟:第一个音频块约 200 毫秒内出现,支持流式输出。
  • 多语言:英语、法语、德语、葡萄牙语、意大利语、西班牙语、荷兰语(可添加更多)。
  • 语音克隆:提供 wav 文件(或预计算的 safetensors 嵌入)即可合成该说话者音色的语音。
  • 流式 / 无限长度文本:模型可为任意长度的输入持续生成音频。
  • CLI 和 HTTP 服务器:pocket-tts generate 用于一次性文件,pocket-tts serve 用于本地 REST 端点,附带小型 Web UI。
  • Python API:TTSModel.load_model()、get_state_for_audio_prompt()、generate_audio() – 返回一维 torch 张量,可使用 scipy.io.wavfile 写入。
  • 浏览器内可能性:社区移植到 WebAssembly、ONNX-Runtime-Web、Rust 基础的 XN 等。
  • 训练代码:training/ 文件夹可让您微调或训练新模型;社区训练的检查点列于 README 中。

如何开始

  1. 安装包(建议使用仅限 CPU 的 PyTorch):
    pip install pocket-tts                     # 或 `uv add pocket-tts`
    # 在 Linux 上,避免 CUDA wheels:
    pip install pocket-tts --extra-index-url https://download.pytorch.org/whl/cpu
    
  2. 使用 CLI 生成 wav:
    pocket-tts generate --text "Hello world" --voice alba
    
    文件 tts_output.wav 会出现在当前目录中,并打印速度统计。
  3. 运行本地服务器以进行重复调用:
    pocket-tts serve   # 然后 POST 到 http://localhost:8000
    
  4. 在代码中使用库:
    from pocket_tts import TTSModel, export_model_state
    model = TTSModel.load_model()
    voice = model.get_state_for_audio_prompt("alba")
    audio = model.generate_audio(voice, "Hello from Python!")
    
    导出语音嵌入以快速重用:
    export_model_state(voice, "alba.safetensors")
    

社区与扩展

  • 多种替代运行时(适用于 Apple Silicon 的 MLX、Candle、ONNX、C++、C#、Rust 等)可让您在嵌入式设备、Windows 或浏览器中直接运行 Pocket TTS。
  • 越来越多的社区训练语言模型(捷克语、印地语、韩语、波斯语、印尼语等)可通过 --config 标志调用。
  • 该项目是开源的,接受贡献,并为开发者提供 CONTRIBUTING.md。

何时使用

  • 您需要在没有 GPU 驱动程序的笔记本电脑、服务器或边缘设备上进行快速、离线的 TTS。
  • 您想要将 TTS 嵌入 Python 应用程序、CLI 工具或轻量级 Web 服务。
  • 您偏好小型模型占用空间(约 1 亿参数,数百 MB),而不是大型、仅限云端的解决方案。

链接

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目