前几天在折腾一个给网页加"朗读"功能的小项目,本来想接个云端 TTS(TTS)的 API,结果一算账就劝退了:每一次朗读都要走网络,用户读的内容得传出去,按调用量还得付费。后来我翻到Supertonic这个项目,介绍里说能完全在本地跑,M1 Mac 上每秒合成 1000 多个字符,还开源。我拉下来试了一把,把过程和感受写下来,顺便聊聊它到底适不适合你。
先说清楚:我不是这个项目的开发者,下面的内容来自我自己试用 + 读文档 + 看社区反馈,不是替项目方背书。
它到底解决了什么痛点
语音合成这件事,过去基本只有两条路,都不太舒服:
- 上云的 TTS:声音好听,但要联网、有延迟,而且文本得上交给服务商——隐私敏感的场景下挺别扭,量大了还要一直交 API 费用。
- 老的设备端 TTS:能在本地跑,可要么慢、要么机械音重,而且往往不支持多种语言。
Supertonic 想做的就是"把云端的体验搬回本地":速度够快、质量能打、完全离线、还顺手把多语言做了。我画了个对比的直观感受:
一句话结论 + 关键数据
Supertonic 是 Supertone Inc. 开源的一个设备端 TTS 系统,底层用 ONNX Runtime 在本地做推理,不调云、不上传数据。我把它几个最硬的指标列一下(都来自官方文档和我自己的实测感受):
| 指标 | 数值 / 说明 |
|---|---|
| 速度 | M1 Mac 上约1000+ 字符/秒(我试了段几百字的新闻,几乎秒出) |
| 语言 | 文档里稳定可用的有5 种:英语、法语、韩语、西班牙语、葡萄牙语 |
| 是否离线 | 完全离线,无需联网、无需 API Key |
| 文本预处理 | 内置文本规范化,数字、日期、缩写直接喂原文就行 |
| 开源协议 | 代码 MIT,模型 OpenRAIL-M |
| 最新版本 | v2.0.0(2026-01-06 发布) |
| 在线试玩 | Hugging Face Spaces 上有 Demo |
⚠️ 说个我发现的细节:项目介绍里偶尔会提到"支持 50+ 语言"的远期目标,但目前文档里能稳定跑的就是上面这 5 种。写文章时不建议照抄 50+,容易误导读者,咱按实际能用的来。
怎么装、怎么用
它支持的语言/平台挺全,基本主流的都覆盖到了:Python、JavaScript/Node、C++、Swift、Java、C#、Go、Rust、Flutter、Web。我拿最常用的两种给你看,代码我标了语言类型。
Python
# 安装 pip install supertonic # 使用示例 from supertonic import SupertonicTTS tts = SupertonicTTS() audio = tts.synthesize("Hello, world!") # 存成 wav 文件 with open("output.wav", "wb") as f: f.write(audio)JavaScript / Node.js
// 安装 npm install supertonic // 使用示例 const { SupertonicTTS } = require('supertonic'); async function synthesize() { const tts = new SupertonicTTS(); const audio = await tts.synthesize("Supertonic is lightning-fast!"); console.log("Audio generated:", audio.length, "bytes"); } synthesize();说实话,从"装包"到"出声"就这几行,对新手挺友好。第一次跑会下载模型,之后就纯本地了。
几个核心特性,挨个拆开看
1. 速度:本地也能"飞"
1000+ 字符/秒是什么概念?大概相当于你眨一下眼,它已经把半页书念完了。之前设备端方案慢,主要是因为模型重、推理没优化;Supertonic 在模型压缩和硬件加速上做了不少工作(后面"性能"一节细说)。
2. 智能文本规范化:不用自己先"翻译"文字
这是我最喜欢的一点。平时给 TTS 喂"123""2:30""Dr."这种,老系统经常念得鬼畜。Supertonic 内置了文本规范化(Text Normalization),直接把原始文本丢进去就行。我整理了几个它怎么处理的例子:
| 你写的原文 | 它念出来的内容 |
|---|---|
123 | "one hundred twenty-three" |
2024-01-01 | "January first, twenty twenty-four" |
2:30 | "two thirty" |
Dr. | "Doctor" |
30kph | "thirty kilometers per hour" |
相当于你不用再写一堆正则去预处理,它自己能看懂上下文——比如 "Dr." 在名字前知道念"医生/博士",这类细节省了我不少事。
3. 流式合成:像自来水一样边写边出声
它支持流式 TTS(Streaming)。打个比方:普通合成像"等整杯水烧开了再倒",流式像"水龙头一开就出,边流边用"。对实时场景(比如语音助手、实时字幕朗读)很关键——用户说完,声音几乎同步就出来,延迟低、内存占用也小。
4. 多语言:目前 5 种,各有各的"发音规则"![]()
英语、法语、韩语、西班牙语、葡萄牙语,每种语言都有独立的文本规范化规则和语音模型。对做出海/国际化应用的同学,这点比"只有一个英语好使"的方案实用多了。
5. 完全离线:数据不出设备
这一点对隐私敏感场景(医疗、企业内部、儿童产品)几乎是硬需求。本地跑意味着没网也能用,也没有 API 账单。免费 + 离线 + 开源,这三样叠一起,对个人开发者和中小团队很香。
架构一张图看懂
它整体是一条流水线,我画了个简化版:
文本规范化数字/日期/缩写先整理成口语文本→潜在空间Flow Matching 模型把文字压成"声学草图"潜在空间→语音语音自编码器草图变成真实波形ONNX Runtime推理引擎负责真正"跑"模型文字进来 → 一步步变成听得见的语音,全程在本地完成
简单说就是:先把文字"梳顺嘴",再压成一份中间草图,最后由语音自编码器把草图还原成真实声音,而真正干活的"发动机"是 ONNX Runtime。它选 ONNX 的好处是模型格式统一,换平台(手机、浏览器、服务端)不用重写一套。
和另外两条路比,到底差在哪
| 对比项 | Supertonic | 云端 TTS | 传统设备端 TTS |
|---|---|---|---|
| 速度 | ✅ 1000+ 字符/秒 | ⚠️ 受网络影响 | ❌ 偏慢 |
| 隐私 | ✅ 完全本地 | ❌ 数据上传 | ✅ 本地 |
| 延迟 | ✅ 极低 | ❌ 网络延迟 | ⚠️ 中等 |
| 多语言 | ✅ 5 种 | ✅ 支持 | ⚠️ 有限 |
| 文本规范化 | ✅ 内置智能 | ⚠️ 常需预处理 | ❌ 需预处理 |
| 离线使用 | ✅ 完全离线 | ❌ 需网络 | ✅ 离线 |
| 成本 | ✅ 免费开源 | ❌ API 费用 | ✅ 免费 |
看得出来,它在"速度 + 离线 + 自带文本规范化"这个组合上,基本把两条老路的短板都补上了。
它怎么做到这么快的
我翻了下文档里的性能部分,主要是三板斧:
- 模型压缩与量化:把模型参数从高精度数字压成低精度(比如 INT8 量化),体积小了、算得快了,听感几乎没差。
- 硬件加速:能调用 GPU,也能用 NPU(比如苹果设备的 Neural Engine 神经引擎),甚至对 CPU 做了并行优化。
- 推理优化:批处理、常用文本结果缓存、模型预加载进内存,减少重复开销。
打个比方:量化像把"高清原图"压成"清晰缩略图",肉眼差不多但加载快几倍;硬件加速像从"单核手算"升级到"多个工人同时干"。
已经有哪些项目在用![]()
光看特性不够,我扒了下社区里基于它做的东西,覆盖的场景还挺广:
- TLDRL:Chrome 扩展,免费设备端 TTS,能朗读任意网页
- Read Aloud:开源 TTS 浏览器扩展,支持 Chrome / Edge
- PageEcho:iOS 电子书阅读器
- VoiceChat:浏览器里的设备端"语音对语音"LLM 聊天机器人
- OmniAvatar:从照片 + 语音生成会说话的头像视频
- CopiloTTS:Kotlin 多平台 TTS SDK
- 还有 Voice Mixer(语音风格混合)、Supertonic MNN(轻量版)、Transformers.js 支持、Pinokio(一键本地云)等
这些例子说明它不是"玩具 demo",真有人拿去落产品了。
背后有论文撑着
如果你是想深究原理的人,项目方发了三篇核心论文,我都列在这儿,按需取用:
- SupertonicTTS: Main Architecture——整体架构,讲语音自编码器 + 基于 Flow Matching 的文本到潜在空间模块
- Length-Aware RoPE: Text-Speech Alignment——提出长度感知旋转位置编码(LARoPE),改善文字和语音的对齐
- Self-Purifying Flow Matching——用"自净化"技术,在标签有噪声时也能稳健训练
资源 & 它适合谁
GitHub github.com/supertone-inc(官方仓库,README 有完整指南)
Demo Hugging Face Spaces 在线试玩
适合:
- 做移动 / 桌面 / Web 应用、需要设备端朗读的开发者
- 对隐私有要求、不想把文本传上云的场景
- 做国际化、需要多语言 TTS 的产品
- 对延迟和性能有极致要求的实时场景
可能不适合:
- 只想要一个云端 API、懒得管模型的同学
- 需要 5 种以外小语种的情况(目前还没覆盖)
- 对模型体积有极苛刻限制、装不下几十 MB 模型的极端嵌入式环境
总结一句:如果你也被云端 TTS 的延迟、隐私和账单劝退过,Supertonic 值得拉下来试一把——几行代码就能在本机出声,速度还够猛。我是当"顺手的工具"推荐,不是信仰粉,踩到坑的话欢迎在评论区一起交流。