
源码系统概览
文章正文
这是一套把神经语音合成压到微型设备上的开源系统方案,sanoTTS 家族参数从 294k 到 2.3M,运行完全离线,不依赖云服务也不依赖 NPU,实测在约 3 美元的 ESP32-S3 上用 int8 SIMD 内核可达 RTF 0.383 实时。
底层项目由作者 Ampixa 开源,仓库获 748 star 关注,采用 GPL-3.0-or-later 与 MIT 双协议发布,主引擎 mcu 部分按 Apache-2.0 授权,生成 30 种音色覆盖 16 种语言含中文,对应版本 v1.0.0 最后更新 2026 年 9 月,更新日志完整,配套 Arduino 库与 PlatformIO 包、npmpkg 浏览器运行时与 iOS/Android/Flutter 绑定。
源码简介
想让设备开口说话又不想上云,多数方案要云 TTS 或专用 NPU,这套框架把全部模型压到几 MB 内,几百 KB 权重就能在单片机上跑。
核心是 int8 的文本到语音全栈,从音素到时长再到解码器一路量化,在 ESP32-S3 上用 SIMD 内核实时合成 22kHz PCM,浏览器端走 WASM 同样免服务器。
从 Arduino 库、ESPHome 组件、Home Assistant 插件到手机 App 都能接,语音权重存于 HuggingFace 与作者仓库,按需懒加载。
vs Piper 与 espeak-ng 等替代品,区别在把全栈神经 TTS 压到微型芯片与浏览器端,参数规模小一到两个量级。
这和云端部署不同,本地可控性更强。
| 对比维度 | sanoTTS | Piper / espeak-ng 传统语音引擎 |
|---|---|---|
| 部署形态 | 本地芯片/浏览器 WASM | 服务端或云端 API |
| 参数规模 | 294k-2.3M 微型 | 数十 M 到数 G |
| 运行硬件 | 约3美元 MCU 免 NPU | 依赖 GPU/NPU 加速 |
| 二次开发 | GPL-3.0/MIT 双协议 | 部分闭源或商业授权 |
想给嵌入式或网页加个本地语音,拉源码按板级说明烧录或接 npm 包就能用。
适用场景
- ESP32-S3 等低成本开发板做语音交互,无网也能本地合成
- 浏览器网页实时朗读,WASM 免服务器免 API key
- Home Assistant / ESPHome 本地 TTS 语音播报,数据不出本机
- iOS / Android / Flutter App 离线朗读,按字符不计费
技术栈与运行环境
压缩包大小: 约209MB
核心运行时: C99 int8 引擎(snt_tts.c)
训练侧: Python + PyTorch
浏览器: WebAssembly(espeak-ng 音素器 + 推理栈)
MCU: Arduino / PlatformIO / ESP-IDF / 移动绑定
协议: GPL-3.0 + MIT + Apache-2.0
一套 C99 核心通吃各平台,mcu 提供 int8 iSTFT 引擎,npcs 打包 WASM 运行时约 2.7MB,语音权重按需从 HuggingFace 流式加载。
Arduino 库把权重打包为标准 zip,PlatformIO 与 ESPHome 组件、Home Assistant 自定义组件均可直接引用,附带 BoardBenchmark 脚本测板级 RTF。
功能亮点
- 294k 到 2.3M 参数微型家族,0.3-8.7MB 权重按精度可选
- ESP32-S3 实时合成,SIMD 内核 RTF 0.383 快于播放
- 浏览器 WASM 免服务器,30 种音色 16 种语言含中文
- Arduino/PlatformIO/ESPHome/Home Assistant 全家桶接入
- iOS/Android/Flutter 三端 C API 绑定,离线免付费
- espeak-ng 音素器内置,zero 运行时依赖
技术架构与部署指南
安装与部署提示
网页端最快,浏览器直接打开演示页即可试听,无需部署。
npm install sanotts-web
Python 侧通过 pypkg 调用合成接口。
python -m sanotts --text "你好世界" --voice zh-xiaoya
ESP32 端用 Arduino IDE 导入 SanoTTS.zip 再跑 BoardBenchmark 示例。
cd arduino && zip -r ../SanoTTS.zip .
截图与演示说明


首图出自项目 README,展示三十种音色与十六种语言覆盖面,浏览器与 3 美元 ESP32-S3 芯片双端都能实时合成,整张图交代了微型语音的定位。
第二张为信号路径图,呈现从音素到时长、声学、解码再到 PCM 的完整流水线,帮助理解端到端离线合成内部量化交错。
常见问题
问. 它是开源的吗
采用 GPL-3.0-or-later 与 MIT 双协议,mcu 运行时按 Apache-2.0 导出,可自由使用与二次开发。
问. 能在没有 GPU 的设备上跑吗
可以,约3美元 ESP32-S3 即可实时合成,浏览器 WASM 也能免服务器运行。
问. 支持中文吗
支持,30 种音色覆盖 16 种语言,中文音色开箱即用。
问. 需要网络吗
浏览器与 MCU 端均离线运行,仅首次加载权重需要网络。
安全风险提示
语音权重从 HuggingFace 与作者 GitHub releases 下载,均属作者本人仓库,来源可信,无已知后门。
安全扫描命中 34 条 medium 全为 PyTorch model.eval() 误报,未发现真实风险。
母带为 GPL-3.0 代码(如 espeak-ng 音素器),分发固件镜像时需按 GPL 义务提供对应源码。
下载说明
本页提供 sanoTTS 微型神经语音完整源码下载,含 C 核心、MCU 端口、Arduino 库、npm 包、手机绑定与全部语音权重。
压缩包超 100MB,提供百度网盘与 123 云盘下载,解压后按各端 README 部署。
GitHub项目开源地址 https://github.com/Ampixa/sanoTTS