text in โ†’ ESP32 โ†’ speech out

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.

Fresh model releases & news

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
GGUF
Model size
1.46M params
Architecture
sanotts-piperlite
Hardware compatibility
Log In to add your hardware

2-bit

4-bit

8-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for remixerdec/SanoTTS-GGUF

Base model

ampixa/sanoTTS
Quantized
(1)
this model