【免费下载链接】sanoTTS
sanoTTS (सानो = 'small' in Nepali): a ~294k-1.4m param neural TTS that runs on a $3 chip or in the browser. Leads SCOREQ/UTMOS in the sub-15M class.
sanoTTS(尼泊尔语中 sano 意为"小")是一款开源的零云端文本转语音(TTS)引擎:仅 294k 到 2.3M 参数的微型神经网络,支持 16 种语言的 30 个声音,能在约 3 美元的芯片上实时运行,也能直接在浏览器里合成语音——全程离线,无需云端服务,无需 API 密钥。
一、先搞懂:离线语音到底解决什么问题
云端 TTS 有四个绕不开的成本,而离线 TTS 全部归零:
| 痛点 | 云端 TTS | sanoTTS 离线文本转语音 |
|---|---|---|
| 网络依赖 | 断网即哑巴 | 完全本地推理,无网络也能发声 |
| 使用费用 | 按字符计费 | 一次部署,永久免费 |
| 隐私 | 文本要上传服务器 | 文字与音频从不离开设备 |
| 响应延迟 | 网络往返 + 排队 | 芯片上毫秒级出音 |
更关键的是,sanoTTS 不是"压缩版的云端模型",而是一套用 C99 写的、连 NPU 都不需要的完整推理栈(README.md)。下面这 5 个场景,是它最实用的落地位置。
二、场景1:🏠 家庭自动化——全屋语音不再出门
在 Home Assistant 中,sanoTTS 是一个本地 TTS 引擎:直接装在 Home Assistant 主机上,无云、无 API key,甚至不需要单独的附加组件容器。
- 完整接入 Assist 语音助手,也可在自动化里调用
tts.speak - 流式朗读:大模型每写完一句话就开始播报,首音延迟仅 0.03 秒
- 单个声音仅 2–3 MB,纯 numpy 推理,无 PyTorch,低端主机也能跑
细节见 custom_components/sanotts/README.md。对"家里断网了门铃报警还播报"这类需求,它就是刚需。
三、场景2:💻 3 美元芯片开口说话——ESP32-S3 硬件 DIY
这是 sanoTTS 最出圈的能力:一块 ESP32-S3 开发板 + 一个小喇叭,就是一台离线语音合成器。
官方独立固件(mcu/ports/esp32s3/README.md)的实测数据:
- 实测 RTF 0.383,即比实时快 2.6 倍;普通标量 C 也能跑,只是偏慢
- 板上集成 espeak-ng 做文字→音素转换,整条链路不出芯片
- 硬件极简:GPIO → LM386 功放 → 8Ω 喇叭
- 想更快上手的话,Arduino / PlatformIO 库(arduino/README.md)打包好了 567k 参数 int8 引擎,克隆仓库即可使用:
git clone https://gitcode.com/gh_mirrors/sa/sanoTTS其他芯片的支持情况与移植方法,完整清单在 docs/mcu-classes-and-porting.md。
四、场景3:🌐 浏览器里的即时 TTS——WebAssembly 零服务器
把 TTS 放进网页,传统做法是转发到后端 API。sanoTTS 的 web/ 演示把整条链路编译成 WebAssembly,在访客浏览器里本地运行:
- 打字、合成、播放全部 client-side,服务器只提供静态文件
heartnano声音在 M 系列 Mac 的无头浏览器里,4.2 秒语音只需51 ms渲染- 集成到自己的站点只需拷几个静态文件,或通过
npm install sanotts-web接入
整条流水线就是图中这条链路:文字 → 音素 ID → 时长模型 → 声学模型 → 解码器 → 22 kHz 音频。无论跑在芯片还是浏览器上,架构完全一致——这也是它能"处处离线"的根本原因。
五、场景4:🔒 隐私敏感环境——数据永不离机
医疗终端、工控面板、内网系统、企业演示机……凡是"数据不能出内网"的场景,云端 TTS 直接出局,而离线文本转语音就是唯一解:
- 推理完全本地,没有任何回调、遥测或回传
- Python 包支持指定本地声音目录,装完后零网络访问(pypkg/sanotts/voicepack.py)
- 推理运行时为 MIT 许可,可嵌入闭源产品(见 LICENSE.MIT)
六、场景5:⚡ 低配设备与旧硬件——没有 GPU 照样流畅
很多人以为"神经网络语音"需要 GPU 或 NPU,其实不然。sanoTTS 的设计目标就是无云端、无 NPU:
- 最小声音
heart-nano仅294k 参数、337 KB(int8),比一张手机壁纸还小 - Python 端纯 numpy 推理:
pip install sanotts后sanotts say "Hello" --voice amy -o hello.wav即出 wav - 在 Home Assistant Core、树莓派、旧笔记本上都能流畅运行,这也是它在 15M 参数以下级别 自然度(SCOREQ/UTMOS)领先同级开源 TTS 的原因
七、30 个声音、16 种语言:支持一览
| 语言 | 代表声音 | 参数规模 |
|---|---|---|
| 英语 🇺🇸 | amy、kristin、heart | 294k – 2.27M |
| 中文 🇨🇳 | chinese | 1.55M |
| 越南语 / 印尼语 | vi / id | 1.46M |
| 德语、法语、西班牙语、俄语、土耳其语等 10 种 | 每种约 1.56M,另有 ~510k 小版 | 0.5M – 1.57M |
完整评分与错误率数据见 README.md 中的表格;各语言声音的浏览器元数据在 web/voices/ 下,例如 web/voices/amy/meta.json。
八、写在最后
离线语音不是"功能降级",而是一种能力自由:断网能说话、数据不出门、成本一次到位、从 3 美元芯片到浏览器通吃。
sanoTTS 用最小的模型证明了:微型神经 TTS 足够好用到覆盖真实场景。如果你想亲自验证,克隆仓库后从浏览器演示或pip install sanotts开始,十分钟就能听到第一个"本地合成"的声音。
【免费下载链接】sanoTTS
sanoTTS (सानो = 'small' in Nepali): a ~294k-1.4m param neural TTS that runs on a $3 chip or in the browser. Leads SCOREQ/UTMOS in the sub-15M class.
相关推荐
提升图像识别精度:sam2_hiera_large.fb_r1024_2pt1参数配置最佳实践
提升图像识别精度:sam2_hiera_large.fb_r1024_2pt1参数配置最佳实践 sam2_hiera_large.fb_r1024_2pt1是基
为什么你的录音转文字需要完全离线处理?Buzz的5大安全优势揭秘
为什么你的录音转文字需要完全离线处理?Buzz的5大安全优势揭秘 当你使用录音转文字功能时,是否想过你的会议内容、客户通话或私人对话正在被上传到云端服务器?在数
语音AI 应用本地部署桌面应用为什么你的小爱音箱需要Spotify语音控制?3个意想不到的使用场景
为什么你的小爱音箱需要Spotify语音控制?3个意想不到的使用场景 你是否曾经历过这样的场景:双手沾满面粉却想切换下一首歌,或是深夜躺在床上发现手机在客厅充电
人工智能大模型语音智能家居交互助手
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考