sanoTTS-GGUF
Quantized GGUF weights for the sanoTTS model family. This release contains six Piperlite voices, each with Q2_K, Q4_0, and Q8_0 models, along with reference samples from the source voices and samples generated by the quantized models.
Inference is currently available through the InflectSanoTTS.cpp engine, designed for edge devices with limited memory. On an ESP32-S3, the q4_0- quantized Amy model takes approximately five seconds to speak a short phrase.
Available voices
The voice names and source packages follow the base sanoTTS repository:
| Voice | Base package | Models |
|---|---|---|
amy |
amy-en-1p46m |
model_q2_k.gguf (0.64 MiB)model_q4_0.gguf (0.84 MiB)model_q8_0.gguf (1.52 MiB) |
amy-small |
amy-en-1p1m |
model_q2_k.gguf (0.50 MiB)model_q4_0.gguf (0.63 MiB)model_q8_0.gguf (1.14 MiB) |
hfc |
hfc-en-1p8m |
model_q2_k.gguf (0.73 MiB)model_q4_0.gguf (1.07 MiB)model_q8_0.gguf (1.91 MiB) |
kristin |
kristin-en-1p4m |
model_q2_k.gguf (0.61 MiB)model_q4_0.gguf (0.80 MiB)model_q8_0.gguf (1.45 MiB) |
vi |
vi-vais1000-1p46m |
model_q2_k.gguf (0.64 MiB)model_q4_0.gguf (0.93 MiB)model_q8_0.gguf (1.64 MiB) |
id |
id-newstts-1p46m |
model_q2_k.gguf (0.64 MiB)model_q4_0.gguf (0.92 MiB)model_q8_0.gguf (1.63 MiB) |
Each voice includes a lexicon.snl, a compact SNL2 lookup table that maps
words to the Piper phoneme IDs needed by the text frontend. The lexicons were
generated with tools/compile-sano-lexicon.py --format snl2 from the matching
Piper phoneme configuration and dictionary; the English voices reuse Amyโs
generated lexicon.snl because they share the same English Piper phoneme
inventory. The Vietnamese and Indonesian files were generated for their
respective phoneme inventories.
Audio samples
The original sample is generated from the corresponding base voice. Quantized
samples use the same voice and prompt as the model named in each entry. Each
quantized sample is labeled with its quantization.
The Amy Q2_K sample is stored as amy/samples/model_q2_0.wav.
| Original | Quantized |
|---|---|
| Amy |
Q2_K โ Q4_0 โ Q8_0 โ |
| Amy-small |
Q2_K โ Q4_0 โ Q8_0 โ |
| HFC |
Q2_K โ Q4_0 โ Q8_0 โ |
| Kristin |
Q2_K โ Q4_0 โ Q8_0 โ |
| Vietnamese |
Q2_K โ Q4_0 โ Q8_0 โ |
| Indonesian |
Q2_K โ Q4_0 โ Q8_0 โ |
Usage
Build the runtime from the InflectSanoTTS C++/GGML runtime optimized for ESP32-S3 inference:
./tools/build.sh
Run the Amy q4 model with its matching lexicon on a regular CPU:
build/<os>-<arch>/inflect-sano \
--model-family sano \
--sano-model /path/to/sanoTTS-GGUF/amy/model_q4_0.gguf \
--sano-lexicon /path/to/sanoTTS-GGUF/amy/lexicon.snl \
--speaking-rate 1.0 \
-t "Hello, this is a Sano Piperlite test." \
-o output.wav
Piperlite voices are deterministic and use a neural waveform decoder. The included lexicon supplies the word-to-phoneme lookup data, so the runtime does not need eSpeak-ng; eSpeak-ng and the phonemizer are needed when regenerating a lexicon on the host.
ESP32-S3 usage
For ESP32-S3 inference in PocketInkOS, see the PocketInkOS TTS integration for firmware build flags, runtime asset layout, and deployment details.
Conversion provenance
The quantized Amy package was produced from the base voice package using the host-only conversion pipeline:
python tools/convert_sano.py \
--input /path/to/canonical-amy-piperlite.gguf \
--config /path/to/amy-en-1p46m/manifest.json \
--phoneme-config /path/to/amy-en-1p46m/piper-phoneme-config.json \
--output amy/model_q4_0.gguf \
--quantize q4_0_e
License
The base model and its original voice packages are maintained by
Ampixa. The base model repository is
published under GPL-3.0. This quantized release follows that license; see
LICENSE.
- Downloads last month
- 162
2-bit
4-bit
8-bit
Model tree for remixerdec/SanoTTS-GGUF
Base model
ampixa/sanoTTS