SAVRN
Search Contact SAVRN

Open-weight model · Text to speech

sanoTTS

by Ampixa Labs ampixa/sanoTTS

sano (सानो) — Nepali for "small." A family of tiny neural text-to-speech voices — 294k to 2.27M parameters — that run with LM386 and a speaker), or live in the browser via WASM. every voice synthesizes your text live in the browser, no server, no upload.

Parameters
Context
Weights298.5 MB
Licensegpl-3.0
AccessOpen weights
Monthly Downloads163.6k

Model Card

By Ampixa Labs, published under gpl-3.0, revision c532a5d21c07.

sano (सानो) — Nepali for "small." A family of tiny neural text-to-speech voices — 294k to 2.27M parameters — that run with LM386 and a speaker), or live in the browser via WASM. every voice synthesizes your text live in the browser, no server, no upload. Both packages stream their weights from this repo by default. Python needs sanotts >= 0.3.0, the browser sanotts-web >= 0.3.0. Both fall back to the GitHub releases or the Pages host if Hugging Face cannot be reached, so an outage here cannot break an install. Python packages land in ~/.cache/sanotts/; set SANOTTSVOICESOURCE=hf or =github to pin one host. In the browser, passing voiceBase yourself turns the fallback off, so a self-hosted…

Read Ampixa Labs's full model card

sanoTTS — a tiny neural voice that runs anywhere

sano (सानो) — Nepali for "small." A family of tiny neural text-to-speech voices — 294k to 2.27M parameters — that run with no cloud and no NPU: real-time on a ~$3 ESP32-S3 (out a GPIO into an LM386 and a speaker), or live in the browser via WASM.

Parameter range 294,279 – 2,272,145
Runs real-time on a $3 microcontroller ESP32-S3, out a GPIO into an LM386
Runs in the browser WebAssembly, no server
Per-voice footprint 337 KB to 8.7 MB, zero dependencies (espeak-ng phonemizer included)
Coverage 11 voices across 6 languages — English, Nepali (नेपाली), Hindi (हिन्दी), Vietnamese (Tiếng Việt), Indonesian (Bahasa), Chinese (中文)
License open source, GPL-3.0

Live demo: tts.ampixa.com/sanoTTS — every voice synthesizes your text live in the browser, no server, no upload.

Download

Both packages stream their weights from this repo by default.

import sanotts
sanotts.synthesize("Hello world", voice="heart")     # downloads heart/ from here
import { SanoTTS } from 'sanotts-web';               // fetches web/voices/ from here
const tts = await SanoTTS.load();
const result = await tts.synthesize('Hello world', { voice: 'heart' });

Python needs sanotts >= 0.3.0, the browser sanotts-web >= 0.3.0. Both fall back to the GitHub releases or the Pages host if Hugging Face cannot be reached, so an outage here cannot break an install. Python packages land in ~/.cache/sanotts/; set SANOTTS_VOICE_SOURCE=hf or =github to pin one host. In the browser, passing voiceBase yourself turns the fallback off, so a self-hosted deployment never quietly reaches back to our servers.

Samples

Two clips per voice are in this repo's samples/ folder; one is embedded below. "Package here" means this repo carries that voice's weights. The three languages without one currently ship only through the browser demo and the GitHub repo's web/voices/ — their packages haven't been exported yet.

Voice Language Params SCOREQ Package here Sample
heart English 2.27 M 3.48 heart/
hfc English 1.83 M 3.94 hfc-en-1p8m/
amy English 1.46 M 4.13 amy-en-1p46m/
kristin English 1.40 M 4.09 kristin-en-1p4m/
amy-small English 1.08 M 3.70 amy-en-1p1m/
robot (on-device, int8) English 567 k not packaged here (int8 MCU format)
heart-nano English 294 k 2.29 heartnano/
Indonesian Bahasa 1.46 M id-newstts-1p46m/
Vietnamese Tiếng Việt 1.46 M vi-vais1000-1p46m/
Nepali नेपाली 1.47 M not exported yet — see web/voices/nepali/ in the GitHub repo
Hindi हिन्दी 1.50 M not exported yet — see web/voices/hindi/ in the GitHub repo
Chinese 中文 1.50 M not exported yet — see web/voices/chinese/ in the GitHub repo

SCOREQ is a no-reference naturalness predictor, higher is better; it is only reported for the English voices, which share one 24-sentence eval set. The other languages haven't been scored against a comparable reference yet.

Size does not order this table, and we are not going to pretend it does. amy at 1.46M scores higher than heart at 2.27M because they come from different teachers and different architectures, not because one is bigger. amy and the voices above it are the piperlite lineage, distilled from a Piper/VITS teacher at 22.05 kHz. heart and heart-nano are the newer nano lineage — 24 kHz, mel-100 → ConvNeXt1D → iSTFT, distilled from a Kokoro teacher through a frozen Vocos — which is the one that quantizes to int8 and runs on a microcontroller. The two are not interchangeable and the sanotts package picks the right runtime for you.

