supertone-inc/supertonic
摘要
Supertonic 是一个开源的端内文本转语音(TTS)系统,专为本地推理设计,具有极低的开销。现已发布第 3 版,支持 31 种语言,并提升了准确性。
极速、端内、多语言 TTS —— 通过 ONNX 原生运行。
查看缓存全文
缓存时间: 2026/05/13 12:11
supertone-inc/supertonic 源码地址: https://github.com/supertone-inc/supertonic # Supertonic — 极速、端侧运行、高精度的 TTS v3 演示版 (https://huggingface.co/spaces/Supertone/supertonic-3) v3 模型 (https://huggingface.co/Supertone/supertonic-3) v2 分支 (https://github.com/supertone-inc/supertonic/tree/release/supertonic-2) v1 演示版 (https://huggingface.co/spaces/Supertone/supertonic#interactive-demo) v1 模型 (https://huggingface.co/Supertone/supertonic) Supertonic 是一个极速的、专为端侧推理设计的文本转语音(TTS)系统,具有极低的开销。它由 ONNX Runtime 驱动,完全在本地设备上运行——无需云端、无需 API 调用,更无隐私担忧。 ### 📰 更新动态 - 2026.04.29 - 🎉 Supertonic 3 发布,支持 31 种语言,提升阅读准确度,减少重复/跳过错误,并提供与 v2 兼容的公共 ONNX 资产。演示版 (https://huggingface.co/spaces/Supertone/supertonic-3) | 模型 (https://huggingface.co/Supertone/supertonic-3) - 2026.01.22 - Voice Builder (https://supertonic.supertone.ai/voice_builder) 现已上线!将您的声音转化为可部署、原生支持边缘计算的 TTS 模型,并拥有永久所有权。 - 2026.01.06 - 🎉 Supertonic 2 发布,支持 5 种语言。v2 代码路径保留在 release/supertonic-2 (https://github.com/supertone-inc/supertonic/tree/release/supertonic-2) 分支中。 - 2025.12.10 - 新增 supertonic PyPI 包!通过 pip install supertonic 安装。详情请访问 supertonic-py 文档 (https://supertone-inc.github.io/supertonic-py) - 2025.12.10 - 新增 6 种语音风格 (https://huggingface.co/Supertone/supertonic/tree/b10dbaf18b316159be75b34d24f740008fddd381) (M3, M4, M5, F3, F4, F5)。详见 Voices (https://supertone-inc.github.io/supertonic-py/voices/) - 2025.12.08 - 经 OnnxSlim (https://github.com/inisis/OnnxSlim) 优化的 ONNX 模型现已在 Hugging Face Models (https://huggingface.co/Supertone/supertonic) 上可用 - 2025.11.24 - 新增 Flutter SDK 支持,兼容 macOS ## 快速开始 安装 Python SDK 并立即生成语音。首次运行时,Supertonic 会自动从 Hugging Face 下载模型资产。 bash pip install supertonic ### Python python from supertonic import TTS # 首次运行会自动从 Hugging Face 下载模型。 tts = TTS(auto_download=True) style = tts.get_voice_style(voice_name="M1") text = "A gentle breeze moved through the open window while everyone listened to the story." wav, duration = tts.synthesize(text, voice_style=style, lang="en") tts.save_audio(wav, "output.wav") print(f"Generated {duration:.2f}s of audio") ## 入门指南 首先,克隆代码库: bash git clone https://github.com/supertone-inc/supertonic.git cd supertonic ### 前置条件 在运行示例之前,请下载 ONNX 模型和预设语音,并将它们放置在 assets 目录中: > 注意: Hugging Face 仓库使用了 Git LFS。在克隆或拉取大型模型文件之前,请确保已安装并初始化 Git LFS。 > - macOS: brew install git-lfs && git lfs install > - 通用: 请参阅 https://git-lfs.com 获取安装程序 bash git lfs install git clone https://huggingface.co/Supertone/supertonic-3 assets 某些语言的示例需要原生运行时: - Go: 安装 ONNX Runtime C 库。在 macOS 上,brew install onnxruntime 即可;Go 示例会自动检测 Homebrew 路径。 - Java: 使用 JDK,而不仅仅是 JRE。在 macOS 上,brew install openjdk@17 有效。 - C#: 目标为 .NET 9 并允许主版本向前滚动,因此 .NET 9 或更高版本的运行时均可运行。 然后运行 Python 示例: bash cd py uv sync uv run example_onnx.py 这将使用默认预设语音生成 outputs/output.wav。 ### 其他运行时示例 在其他语言和平台上运行 Supertonic Node.js 示例 (详情) bash cd nodejs npm install npm start 浏览器示例 (详情) bash cd web npm install npm run dev Java 示例 (详情) bash cd java mvn clean install mvn exec:java C++ 示例 (详情) bash cd cpp mkdir build && cd build cmake .. && cmake --build . --config Release ./example_onnx C# 示例 (详情) bash cd csharp dotnet restore dotnet run Go 示例 (详情) bash cd go go mod download go run example_onnx.go helper.go Swift 示例 (详情) bash cd swift swift build -c release .build/release/example_onnx Rust 示例 (详情) bash cd rust cargo build --release ./target/release/example_onnx iOS 示例 (详情) bash cd ios/ExampleiOSApp xcodegen generate open ExampleiOSApp.xcodeproj 在 Xcode 中:Targets → ExampleiOSApp → Signing: 选择您的团队,然后选择您的 iPhone 作为运行目标并构建。 ### 技术细节 - 运行时: 使用 ONNX Runtime 进行跨平台推理 - 浏览器支持: 使用 onnxruntime-web 进行客户端推理 - 批处理: 支持批量推理以提高吞吐量 - 音频输出: 输出 16 位 WAV 文件 ## 性能亮点 Supertonic 3 专为实用的端侧推理而设计:足够紧凑以在本地运行,同时在与更大的开源 TTS 系统竞争时保持竞争力。 ### 阅读准确度 在所有测试语言中,Supertonic 3 的 WER/CER 范围优于许多更大的开源 TTS 模型(如 VoxCPM2),同时保留了轻量级的端侧部署路径。带星号的语言使用 CER;其他语言使用 WER。 ### Supertonic 2 至 Supertonic 3 与 Supertonic 2 相比,Supertonic 3 减少了重复和跳过错误,提高了共享语言集中的说话人相似度,并将语言覆盖率从 5 种扩展到 31 种。它保持了与 v2 兼容的公共 ONNX 接口,因此现有集成可以使用相同的推理契约迁移到 v3。 ### 运行时占用 Supertonic 3 在 CPU 上运行速度快,即使与在 A100 GPU 上测量的较大基线相比也是如此,并且使用的内存明显更少。开放权重的固定语音设置不需要 GPU,这使得本地、浏览器和边缘部署更加容易。 ### 模型大小 在公共 ONNX 资产中,Supertonic 3 约有 99M 参数,远小于 0.7B 到 2B 级别的开源 TTS 系统。较小的模型大小在下载大小、启动时间和端侧推理方面具有实际优势。 ## 演示 > 立即尝试: 在我们的 交互演示 (https://huggingface.co/spaces/Supertone/supertonic-3) 中在浏览器中体验 Supertonic,或从 Hugging Face Hub (https://huggingface.co/Supertone/supertonic-3) 开始使用预训练模型 ### 树莓派 观看在 树莓派 上运行的 Supertonic,展示端侧、实时文本转语音合成: https://github.com/user-attachments/assets/ea66f6d6-7bc5-4308-8a88-1ce3e07400d2 ### 电子阅读器 在飞行模式下的 Onyx Boox Go 6 电子阅读器上体验 Supertonic,平均 RTF 达到 0.3×,且零网络依赖: https://github.com/user-attachments/assets/64980e58-ad91-423a-9623-78c2ffc13680 ### Chrome 扩展程序 在不到一秒的时间内将任何网页转换为音频,提供极速、端侧文本转语音,零网络依赖——免费、私密且轻松: https://github.com/user-attachments/assets/cc8a45fc-5c3e-4b2c-8439-a14c3d00d91c ## 为什么选择 Supertonic? - 极速: 针对桌面、浏览器和边缘部署的低延迟、端侧语音生成进行了优化 - 轻量级: 紧凑的 ONNX 资产,专为高效的本地执行而设计 - 端侧能力: 完全隐私且零网络依赖 - 准确阅读: 提高了阅读稳定性,减少了重复和跳过错误 - 表情标签: 支持简单的表情标签,如 <break>, <emphasis> 和 <phoneme> - 灵活部署: 提供 Python、JavaScript、浏览器、移动设备和原生运行时的即用型示例 ## 语言支持 Supertonic 3 支持 31 种语言: | 代码 | 语言 | 代码 | 语言 | 代码 | 语言 | 代码 | 语言 | |——|–––––|——|–––––|——|–––––|——|–––––| | en | 英语 | ko | 韩语 | ja | 日语 | ar | 阿拉伯语 | | bg | 保加利亚语 | cs | 捷克语 | da | 丹麦语 | de | 德语 | | el | 希腊语 | es | 西班牙语 | et | 爱沙尼亚语 | fi | 芬兰语 | | fr | 法语 | hi | 印地语 | hr | 克罗地亚语 | hu | 匈牙利语 | | id | 印尼语 | it | 意大利语 | lt | 立陶宛语 | lv | 拉脱维亚语 | | nl | 荷兰语 | pl | 波兰语 | pt | 葡萄牙语 | ro | 罗马尼亚语 | | ru | 俄语 | sk | 斯洛伐克语 | sl | 斯洛文尼亚语 | sv | 瑞典语 | | tr | 土耳其语 | uk | 乌克兰语 | vi | 越南语 | | | 我们提供了多种生态系统中的即用型 TTS 推理示例: | 语言/平台 | 路径 | 描述 | |—————––|——|———––| | Python | py/ | ONNX Runtime 推理 | | Node.js | nodejs/ | 服务端 JavaScript | | Browser | web/ | WebGPU/WASM 推理 | | Java | java/ | 跨平台 JVM | | C++ | cpp/ | 高性能 C++ | | C# | csharp/ | .NET 生态系统 | | Go | go/ | Go 实现 | | Swift | swift/ | macOS 应用程序 | | iOS | ios/ | 原生 iOS 应用 | | Rust | rust/ | 内存安全系统 | | Flutter | flutter/ | 跨平台应用 | > 详细使用说明,请参阅各语言目录中的 README.md。 ## 自然文本处理 Supertonic 旨在处理包含自然散文、标点符号、缩写和专有名词的复杂真实世界文本输入。 > 🎧 更轻松地查看音频样本: 查看我们的 交互演示 (https://huggingface.co/spaces/Supertone/supertonic-3) 以获得更好的所有音频示例观看体验 测试用例概述: | 类别 | 关键挑战 | Supertonic | ElevenLabs | OpenAI | Gemini | Microsoft | |:––––:|:–––––––:|:–––––:|:–––––:|:——:|:——:|:———:| | 金融表达 | 小数货币、缩写量级 (M, K)、货币符号、货币代码 | ✅ | ❌ | ❌ | ❌ | ❌ | | 电话号码 | 区号、连字符、分机号 (ext.) | ✅ | ❌ | ❌ | ❌ | ❌ | | 技术单位 | 带单位的小数、缩写技术符号 | ✅ | ❌ | ❌ | ❌ | ❌ | 示例 1:金融表达 文本: > “The startup secured 5.2M** in venture capital, a huge leap from their initial **450K seed round.” 挑战: - 货币中的小数点 (5.2M 应读作 "five point two million") - 缩写量级单位 (M 表示百万,K 表示千) - 需要正确发音为 "dollars" 的货币符号 () 音频样本: | 系统 | 结果 | 音频样本 | |––––|––––|–––––––| | Supertonic | ✅ | 🎧 播放音频 (https://drive.google.com/file/d/1eancUOhiSXCVoTu9ddh4S-OcVQaWrPV-/view?usp=sharing) | | ElevenLabs Flash v2.5 | ❌ | 🎧 播放音频 (https://drive.google.com/file/d/1-r2scv7XQ1crIDu6QOh3eqVl445W6ap_/view?usp=sharing) | | OpenAI TTS-1 | ❌ | 🎧 播放音频 (https://drive.google.com/file/d/1MFDXMjfmsAVOqwPx7iveS0KUJtZvcwxB/view?usp=sharing) | | Gemini 2.5 Flash TTS | ❌ | 🎧 播放音频 (https://drive.google.com/file/d/1dEHpNzfMUucFTJPQK0k4RcFZvPwQTt09/view?usp=sharing) | | VibeVoice Realtime 0.5B | ❌ | 🎧 播放音频 (https://drive.google.com/file/d/1b69XWBQnSZZ0WZeR3avv7E8mSdoN6p6P/view?usp=sharing) | 示例 2:电话号码 文本: > “You can reach the hotel front desk at (212) 555-0142 ext. 402 anytime.” 挑战: - 应读作单独数字的括号区号 - 带有连字符分隔符的电话号码 (555-0142) - 缩写分机号表示法 (ext.) - 分机号 (402) 音频样本: | 系统 | 结果 | 音频样本 | |––––|––––|–––––––| | Supertonic | ✅ | 🎧 播放音频 (https://drive.google.com/file/d/1z-e5iTsihryMR8ll1-N1YXkB2CIJYJ6F/view?usp=sharing) | | ElevenLabs Flash v2.5 | ❌ | 🎧 播放音频 (https://drive.google.com/file/d/1HAzVXFTZfZm0VEK2laSpsMTxzufcuaxA/view?usp=sharing) | | OpenAI TTS-1 | ❌ | 🎧 播放音频 (https://drive.google.com/file/d/15tjfAmb3GbjP_kmvD7zSdIWkhtAaCPOg/view?usp=sharing) | | Gemini 2.5 Flash TTS | ❌ | 🎧 播放音频 (https://drive.google.com/file/d/1BCL8n7yligUZyso970ud7Gf5NWb1OhKD/view?usp=sharing) | | VibeVoice Realtime 0.5B | ❌ | 🎧 播放音频 (https://drive.google.com/file/d/1c0c0YM_Qm7XxSk2uSVYLbITgEDTqaVzL/view?usp=sharing) | 示例 3:技术单位 文本: > “Our drone battery lasts 2.3h when flying at 30kph with full camera payload.” 挑战: - 带缩写的小数时间持续时间 (2.3h = two point three hours) - 带缩写的速度单位 (30kph = thirty kilometers per hour) - 技术缩写 (h 表示小时,kph 表示千米/小时) - 需要正确发音的技术/工程背景 音频样本: | 系统 | 结果 | 音频样本 | |––––|––––|–––––––| | Supertonic | ✅ | 🎧 播放音频 (https://drive.google.com/file/d/1kvOBvswFkLfmr8hGplH0V2XiMxy1shYf/view?usp=sharing) | | ElevenLabs Flash v2.5 | ❌ | 🎧 播放音频 (https://drive.google.com/file/d/1_SzfjWJe5YEd0t3R7DztkYhHcI_av48p/view?usp=sharing) | | OpenAI TTS-1 | ❌ | 🎧 播放音频 (https://drive.google.com/file/d/1P5BSilj5xFPTV2Xz6yW5jitKZohO9o-6/view?usp=sharing) | | Gemini 2.5 Flash TTS | ❌ | 🎧 播放音频 (https://drive.google.com/file/d/1GU82SnWC50OvC8CZNjhxvNZFKQb7I9_Y/view?usp=sharing) | | VibeVoice Realtime 0.5B | ❌ | 🎧 播放音频 (https://drive.google.com/file/d/1lUTrxrAQy_viEK2Hlu3KLLtTCe8jvbdV/view?usp=sharing) | > 注意: 这些样本展示了每个系统如何处理文本规范化以及复杂表达的发音,而 无需预处理或语音标注。 ## 基于 Supertonic 构建的项目 | 项目 | 描述 | 链接 | |———|———––|—––| | TLDRL | 免费的、端侧 TTS 扩展,用于阅读任何网页 | Chrome (https://chromewebstore.google.com/detail/tldrl-lightning-tts-power/mdbiaajonlkomihpcaffhkagodbcgbme) | | Read Aloud | 开源 TTS 浏览器扩展 | Chrome (https://chromewebstore.google.com/detail/read-aloud-a-text-to-spee/hdhinadidafjejdhmfkjgnolgimiaplp) · Edge (https://microsoftedge.microsoft.com/addons/detail/read-aloud-a-text-to-spe/pnfonnnmfjnpfgagnklfaccicnnjcdkm) · GitHub (https://github.com/ken107/read-aloud) | | PageEcho | iOS 电子书阅读器应用 | App Store (https://apps.apple.com/us/app/pageecho/id6755965837) | | VoiceChat | 浏览器中的端侧语音到语音 LLM 聊天机器人 | 演示版 (https://huggingface.co/spaces/RickRossTN/ai-voice-chat) · GitHub (https://github.com/irelate-ai/voice-chat) | | OmniAvatar | 从照片 + 语音生成会说话的头像视频 | 演示版 (https://huggingface.co/spaces/alexnasa/OmniAvatar) | | CopiloTTS | 通过 ONNX Runtime 的 Kotlin 多平台 TTS SDK | GitHub (https://github.com/sigmadeltasoftware/CopiloTTS) | | Voice Mixer | 用于混合和修改语音风格的 PyQt5 工具 | GitHub (https://github.com/Topping1/Supertonic-Voice-Mixer) | | Supertonic MNN | 基于 MNN (fp32/fp16/int8) 的轻量级库 | GitHub (https://github.com/vra/supertonic-mnn) · PyPI (https://pypi.org/project/supertonic-mnn/) | | Transformers.js | Hugging Face 的 JS 库,支持 Supertonic | GitHub PR (https://github.com/huggingface/transformers.js/pull/1459) · 演示版 (https://huggingface.co/spaces/webml-community/Supertonic-TTS-WebGPU) | | Pinokio | Mac、Windows 和 Linux 的一键本地云 | Pinokio (https://pinokio.co/) · GitHub (https://github.com/SUP3RMASS1VE/SuperTonic-TTS) | ## 引用 以下论文描述了 Supertonic 使用的核心技术。如果您在研究中使用此系统或发现这些技术有用,请考虑引用相关论文:
相似文章
Supertone/supertonic-3
Supertonic 3 是一个轻量级的开权重文本转语音模型,专为快速设备端推理而设计,支持的语言扩展至 31 种,并提升了稳定性及表情标签支持。
@akshay_pachaar: 这个TTS模型生成语音的速度比人耳听到快167倍。Supertonic 是一款通过ONNX实现跨平台推理的设备端TTS引擎…
Supertonic 是一款新的开源TTS引擎,通过ONNX在设备上运行,支持31种语言,在速度上超越ElevenLabs,即使在无GPU的树莓派上也能运行。
@JafarNajafov:Supertonic 彻底击败了 ElevenLabs。一个完全在本地运行的文本转语音模型。无云端。无 API 密钥。无...
本文重点介绍了 Supertonic,这是一个开源的文本转语音模型,完全在本地设备运行。与 ElevenLabs 和 OpenAI 等基于云端的服务相比,它在速度和格式准确性方面均表现出色。
@GoJun315: 本地跑的开源 TTS,把 ElevenLabs 干掉了。 Supertonic,完全跑在本地的语音合成模型,不联网、零 API 费用。 - 仅 99M 参数,M4 Pro 上比实时快 167 倍,树莓派也能跑 - 支持 31 种语言,覆盖…
Supertonic is a lightning-fast, on-device TTS model with 99M parameters, supporting 31 languages. It runs locally with no API costs, outperforms cloud TTS on accuracy for numbers, phone numbers, and technical terms, and can be installed via Python, Node.js, Rust, Go, and more.
哪个更好的本地移动TTS:Kokoro 还是 Supertonic?
比较两个本地运行的移动TTS模型——Kokoro和Supertonic,质疑它们在初始演示之外的生产质量。