Kyutai Pocket TTS:测试过 GPU 加速,却发现根本不需要它的模型
Kyutai 团队做了一件大多数 TTS 实验室根本不会费心尝试的事:他们在 GPU 上对 Pocket TTS 进行了基准测试,想看看速度能提高多少。答案是——完全没有显著提速。在 batch size 为 1 时,对于这样一个设计高效的模型,数据在 GPU 与其他部分之间来回传输的开销,实际上超过了额外算力可能带来的任何收益。这不是把局限包装成卖点;它真正说明,Pocket TTS 从一开始就是为在 CPU 上表现出色而构建的,而不只是勉强能在 CPU 上运行。
什么是 Kyutai Pocket TTS?
Kyutai Pocket TTS 是一款拥有 1 亿参数、采用 MIT 许可证的文字转语音模型,由位于巴黎的 Kyutai 实验室于 2026 年 1 月 13 日发布。英文基础模型完全使用公开数据集训练,总计包含 88,000 小时音频;随后,项目在 2026 年 4 月发布 v2.0.0,加入法语、德语、西班牙语、葡萄牙语和意大利语,扩展了语言覆盖范围。它被专门打造为 Kyutai 更大型流式模型 Kyutai TTS 1.6B(用于该实验室的 Unmute 产品)的端侧对应方案;如果服务器端部署的基础设施本身就有 GPU,后者仍然更合适。
Kyutai Pocket TTS 的功能优势
- 真正为 CPU 原生设计,而不只是兼容 CPU。 其架构专门针对 CPU 执行优化;团队甚至测试了 GPU 加速,结果发现对于该模型的设计而言,GPU 并没有带来实际提速。
- 极低延迟:仅使用 2 个 CPU 核心,就能在约 200ms 内输出首个音频块,并在消费级 CPU 上以约 6 倍实时速度生成音频(基准测试设备为 MacBook Air M4)。
- 零样本声音克隆:只需一小段参考音频即可捕捉目标声音,无需任何微调步骤。
- 可处理任意长度文本的流式架构,而不是只能生成较短、固定长度的内容。
- 覆盖六种语言:截至 v2.0.0 版本,支持英语、法语、德语、西班牙语、葡萄牙语和意大利语;其中部分语言还提供更轻量的 6 层变体,以适应更严格的部署限制。
- 广泛的部署灵活性:除了标准 Python API 和 CLI,还包括通过 WebAssembly 实现的客户端浏览器内版本。
连续音频建模如何避开分词瓶颈
正是这一具体的架构选择让 Pocket TTS 实现了如此高的效率,其底层思路也与该领域其他无 tokenizer 方法相似。Pocket TTS 建立在连续音频语言建模(Continuous Audio Language Modeling,CALM)之上,技术脉络继承自 Kyutai 自己的 Mimi 编解码器,但在整个生成过程中使用连续潜在向量,而不是离散 token。大多数神经音频编解码器依赖残差向量量化(RVQ)来生成离散 token,再交由语言模型预测——在大模型规模下,这是一种合理的权衡;但随着模型缩小,它会成为成本高得不成比例的瓶颈,因为离散码本机制无法像架构的其他部分那样顺利缩小。Pocket TTS 不从固定的离散编码词表中选择,而是直接预测连续向量,从而完全绕开了这一瓶颈。这也是一个 100M 参数模型能够达到或接近参数量数倍于自身的系统质量的重要原因。
一项值得仔细解读的听感测试
在 Kyutai 自己的评测中,评分者采用成对 Elo 风格比较,将 Pocket TTS 的音频质量评为 2016 分,而作为对照的真实人类录音得分为 1884——也就是说,听众认为合成音频听起来更好。这里值得结合恰当的语境来理解,而不能把它当作笼统的主张:真实录音带有麦克风染色、房间回声、呼吸声和音量不均等问题,而干净的合成音频并没有这些问题;Kyutai 还在测试前专门清理了参考音频提示。这一结果反映的是在某个特定感知质量指标和测试集上的真实、具体发现,并不是说 Pocket TTS 在所有意义上都“比真人听起来更像真人”。
Kyutai Pocket TTS 入门
- 通过
uv或 pip 安装。 推荐使用uv,因为它会自动在隔离环境中处理依赖;也可以直接手动运行pip install pocket-tts。项目支持 Python 3.10 至 3.14,并要求 PyTorch 2.5 或更高版本——关键在于,你只需要标准版(非 GPU 版)PyTorch。 - 加载模型并选择声音。 先使用
from pocket_tts import TTSModel,再通过tts_model = TTSModel.load_model()加载核心模型;tts_model.get_state_for_audio_prompt("alba")会按名称选择一个内置预设声音(Alba 是文档列出的默认声音之一)。 - 使用自己的参考片段进行克隆,或从 Hugging Face 获取。 无论传入本地 WAV 文件路径,还是指向托管参考片段的
hf://URI(例如 Kyutai 自己的 Expresso 声音集合),用法都与选择预设声音名称相同。 - 使用
generate_audio()生成音频。audio = tts_model.generate_audio(voice_state, "Hello world, this is a test.")会返回包含 PCM 音频数据的一维 PyTorch tensor,你可以借助scipy.io.wavfile等库将其写入 WAV 文件。 - 在内存中常驻模型和声音状态,以便重复使用。
load_model()和get_state_for_audio_prompt()都是相对较慢的操作——在任何长期运行的应用中,只加载一次并在多次生成调用之间复用,可以避免不必要的开销。 - 如果只是想先听听效果,可以从浏览器 demo 开始。 Kyutai 在其网站上提供了浏览器内版本;你无需安装任何内容,就能测试文字输入和不同声音,然后再决定是否在本地部署。
获得更好效果的技巧
- 不要专门为这个模型配置 GPU。 Kyutai 自己的基准测试表明,在 batch size 为 1 时 GPU 加速不会带来提速,因此专门为 Pocket TTS 投入精力搭建 GPU 部署基础设施,不如把这些精力用在其他地方。
- 缓存声音状态,而不是每个请求都重新加载。 由于模型加载和声音状态准备都是相对较慢的步骤,任何生产服务都应将它们保留在内存中,而不是为每个传入请求重新计算。
- 如果目标语言支持轻量 6 层变体,可以考虑使用。 面向资源格外受限的硬件部署时,这些更小的单语言版本会牺牲一点质量,以换取更紧凑的占用。
- 与大得多的模型比较时,应设定现实的质量预期。 正是 100M 参数这一限制让 CPU 实时性能成为可能;尽管它面对规模大得多的系统依然表现出色,但并不保证在自然度的每个维度上都能匹配所有依赖 GPU 的大型模型——应在自己的内容上测试,而不是默认它在所有场景中都能达到同等水平。
- 较旧或嵌入式 CPU 架构上的表现可能会有所不同。 已发布的基准测试基于 MacBook Air M4 等现代硬件;在旧处理器或专用嵌入式平台上,性能可能不同,因此应先在实际目标设备上验证,再最终确定部署方案。
Kyutai Pocket TTS 与相关轻量和流式模型对比
| Pocket TTS | Kyutai TTS 1.6B | KaniTTS | |
|---|---|---|---|
| 参数量 | 100M | 1.6B | 350M–450M |
| 目标部署环境 | CPU、端侧、边缘设备 | 服务器端流式处理(驱动 Unmute) | 低显存 GPU |
| 首音频块延迟 | ~200ms | 针对服务器规模的流式处理优化 | <300ms(流式模式) |
| 声音克隆 | 支持,零样本 | 支持 | 支持(Kani-TTS-2) |
| 核心表示 | 连续表示(CALM),无离散 tokenization | 流式架构,基于 Mimi | 通过 NanoCodec 生成离散 token |
| 许可证 | MIT | 请查看当前条款 | Apache 2.0 |
Pocket TTS 的特定定位,是各种部署方式中真正只依赖 CPU 的一端——对于已经具备 GPU 能力的服务器基础设施,Kyutai 自己更大的 1.6B 模型更为合适;但对于没有 GPU 的边缘设备、离线应用和浏览器端部署,Pocket TTS 从一开始就是针对这一限制构建的,而不是事后才去适配。
常见问题
Kyutai Pocket TTS 真的无法从 GPU 中受益吗?
根据 Kyutai 自己的测试,确实如此——在 batch size 为 1 时,对于这个设计高效的特定模型,GPU 数据传输开销超过了任何计算优势;因此 CPU 部署并不是妥协,而是预期的运行方式。
Pocket TTS 进行声音克隆需要多少参考音频?
一小段音频就足以进行零样本克隆,无需任何微调步骤——如果不需要克隆某个特定参考声音,也可以从预制声音目录中选择。
Pocket TTS 支持哪些语言?
发布时支持英语;2026 年 4 月的 v2.0.0 版本进一步加入法语、德语、西班牙语、葡萄牙语和意大利语,其中部分语言还提供更轻量的 6 层变体,以适应更严格的部署限制。
Pocket TTS 可以免费用于商业用途吗?
可以。它采用 MIT 许可证发布,这是开源 TTS 模型中较为宽松的许可证之一。
Pocket TTS 的质量与大得多的 TTS 模型相比如何?
它的设计目标是达到或接近参数量数倍于自身的模型质量,并在 Kyutai 自己的听感测试中表现格外出色——不过,与任何高度紧凑的模型一样,结果可能因使用场景而异;在假定它能在每种场景下全面比肩大型系统之前,值得先用自己的内容测试。
使用 Echora 将文字转换为语音
如果你希望在浏览器中完成目标相近的工作流,可以使用 Echora 的文字转语音。输入最多 5,000 个字符,选择内置音色或已保存的自定义音色,按需添加支持的表达标签并调整语音稳定度,然后试听结果并下载生成的 MP3。