首页 / 开源热榜 / pocket-tts / 使用教程

Pocket TTS 教程:先装对 CPU wheel

更新于 2026-09-23 · NGJOO AI 实验室 · 约 10 分钟

Pocket TTS 是 Kyutai 的本地语音合成项目。官方模型约 1 亿参数,支持流式音频、声音克隆、CLI、Python API 和本地 Web 服务。官方列出的语言有英语、法语、德语、葡萄牙语、意大利语和西班牙语。

v3.1.0 发布于 2026-09-03,要求 Python 3.10 至 3.14 和 PyTorch 2.5+。Linux 用户应先选 CPU wheel,否则普通 pip 可能多下载约 3GB CUDA 运行库。

1. Linux CPU 安装

用 uv 临时运行时,按官方 CPU-only 说明指定 PyTorch CPU index:

uvx --index https://download.pytorch.org/whl/cpu pocket-tts generate

要固定安装 v3.1.0,可在独立虚拟环境中执行:

python -m venv .venv
source .venv/bin/activate
pip install 'pocket-tts==3.1.0' --extra-index-url https://download.pytorch.org/whl/cpu
pocket-tts generate

macOS 与 Windows 的默认 PyTorch wheel 已是 CPU 路径,不需要额外 index。命令默认写出 tts_output.wav 并显示速度统计。

2. 选择语言和声音

generateexport-voiceserve 都支持 --language。部分非英语语言还有更慢的 24 层版本。官方约 200ms 首包和 MacBook Air M4 上约 6 倍实时速度只代表对应测试硬件,应在自己的 CPU、文本长度和语言上重测。

--voice 可以接收预设 voice、WAV 或已导出的 safetensors。克隆真人声音前要取得明确授权,并记录音频来源、允许用途和删除期限。不要把来历不明的录音上传到公开服务。

3. 导出可复用的 voice state

直接处理 WAV 会花较长时间。多次使用同一授权声音时,先调用 export-voice 转成 safetensors,再在生成时加载。原始 WAV 和导出状态都能表达个人声音特征,应限制访问、备份和日志。

4. 本地服务和 GPU 限制

pocket-tts serve
# 浏览器访问 http://localhost:8000

本地服务把模型常驻内存,连续请求通常比重复启动 CLI 快。官方没有替公网部署提供完整认证方案;如果要给多人使用,需要反向代理、身份验证、限流、请求大小限制和日志脱敏。

GPU 加速依硬件而变。官方在 Apple Silicon 上没有看到收益,在一台 T4 云主机上测到约 2.6 倍加速。Python 模型可手工移动到 CUDA,generate CLI 也有 device 选项;serve 和 Docker 当前不暴露 device 选项,仍走 CPU。

验证边界:本轮只核对官方 README、pyproject.toml、模型入口和 GitHub Releases。未安装 Python 包,未下载模型或声音,未生成、试听和测速,也未启动 8000 服务或上传任何真人音频。

5. 与 KittenTTS 对比

KittenTTS也是 CPU 本地 TTS,官方模型从 15M 到 80M 参数,当前 README 聚焦英文和 8 个预设声音。Pocket TTS 约 100M 参数,官方列出六种语言、声音克隆、流式输出和训练代码。设备存储很紧且只做英文时可先试 KittenTTS;需要多语言或自有授权声音时再评估 Pocket TTS。

这里仅补原教程没有展开的事实和边界。安装命令与操作步骤仍以前文为准。

先判断这个项目是否适合你

适合谁用

适合本地播报、离线语音原型、CPU 服务器上的流式 TTS,以及经授权的声音克隆实验。需要已验证的生产 SLA、精确跨硬件延迟或公开网络服务时,还要自行做质量、并发、认证和滥用防护测试。

采用建议

适合本地播报、离线语音原型、CPU 服务器上的流式 TTS,以及经授权的声音克隆实验。需要已验证的生产 SLA、精确跨硬件延迟或公开网络服务时,还要自行做质量、并发、认证和滥用防护测试。采用前需要核对:官方速度来自特定硬件,不能直接套到其他 CPU。

原教程未展开的系统信息

核心功能

  • CPU 流式推理

    官方列出的模型约 1 亿参数,支持音频流式输出;README 报告 MacBook Air M4 上首个音频块约 200ms,速度约为实时的 6 倍,这些数字是官方特定硬件测量。

  • 声音克隆与导出

    generate 可把 WAV 作为 voice 输入;export-voice 能把音频提示转换为 safetensors 状态,重复使用时避免每次重新处理音频。

  • CLI、API 与本地服务

    命令行可直接生成 WAV,Python API 可复用模型和 voice state,serve 命令在本机 8000 端口提供 Web 界面和 HTTP 请求入口。

架构与数据流

Pocket TTS 先由 tokenizer 和 text conditioner 处理文本,再让 PyTorch 声学模型结合预训练或克隆的 voice state 逐块生成音频。CLI 封装 generate、export-voice 和 serve;Python API 通过 TTSModel.load_model 加载权重。模型和声音资源可来自 Hugging Face,所以首次运行及使用 URL/hf 配置时需要网络。

技术栈和运行条件

语言

Python 3.10 至 3.14

框架

PyTorch 2.5+、FastAPI/Uvicorn

关键依赖

  • numpy 2+
  • sentencepiece
  • tokenizers
  • safetensors
  • huggingface_hub
  • scipy
  • 可选 torchao 量化

运行环境

默认可在 CPU 推理;Linux 普通 pip 可能额外拉取约 3GB CUDA wheels,应显式选 PyTorch CPU index;serve 默认本地端口 8000

常见问题

Pocket TTS 在 Linux 安装为什么会多出几 GB?

PyPI 可能默认选择带 CUDA 运行库的 PyTorch wheel。只做 CPU 推理时,应按官方说明加入 PyTorch CPU index,可把大约 3GB 的默认安装降到约 200MB。

Pocket TTS 的声音克隆需要一直读取原始 WAV 吗?

不需要。export-voice 可先把授权音频转换成 safetensors voice state,之后直接加载该状态。原始音频和导出的声音状态都应按敏感数据管理。

Pocket TTS serve 可以直接开放到公网吗?

不建议直接暴露。官方 serve 主要用于本地 8000 端口试用,公网部署还需反向代理、认证、限流、上传大小限制、日志脱敏和声音克隆滥用防护。

Pocket TTS 用 GPU 一定比 CPU 快吗?

不一定。官方在 Apple Silicon 上没有观察到收益,在一台 T4 云主机上测到约 2.6 倍加速;GPU 路径也未完整支持,serve 和 Docker 当前始终走 CPU。

Pocket TTS 和 KittenTTS 怎样选?

Pocket TTS 提供六种官方语言、声音克隆、流式生成和训练代码;KittenTTS 的 15M 到 80M 英文模型更小。选择前应在目标硬件上比较音质、首包延迟、许可和安装体积。