The heart and heart-nano scores were re-measured on 2026-09-04; the eval set, checkpoint hashes, exact commands and all 24 per-clip scores are in evidence/heart-diverse24-remeasure-20260904.json. They were scored on the float32 reference render. The shipped heart-nano int8 export tracks that render at 0.981 waveform correlation, and heart ships as float32 because its int8 export reached only 0.951 against a 0.98 gate.

The "robot" row is the 567,008-parameter model that runs on the ESP32-S3.

Install & use

Platform Install Then
Python pip install sanotts sanotts say "Hello" --voice heart -o hello.wav
Web (npm) npm install sanotts-web const tts = await SanoTTS.load(); await tts.synthesize('Hello', {voice:'heart'})
Web (no build) copy dist/ + voices/ see Deploy on your own site in the GitHub README
Arduino / PlatformIO zip-install or lib_deps = https://github.com/Ampixa/sanoTTS.git arduino/README.md
Hugging Face this repo the voice packages above, downloaded for you by pip install sanotts
Browser nothing tts.ampixa.com/sanoTTS

Pip voices: heart, hfc, amy-1p8m, amy, kristin, vi, id, amy-1p1m, heart-nano. Pure numpy inference, no torch, no onnxruntime.

How it stacks up

Open small-scale TTS on an honest gate — a diverse 24-sentence set scored with the same no-reference suite (SCOREQ / UTMOS are naturalness predictors, DNSMOS-SIG is signal quality; higher is better). Parameter counts are inference-time and exclude the shared external G2P.

System Params SCOREQ UTMOS DNS-SIG
sanoTTS (amy) 1.46 M 4.13 4.10 3.61
TinyTTS 1.62 M 3.94 3.65 3.62
Inflect Nano 4.63 M 3.81 3.65 3.58
Kitten TTS nano 15 M 3.02 3.58 3.43
Piper (our teacher) ~15 M 4.71 4.47 3.65
Kokoro 82 M 4.89 4.52 3.69

sanoTTS is the smallest model here and the best on naturalness (SCOREQ and UTMOS) among everything up to 15M params — beating TinyTTS while being smaller. On DNSMOS-SIG, TinyTTS edges us by 0.01 — no single metric tells the whole story. It's the only one that runs a full neural stack on a $3 MCU. The frontier only pulls ahead at Piper, the ~15M teacher we distilled from, and Kokoro (82M, 56× larger) — a gap we don't claim to close. Reproduce it with tools/eval_mos_all.py + tools/eval_scorecard.py in the GitHub repo.

Shipped-file sizes: sanoTTS amy 2.8 MB fp16 and TinyTTS 3.5 MB fp16, both verified from the released files; Kokoro's ~330 MB fp32 is its widely cited public figure.

How it works

espeak-ng provides phoneme IDs; a duration model predicts timing; an acoustic model predicts generator latents; a decoder renders audio. The piperlite voices (amy, kristin, hfc, and the other languages) use a compact time-domain decoder running in fp32 at 22.05 kHz. The nano voices (heart, heart-nano) and the 567,008-parameter on-device model use an iSTFT decoder at 24 kHz, quantized to int8 where it has to fit and run in real time on the ESP32-S3. Models are distilled from a Piper/VITS or Kokoro teacher — see docs/distillation-recipe.md in the GitHub repo for the full recipe.

Deploy

Links

License

GPLv3 — see LICENSE. The pipeline builds on GPLv3 components (notably espeak-ng for G2P, and piper), so the project as a whole is GPLv3.

Copyright (C) 2026 Ampixa.

Files here

Two package layouts, because there are two graphs.

piperlite (amy-en-1p46m/, kristin-en-1p4m/, hfc-en-1p8m/, amy-en-1p1m/, id-newstts-1p46m/, vi-vais1000-1p46m/) — a flat fp16 blob addressed by manifest offsets:

manifest.json                 weights.fp16.bin
piper-phoneme-config.json     (+ sibilant-injection calibration where applicable)

nano (heart/, heartnano/) — the mel-100 stack, two blobs plus the generated offset header:

meta.json          lineage, per-file sha256, sample rate, vocab
front_*.bin        duration + acoustic
model_*.bin        decoder
nano_q8_meta.h     tensor offsets

heartnano/ ships *_q8.bin (int8, 345,232 bytes total); heart/ ships *_f32.bin (float32, 9,137,920 bytes) because its int8 export missed the fidelity gate. Both layouts are consumed by the sanotts Python package and the portable C runtime.

