remixerdec/SanoTTS-GGUF

sanoTTS-GGUF
Quantized GGUF weights for the sanoTTS model family. This release contains eight Piperlite voices, each with Q2K, Q40, 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:
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 Q2K sample is stored as `amy/samples/modelq2_0.wav`. The Russian Irina packages currently include quantized samples only.
Usage
Build the runtime from the InflectSanoTTS C++/GGML runtime optimized for ESP32-S3 inference:
./tools/build.shRun 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.wavPiperlite 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_eLicense
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`.
