sanoTTS 是 Ampixa 做的一组极小神经网络语音合成模型。名字来自尼泊尔语「小」。GitHub 仓库 Ampixa/sanoTTS 是 GPL-3.0,创建于 2026-07-11。2026-09-05 接口显示约 186 star。README 上的参数量从 294k(heart-nano,337 KB int8 权重)到 2.27M(heart,24 kHz)。Python 路径用 numpy 推理,不依赖 PyTorch 和 ONNX Runtime。浏览器有 WebAssembly 版,无需服务器。Arduino / PlatformIO 移植面向约 3 美元这一档的 ESP32-S3。
若要更大、带声音设计的开源多语 TTS,看 Breeze TTS 2;若要托管 API,看 ElevenLabs Turbo v2.5。
核心功能
- 几百 KB 就是完整栈:文档把
heart-nano写成 294k 参数 / 337 KB 的完整 TTS。更大的声音(heart、hfc、amy-1p8m、amy、kristin、vi、id、amy-1p1m)用体积换音质。 - 不需要云:Python CLI、浏览器 WASM、单片机固件都在本地跑。声音首次使用从 huggingface.co/ampixa/sanoTTS 下载,GitHub Releases 作备援。
- 六种语言、十一个声音:英语、尼泊尔语、印地语、越南语、印尼语、中文(以 README 为准)。
- 自带 espeak-ng 音素器:浏览器演示在设备上做音素化。项目声称每个声音不到 4 MB。
- 安装路径:
pip install sanotts、npm install sanotts-web、Arduino zip / PlatformIOlib_deps,或直接打开 在线演示。
局限:GPL-3.0 是强 copyleft。塞进闭源产品有许可证成本,和 Apache-2.0 的 TTS 不一样。音质也打不过前沿托管声音。star 还少;「在 15M 以下档领先 SCOREQ / UTMOS」是作者自己的说法,不是独立审计。
适用场景
- 离线小玩意:玩具、徽章、ESP32-S3 板子,没有网、没有 NPU 也要开口。
- 静态网站:把 WASM 和声音文件丢到 CDN。文档路径是 npm 包
sanotts-web。 - 本地脚本:
sanotts say "Hello" --voice amy -o hello.wav,不用 GPU。
定价
软件按 GPL-3.0 免费。没有托管推理套餐。硬件就是你手头的板子;README 里的 3 美元指的是它瞄准的 ESP32-S3 档,不是 Ampixa 在卖板。
快速开始
- 打开 浏览器演示 打一句。文本不会上传。
- 或装 Python:
pip install sanotts,然后sanotts say "Hello from a two megabyte voice." --voice amy -o hello.wav。 - 声音默认进
~/.cache/sanotts/。Hugging Face 被墙就设SANOTTS_VOICE_SOURCE=github。 - 单片机看
arduino/README.md,从voices-v1/voices-v2刷量化声音包。
第一方资料:GitHub README。
常见问题
需要 GPU 吗?
不需要。Python 是 numpy。单片机是 ESP32-S3 上的 int8。
能商用吗?
分发包含它的二进制时,GPL-3.0 要求提供对应源码。去读许可证,本页不是法律意见。
权重点在哪?
Hugging Face ampixa/sanoTTS,GitHub Releases 作备份。
替代方案
- Breeze TTS 2:更大的开源英中 TTS,带声音设计与克隆。
- ElevenLabs Turbo v2.5:托管低延迟 TTS。
- OpenAI tts-1:已经在付 OpenAI 时最省事的 API TTS。
使用技巧
- 先在浏览器演示里听
heart,再决定要不要刷板。 - CI 里钉死
SANOTTS_VOICE_SOURCE,避免 Hugging Face 抽风导致构建失败。 - 不要把 GPL 代码随手丢进 MIT/Apache 应用。许可证就是产品约束。
总结
sanoTTS 是给在乎字节和毫瓦、而不是榜分数的人用的 TTS:294k 到 2.3M 的声音家族,能在浏览器或便宜单片机上跑。从 演示 或 仓库 开始。
评论
还没有评论。成为第一个评论的人!