web/voices/ is a third thing and exists for the browser. The piperlite voices ship there as front_f32.bin + dec_f32.bin, a different artifact from the weights.fp16.bin the Python package reads, which is why the same voice appears twice in this repo under two names. It mirrors web/ in the GitHub repo byte for byte and is what sanotts-web fetches. The nano voices are not duplicated: web/voices/heart/ and heart/ hold the same blobs.

samples/ holds the audio clips embedded above (mp3, one or two per voice, plus the on-device mcu-567k.mp3), and evidence/ the eval report behind the heart scores.

Identity and Version

Repository
ampixa/sanoTTS
Publisher
Ampixa Labs
Task
Text to speech
Modality
Audio
Library
sanotts
Parameters
Not stated by the source
Languages
en, ne, hi, vi, id, zh
Revision
c532a5d21c078a16cb633718e9182bfd71a5b760
First published
2026-07-13
Last updated
2026-09-10

Files and Weights

298 files, 300.6 MB in total. The weights are 113 files totalling 298.5 MB in bin, gguf, npz.

Weights113 files · 298.5 MB
Configuration106 files · 1.3 MB
Documentation54 files · 222.5 KB
Other24 files · 607.3 KB
Repository1 file · 2.7 KB
Every file
FileTypeSizeSHA-256
amy-en-1p1m/weights.fp16.binWeights2.2 MB b45240e7c24a
amy-en-1p46m/sibilant-injection/calib.npzWeights1.3 KB 4e4723af1553
amy-en-1p46m/weights.fp16.binWeights2.9 MB 8a5e3665640c
amy-en-1p8m/sibilant-injection/calib.npzWeights1.3 KB 4e4723af1553
amy-en-1p8m/weights.fp16.binWeights3.7 MB bf2daa62fc65
ar-kareem-1p57m/weights.fp16.binWeights3.1 MB 7239f6dd4a82
cs-jirka-0p51m/weights.fp16.binWeights1.0 MB 976568682bf1
cs-jirka-1p57m/weights.fp16.binWeights3.1 MB 46cd6d3cdf09
de-thorsten-0p51m/weights.fp16.binWeights1.0 MB c1d58bca79bc
de-thorsten-1p57m/weights.fp16.binWeights3.1 MB ddecc2f8db2f
es-davefx-0p51m/weights.fp16.binWeights1.0 MB a235972eea8e
es-davefx-1p56m/weights.fp16.binWeights3.1 MB 063f3e7c69a8
fr-siwis-1p57m/weights.fp16.binWeights3.1 MB 1adb251d94de
gguf/amy/amy-f32.ggufWeights5.8 MB d0e0a8dc2d2a
gguf/cs/cs-f32.ggufWeights6.3 MB de03447471ff
gguf/de/de-f32.ggufWeights6.3 MB 267c56420162
gguf/es/es-f32.ggufWeights6.3 MB 2d7815e340ad
gguf/fr/fr-f32.ggufWeights6.3 MB 00270dfec1b0
gguf/heart-nano-f32.ggufWeights1.2 MB 9e9fddfc10c2
gguf/heart-nano.ggufWeights357.2 KB a6078a52ccb3
gguf/heart.ggufWeights9.2 MB cccbcbe624a9
gguf/heart/heart-f32.ggufWeights9.1 MB b2096b1931f7
gguf/hfc/hfc-f32.ggufWeights7.4 MB 0cfdf86140c8
gguf/hi/hi-f32.ggufWeights6.0 MB 0c1ec8e0ac28
gguf/id/id-f32.ggufWeights6.3 MB 6eb7c447e31e
gguf/it/it-f32.ggufWeights6.3 MB e462520e0404
gguf/kristin/kristin-f32.ggufWeights5.6 MB 7ae11f19a04e
gguf/ne/ne-f32.ggufWeights5.9 MB 4933083abfe7
gguf/pt/pt-f32.ggufWeights6.3 MB aa80b204bc6e
gguf/ro/ro-f32.ggufWeights6.3 MB d15a3b02b57a
gguf/ru/ru-f32.ggufWeights6.3 MB 9e84e999f1a1
gguf/tr/tr-f32.ggufWeights6.3 MB 0edf477899db
gguf/vi/vi-f32.ggufWeights6.3 MB a0bb03936b3f
heart/front_f32.binWeights3.3 MB 02e8086ebedf
heart/model_f32.binWeights5.9 MB 2d685fc751bc
heartnano/front_q8.binWeights109.3 KB 5553ae5abf37
heartnano/model_q8.binWeights235.9 KB 4a6cdf0d0bf1
hfc-en-1p8m/weights.fp16.binWeights3.7 MB ad1c06f41d91
id-newstts-1p46m/sibilant-injection/calib.npzWeights1.3 KB 0fd1dffc151d
id-newstts-1p46m/weights.fp16.binWeights3.1 MB 14eb693f8ea7
it-serena-0p51m/weights.fp16.binWeights1.0 MB 265c349e124e
it-serena-1p57m/weights.fp16.binWeights3.1 MB 5eac3ddd3598
kristin-en-1p4m/weights.fp16.binWeights2.8 MB 4691dc92d21f
pt-cadu-0p51m/weights.fp16.binWeights1.0 MB a6d3e32d4f12
pt-cadu-1p57m/weights.fp16.binWeights3.1 MB c3cdaa13c519
ro-mihai-0p51m/weights.fp16.binWeights1.0 MB 4a550633c8bd
ro-mihai-1p57m/weights.fp16.binWeights3.1 MB 670228abd8e9
ru-irina-0p51m/weights.fp16.binWeights1.0 MB 082c75f3f740
ru-irina-1p57m/weights.fp16.binWeights3.1 MB dffff44808e2
tr-dfki-0p51m/weights.fp16.binWeights1.0 MB a6ea40fd831c
tr-dfki-1p56m/weights.fp16.binWeights3.1 MB 153347717211
vi-vais1000-1p46m/sibilant-injection/calib.npzWeights1.3 KB bc0cc60e1daf
vi-vais1000-1p46m/weights.fp16.binWeights3.1 MB eef846da5cab
web/voices/amy/dec_f32.binWeights4.0 MB f520bcbf2786
web/voices/amy/front_f32.binWeights1.8 MB 9bc304dd1db3
web/voices/arabic/dec_f16.binWeights1.5 MB a9e7d91c99d0
web/voices/arabic/front_f16.binWeights1.7 MB e35f1d908b4a
web/voices/chinese-xiaoya/dec_f16.binWeights1.5 MB 95f16b0e9c6f
web/voices/chinese-xiaoya/front_f16.binWeights1.6 MB b54364e52378
web/voices/chinese/dec_f32.binWeights2.6 MB c994f980de6d
web/voices/chinese/front_f32.binWeights3.4 MB 34e5d7498cd4
web/voices/czech-tiny/dec_f16.binWeights630.4 KB 5c14aea0371e
web/voices/czech-tiny/front_f16.binWeights396.5 KB 7bc0430a78a0
web/voices/czech/dec_f16.binWeights1.5 MB ad304c68acc8
web/voices/czech/front_f16.binWeights1.7 MB e257d53dbbc3
web/voices/french/dec_f16.binWeights1.5 MB 92a63f111af3
web/voices/french/front_f16.binWeights1.7 MB e9115e2e5859
web/voices/german-tiny/dec_f16.binWeights630.4 KB 236408ce5f4a
web/voices/german-tiny/front_f16.binWeights393.8 KB f6927f6c2767
web/voices/german/dec_f16.binWeights1.5 MB e0d8a27e2b33
web/voices/german/front_f16.binWeights1.7 MB e6426502e593
web/voices/heart/front_f32.binWeights3.3 MB 02e8086ebedf
web/voices/heart/model_f32.binWeights5.9 MB 2d685fc751bc
web/voices/heartnano/front_q8.binWeights109.3 KB 5553ae5abf37
web/voices/heartnano/model_q8.binWeights235.9 KB 4a6cdf0d0bf1
web/voices/hfc/dec_f32.binWeights4.0 MB 922e0d4210f6
web/voices/hfc/front_f32.binWeights3.3 MB c3f4631101e8
web/voices/hindi/dec_f32.binWeights2.6 MB 0df0527a221c
web/voices/hindi/front_f32.binWeights3.4 MB ae6f5ec73e7c
web/voices/indonesian/dec_f32.binWeights2.9 MB fb567001e0ef
web/voices/indonesian/front_f32.binWeights3.3 MB 2e9b5efde02d
web/voices/italian-tiny/dec_f16.binWeights630.4 KB 67ca0df64711
web/voices/italian-tiny/front_f16.binWeights394.0 KB de1c96f70990
web/voices/italian/dec_f16.binWeights1.5 MB 0251b714088c
web/voices/italian/front_f16.binWeights1.7 MB e8ef946cceb2
web/voices/kristin/dec_f32.binWeights4.0 MB 87e061c82b46
web/voices/kristin/front_f32.binWeights1.6 MB b1b099ae95e9
web/voices/nepali/dec_f32.binWeights2.6 MB 4877d98a7966
web/voices/nepali/front_f32.binWeights3.3 MB d8dd37153f65
web/voices/portuguese-tiny/dec_f16.binWeights630.4 KB 2dbd62b00e3a
web/voices/portuguese-tiny/front_f16.binWeights393.8 KB 77519519b6b3
web/voices/portuguese/dec_f16.binWeights1.5 MB 6831fba0c656
web/voices/portuguese/front_f16.binWeights1.7 MB cff989ce3fc0
web/voices/romanian-tiny/dec_f16.binWeights630.4 KB 2302c9f14c22
web/voices/romanian-tiny/front_f16.binWeights393.6 KB 84e1edcef577
web/voices/romanian/dec_f16.binWeights1.5 MB e4161ee8176c
web/voices/romanian/front_f16.binWeights1.7 MB c68bc86c52d1
web/voices/russian-tiny/dec_f16.binWeights630.4 KB e886db8dd66e
web/voices/russian-tiny/front_f16.binWeights395.2 KB 4b2186d71188
web/voices/russian/dec_f16.binWeights1.5 MB e794c358df9f
web/voices/russian/front_f16.binWeights1.7 MB 0e842f691630
web/voices/spanish-tiny/dec_f16.binWeights630.4 KB 526483832af7
web/voices/spanish-tiny/front_f16.binWeights391.4 KB a0c1d71cd608
web/voices/spanish/dec_f16.binWeights1.5 MB a9489c527d4a
web/voices/spanish/front_f16.binWeights1.7 MB 8b21c02036a3
web/voices/trellis/bundle.binWeights4.0 MB 1d102317e142
web/voices/turkish-tiny/dec_f16.binWeights630.4 KB d7f9a51c8ff7
web/voices/turkish-tiny/front_f16.binWeights390.8 KB 55af5a3cc497
web/voices/turkish/dec_f16.binWeights1.5 MB 08da01881d47
web/voices/turkish/front_f16.binWeights1.7 MB 145ba3b6fd26
web/voices/vietnamese/dec_f32.binWeights2.9 MB 73a022d9dc27
web/voices/vietnamese/front_f32.binWeights3.3 MB 85bfca9ea8ca
zh-xiaoya-1p55m/weights.fp16.binWeights3.1 MB ec4faabed7e4
amy-en-1p1m/manifest.jsonConfiguration41.6 KB
amy-en-1p1m/piper-phoneme-config.jsonConfiguration4.9 KB
amy-en-1p46m/manifest.jsonConfiguration41.7 KB
amy-en-1p46m/piper-phoneme-config.jsonConfiguration4.9 KB
amy-en-1p46m/sibilant-injection/config.jsonConfiguration181 B
amy-en-1p8m/manifest.jsonConfiguration41.7 KB
amy-en-1p8m/piper-phoneme-config.jsonConfiguration4.9 KB
amy-en-1p8m/sibilant-injection/config.jsonConfiguration181 B
ar-kareem-1p57m/manifest.jsonConfiguration43.1 KB
ar-kareem-1p57m/piper-phoneme-config.jsonConfiguration5.0 KB
cs-jirka-0p51m/manifest.jsonConfiguration41.5 KB
cs-jirka-0p51m/piper-phoneme-config.jsonConfiguration5.0 KB
cs-jirka-1p57m/manifest.jsonConfiguration43.1 KB
cs-jirka-1p57m/piper-phoneme-config.jsonConfiguration5.0 KB
de-thorsten-0p51m/manifest.jsonConfiguration41.5 KB
de-thorsten-0p51m/piper-phoneme-config.jsonConfiguration4.8 KB
de-thorsten-1p57m/manifest.jsonConfiguration43.1 KB
de-thorsten-1p57m/piper-phoneme-config.jsonConfiguration4.8 KB
es-davefx-0p51m/manifest.jsonConfiguration41.5 KB
es-davefx-0p51m/piper-phoneme-config.jsonConfiguration4.8 KB
es-davefx-1p56m/manifest.jsonConfiguration43.1 KB
es-davefx-1p56m/piper-phoneme-config.jsonConfiguration4.8 KB
evidence/heart-diverse24-remeasure-20260904.jsonConfiguration21.0 KB
fr-siwis-1p57m/manifest.jsonConfiguration43.0 KB
fr-siwis-1p57m/piper-phoneme-config.jsonConfiguration4.9 KB
gguf/amy/config.jsonConfiguration2.7 KB
gguf/config.jsonConfiguration489 B
gguf/cs/config.jsonConfiguration2.7 KB
gguf/de/config.jsonConfiguration2.6 KB
gguf/es/config.jsonConfiguration2.6 KB
gguf/fr/config.jsonConfiguration2.7 KB
gguf/heart/config.jsonConfiguration489 B
gguf/hfc/config.jsonConfiguration2.7 KB
gguf/hi/config.jsonConfiguration2.8 KB
gguf/id/config.jsonConfiguration2.7 KB
gguf/it/config.jsonConfiguration2.7 KB
gguf/kristin/config.jsonConfiguration2.7 KB
gguf/ne/config.jsonConfiguration2.8 KB
gguf/pt/config.jsonConfiguration2.8 KB
gguf/ro/config.jsonConfiguration2.7 KB
gguf/ru/config.jsonConfiguration2.6 KB
gguf/tr/config.jsonConfiguration2.7 KB
gguf/vi/config.jsonConfiguration2.7 KB
heart/meta.jsonConfiguration1.3 KB
heartnano/meta.jsonConfiguration1.3 KB
hfc-en-1p8m/manifest.jsonConfiguration41.7 KB
hfc-en-1p8m/piper-phoneme-config.jsonConfiguration5.0 KB
id-newstts-1p46m/manifest.jsonConfiguration41.7 KB
id-newstts-1p46m/piper-phoneme-config.jsonConfiguration5.0 KB
id-newstts-1p46m/sibilant-injection/config.jsonConfiguration181 B
it-serena-0p51m/manifest.jsonConfiguration41.5 KB
it-serena-0p51m/piper-phoneme-config.jsonConfiguration5.0 KB
it-serena-1p57m/manifest.jsonConfiguration43.1 KB
it-serena-1p57m/piper-phoneme-config.jsonConfiguration5.0 KB
kristin-en-1p4m/manifest.jsonConfiguration45.6 KB
kristin-en-1p4m/piper-phoneme-config.jsonConfiguration5.0 KB
pt-cadu-0p51m/manifest.jsonConfiguration41.5 KB
pt-cadu-0p51m/piper-phoneme-config.jsonConfiguration5.0 KB
pt-cadu-1p57m/manifest.jsonConfiguration43.1 KB
pt-cadu-1p57m/piper-phoneme-config.jsonConfiguration5.0 KB
ro-mihai-0p51m/manifest.jsonConfiguration41.5 KB
ro-mihai-0p51m/piper-phoneme-config.jsonConfiguration4.9 KB
ro-mihai-1p57m/manifest.jsonConfiguration43.1 KB
ro-mihai-1p57m/piper-phoneme-config.jsonConfiguration4.9 KB
ru-irina-0p51m/manifest.jsonConfiguration41.5 KB
ru-irina-0p51m/piper-phoneme-config.jsonConfiguration4.8 KB
ru-irina-1p57m/manifest.jsonConfiguration43.1 KB
ru-irina-1p57m/piper-phoneme-config.jsonConfiguration4.8 KB
tr-dfki-0p51m/manifest.jsonConfiguration41.5 KB
tr-dfki-0p51m/piper-phoneme-config.jsonConfiguration5.0 KB
tr-dfki-1p56m/manifest.jsonConfiguration43.1 KB
tr-dfki-1p56m/piper-phoneme-config.jsonConfiguration5.0 KB
vi-vais1000-1p46m/manifest.jsonConfiguration41.7 KB
vi-vais1000-1p46m/piper-phoneme-config.jsonConfiguration4.9 KB
vi-vais1000-1p46m/sibilant-injection/config.jsonConfiguration181 B
web/voices/amy/meta.jsonConfiguration1.2 KB
web/voices/arabic/meta.jsonConfiguration1.5 KB
web/voices/chinese-xiaoya/meta.jsonConfiguration2.7 KB
web/voices/chinese/meta.jsonConfiguration1.2 KB
web/voices/czech-tiny/meta.jsonConfiguration1.5 KB
web/voices/czech/meta.jsonConfiguration1.5 KB
web/voices/french/meta.jsonConfiguration1.5 KB
web/voices/german-tiny/meta.jsonConfiguration1.5 KB
web/voices/german/meta.jsonConfiguration1.5 KB
web/voices/heart/meta.jsonConfiguration1.2 KB
web/voices/heartnano/meta.jsonConfiguration1.2 KB
web/voices/hfc/meta.jsonConfiguration1.2 KB
web/voices/hindi/meta.jsonConfiguration1.2 KB
web/voices/indonesian/meta.jsonConfiguration1.2 KB
web/voices/italian-tiny/meta.jsonConfiguration1.5 KB
web/voices/italian/meta.jsonConfiguration1.5 KB
web/voices/kristin/meta.jsonConfiguration1.0 KB
web/voices/nepali/meta.jsonConfiguration1.2 KB
web/voices/portuguese-tiny/meta.jsonConfiguration1.5 KB
web/voices/portuguese/meta.jsonConfiguration1.5 KB
web/voices/romanian-tiny/meta.jsonConfiguration1.5 KB
web/voices/romanian/meta.jsonConfiguration1.5 KB
web/voices/russian-tiny/meta.jsonConfiguration1.5 KB
web/voices/russian/meta.jsonConfiguration1.5 KB
web/voices/spanish-tiny/meta.jsonConfiguration1.5 KB
web/voices/spanish/meta.jsonConfiguration1.5 KB
web/voices/turkish-tiny/meta.jsonConfiguration1.5 KB
web/voices/turkish/meta.jsonConfiguration1.5 KB
web/voices/vietnamese/meta.jsonConfiguration1.2 KB
zh-xiaoya-1p55m/manifest.jsonConfiguration43.1 KB
zh-xiaoya-1p55m/piper-phoneme-config.jsonConfiguration2.9 KB
README.mdDocumentation13.1 KB
amy-en-1p1m/README.mdDocumentation569 B
amy-en-1p1m/runtime-kernels.mdDocumentation6.5 KB
amy-en-1p46m/README.mdDocumentation569 B
amy-en-1p46m/runtime-kernels.mdDocumentation6.5 KB
amy-en-1p8m/README.mdDocumentation569 B
amy-en-1p8m/runtime-kernels.mdDocumentation6.5 KB
ar-kareem-1p57m/README.mdDocumentation566 B
ar-kareem-1p57m/runtime-kernels.mdDocumentation7.7 KB
cs-jirka-0p51m/README.mdDocumentation564 B
cs-jirka-0p51m/runtime-kernels.mdDocumentation7.8 KB
cs-jirka-1p57m/README.mdDocumentation566 B
cs-jirka-1p57m/runtime-kernels.mdDocumentation7.7 KB
de-thorsten-0p51m/README.mdDocumentation564 B
de-thorsten-0p51m/runtime-kernels.mdDocumentation7.8 KB
de-thorsten-1p57m/README.mdDocumentation566 B
de-thorsten-1p57m/runtime-kernels.mdDocumentation7.7 KB
es-davefx-0p51m/README.mdDocumentation564 B
es-davefx-0p51m/runtime-kernels.mdDocumentation7.8 KB
es-davefx-1p56m/README.mdDocumentation566 B
es-davefx-1p56m/runtime-kernels.mdDocumentation7.7 KB
fr-siwis-1p57m/README.mdDocumentation566 B
fr-siwis-1p57m/runtime-kernels.mdDocumentation7.7 KB
gguf/README.mdDocumentation2.3 KB
hfc-en-1p8m/README.mdDocumentation569 B
hfc-en-1p8m/runtime-kernels.mdDocumentation6.5 KB
id-newstts-1p46m/README.mdDocumentation569 B
id-newstts-1p46m/runtime-kernels.mdDocumentation6.5 KB
it-serena-0p51m/README.mdDocumentation564 B
it-serena-0p51m/runtime-kernels.mdDocumentation7.8 KB
it-serena-1p57m/README.mdDocumentation566 B
it-serena-1p57m/runtime-kernels.mdDocumentation7.7 KB
kristin-en-1p4m/README.mdDocumentation569 B
kristin-en-1p4m/runtime-kernels.mdDocumentation6.3 KB
pt-cadu-0p51m/README.mdDocumentation564 B
pt-cadu-0p51m/runtime-kernels.mdDocumentation7.8 KB
pt-cadu-1p57m/README.mdDocumentation566 B
pt-cadu-1p57m/runtime-kernels.mdDocumentation7.7 KB
ro-mihai-0p51m/README.mdDocumentation564 B
ro-mihai-0p51m/runtime-kernels.mdDocumentation7.8 KB
ro-mihai-1p57m/README.mdDocumentation566 B
ro-mihai-1p57m/runtime-kernels.mdDocumentation7.7 KB
ru-irina-0p51m/README.mdDocumentation564 B
ru-irina-0p51m/runtime-kernels.mdDocumentation7.8 KB
ru-irina-1p57m/README.mdDocumentation566 B
ru-irina-1p57m/runtime-kernels.mdDocumentation7.7 KB
tr-dfki-0p51m/README.mdDocumentation564 B
tr-dfki-0p51m/runtime-kernels.mdDocumentation7.8 KB
tr-dfki-1p56m/README.mdDocumentation566 B
tr-dfki-1p56m/runtime-kernels.mdDocumentation7.7 KB
vi-vais1000-1p46m/README.mdDocumentation569 B
vi-vais1000-1p46m/runtime-kernels.mdDocumentation6.5 KB
zh-xiaoya-1p55m/README.mdDocumentation566 B
zh-xiaoya-1p55m/runtime-kernels.mdDocumentation7.7 KB
heart/nano_q8_meta.hOther7.3 KB
heartnano/nano_q8_meta.hOther6.4 KB
samples/chinese-1.mp3Other12.5 KB
samples/chinese-2.mp3Other18.8 KB
samples/english-amy-1.mp3Other40.6 KB
samples/english-amy-2.mp3Other38.6 KB
samples/english-amy-small-1.mp3Other41.6 KB
samples/english-heart-1.mp3Other17.3 KB
samples/english-heart-2.mp3Other41.7 KB
samples/english-heart-nano-1.mp3Other17.4 KB
samples/english-heart-nano-2.mp3Other41.1 KB
samples/english-hfc-1.mp3Other32.5 KB
samples/english-hfc-2.mp3Other31.1 KB
samples/english-kristin-1.mp3Other36.2 KB
samples/english-kristin-2.mp3Other35.1 KB
samples/hindi-1.mp3Other18.0 KB
samples/hindi-2.mp3Other30.5 KB
samples/indonesian-1.mp3Other19.0 KB
samples/indonesian-2.mp3Other26.5 KB
samples/mcu-567k.mp3Other30.3 KB
samples/nepali-1.mp3Other15.3 KB
samples/nepali-2.mp3Other17.9 KB
samples/vietnamese-1.mp3Other13.1 KB
samples/vietnamese-2.mp3Other18.5 KB
.gitattributesRepository2.7 KB

