sanoTTS logo

sanoTTS

打开

超小神经网络 TTS,参数量 294k 到 2.3M。可在浏览器或约 3 美元的 ESP32-S3 上离线合成。11 个声音、6 种语言,GPL-3.0。

分享:
查看替代方案

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。更大的声音(hearthfcamy-1p8mamykristinviidamy-1p1m)用体积换音质。
  • 不需要云:Python CLI、浏览器 WASM、单片机固件都在本地跑。声音首次使用从 huggingface.co/ampixa/sanoTTS 下载,GitHub Releases 作备援。
  • 六种语言、十一个声音:英语、尼泊尔语、印地语、越南语、印尼语、中文(以 README 为准)。
  • 自带 espeak-ng 音素器:浏览器演示在设备上做音素化。项目声称每个声音不到 4 MB。
  • 安装路径pip install sanottsnpm install sanotts-web、Arduino zip / PlatformIO lib_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 在卖板。

快速开始

  1. 打开 浏览器演示 打一句。文本不会上传。
  2. 或装 Python:pip install sanotts,然后 sanotts say "Hello from a two megabyte voice." --voice amy -o hello.wav
  3. 声音默认进 ~/.cache/sanotts/。Hugging Face 被墙就设 SANOTTS_VOICE_SOURCE=github
  4. 单片机看 arduino/README.md,从 voices-v1 / voices-v2 刷量化声音包。

第一方资料:GitHub README

常见问题

需要 GPU 吗?

不需要。Python 是 numpy。单片机是 ESP32-S3 上的 int8。

能商用吗?

分发包含它的二进制时,GPL-3.0 要求提供对应源码。去读许可证,本页不是法律意见。

权重点在哪?

Hugging Face ampixa/sanoTTS,GitHub Releases 作备份。

替代方案

使用技巧

  1. 先在浏览器演示里听 heart,再决定要不要刷板。
  2. CI 里钉死 SANOTTS_VOICE_SOURCE,避免 Hugging Face 抽风导致构建失败。
  3. 不要把 GPL 代码随手丢进 MIT/Apache 应用。许可证就是产品约束。

总结

sanoTTS 是给在乎字节和毫瓦、而不是榜分数的人用的 TTS:294k 到 2.3M 的声音家族,能在浏览器或便宜单片机上跑。从 演示仓库 开始。

评论

还没有评论。成为第一个评论的人!