License and Download

License
gpl-3.0
Access
Open weights, no gate
Download size
298.5 MB
Download from Ampixa Labs

Released by Ampixa Labs through its official repository on Hugging Face. Read the license.

Memory Requirements

PrecisionWeights in memory
As published298.5 MB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About sanoTTS

What license is sanoTTS released under?

gpl-3.0, as its publisher declares it. Read the license text before commercial use.

Similar Models

Model · Text to speech

Kokoro-82M

Hexgrad

Kokoro is an open-weight TTS model with 82 million parameters. Despite its lightweight architecture, it delivers comparable quality to larger models while being significantly faster and more cost-efficient. With Apache-licensed weights, Kokoro can be deployed anywhere from production environments to personal projects. You can run this basic cell on Google Colab. Listen to samples. For more languages and details, see Advanced Usage. Under the hood, kokoro uses misaki, a G2P library at https://github.com/hexgrad/misaki Model SHA256 Hash: 496dba118d1a58f5f3db2efc88dbdc216e0483fc89fe6e47ee1f2c53f18ad1e4 Data: Kokoro was trained exclusively on permissive/non-copyrighted audio data and IPA…

Open weights apache-2.0

Model · Text to speech

XTTS-v2

Coqui.ai

ⓍTTS is a Voice generation model that lets you clone voices into different languages by using just a quick 6-second audio clip. There is no need for an excessive amount of training data that spans countless hours. This is the same or similar model to what powers Coqui Studio and Coqui API. - Supports 17 languages. - Voice cloning with just a 6-second audio clip. - Emotion and style transfer by cloning. - Cross-language voice cloning. - Multi-lingual speech generation. - 24khz sampling rate. - 2 new languages; Hungarian and Korean - Architectural improvements for speaker conditioning. - Enables the use of multiple speaker references and interpolation between speakers. - Stability…

Open weights other coqui

Model · Text to speech

audio.cpp-gguf

Audio.cpp

This directory contains audio.cpp-native GGUF conversions of multiple speech models. These files are intended for use with audio.cpp. If you enjoy the project, please star audio.cpp on GitHub and this Hugging Face repository. For conversion details, supported layouts, direct-file loading, sidecar embedding, and the latest compatibility notes, see the audio.cpp GGUF guide: - https://github.com/0xShug0/audio.cpp/blob/main/docs/gguf.md!!! Converted and quantized packages are checked with automated metrics, but perceived quality can still differ for human listeners. Please validate the exact package, backend, and route to confirm the output is acceptable for your use case. The table lists the…

Open weights other audio.cpp

Model · Text to speech

chatterbox

Resemble AI

Chatterbox Multilingual V3 is the latest general-purpose multilingual TTS model in the Chatterbox family. It keeps the same 0.5B model size while improving speaker similarity, reducing hallucinations, and producing more natural, conversational speech across languages. V3 is designed for broad language coverage like V2, but with stronger stability and more expressive generation. It is the recommended multilingual model for users who want one voice cloning model that works across many languages. Try it in the Chatterbox Multilingual TTS V3 Space. Alongside V3, we are releasing the Single Language Pack: dedicated finetunes for priority languages where tighter quality control, stronger…

Open weights mit chatterbox

Model · Text to speech

F5-TTS

Yushen CHEN

Download F5-TTS or E2 TTS and place under ckpts/ Paper: F5-TTS: A Fairytaler that Fakes Fluent and Faithful Speech with Flow Matching

Open weights cc-by-nc-4.0 f5-tts

Model · Text to speech

Kokoro-82M-v1.0-ONNX

ONNX Community

Kokoro is a frontier TTS model for its size of 82 million parameters (text in/audio out). First, install the kokoro-js library from NPM using: You can then generate speech as follows: Optionally, save the audio to a file: The model is resilient to quantization, enabling efficient high-quality speech synthesis at a fraction of the original model size.

Open weights apache-2.0 transformers.js