sherpa-onnx supports multiple offline TTS model families through the SherpaOnnxCreateOfflineTts() API. Configure exactly one model family by filling in the corresponding sub-struct of SherpaOnnxOfflineTtsModelConfig.
- See also
- SherpaOnnxCreateOfflineTts, SherpaOnnxOfflineTtsConfig, SherpaOnnxOfflineTtsModelConfig
Kokoro
Kokoro is a high-quality TTS model with multiple voice support. It uses a model file and a voices binary file.
memset(&config, 0, sizeof(config));
const SherpaOnnxOfflineTts * SherpaOnnxCreateOfflineTts(const SherpaOnnxOfflineTtsConfig *config)
Create an offline TTS engine.
struct SherpaOnnxOfflineTts SherpaOnnxOfflineTts
Opaque offline TTS handle.
Configuration for offline text-to-speech.
SherpaOnnxOfflineTtsModelConfig model
SherpaOnnxOfflineTtsKokoroModelConfig kokoro
Model package: kokoro-en-v0_19 (English), kokoro-multi-lang-v1_0 (multilingual)
Example source: kokoro-tts-en-c-api.c
VITS (Piper)
VITS models from the Piper project use espeak-ng for phonemization.
memset(&config, 0, sizeof(config));
"./vits-piper-en_US-lessac-medium/en_US-lessac-medium.onnx";
"./vits-piper-en_US-lessac-medium/tokens.txt";
"./vits-piper-en_US-lessac-medium/espeak-ng-data";
SherpaOnnxOfflineTtsVitsModelConfig vits
Model package: vits-piper-en_US-lessac-medium
Example source: offline-tts-c-api.c
Matcha
Matcha is a flow-matching TTS model that requires a separate vocoder (e.g., Vocos).
memset(&config, 0, sizeof(config));
"./matcha-icefall-en_US-ljspeech/model-steps-3.onnx";
"./matcha-icefall-en_US-ljspeech/tokens.txt";
"./matcha-icefall-en_US-ljspeech/espeak-ng-data";
const char * acoustic_model
SherpaOnnxOfflineTtsMatchaModelConfig matcha
Model package: matcha-icefall-en_US-ljspeech (English), matcha-icefall-zh-baker (Chinese)
Example source: matcha-tts-en-c-api.c
Kitten
Kitten is a compact TTS model with voice support.
memset(&config, 0, sizeof(config));
"./kitten-nano-en-v0_1-fp16/espeak-ng-data";
SherpaOnnxOfflineTtsKittenModelConfig kitten
Model package: kitten-nano-en-v0_1-fp16
Example source: kitten-tts-en-c-api.c
ZipVoice
ZipVoice is a flow-matching TTS model with a separate vocoder. It supports Chinese and English.
memset(&config, 0, sizeof(config));
"./sherpa-onnx-zipvoice-distill-int8-zh-en-emilia/encoder.int8.onnx";
"./sherpa-onnx-zipvoice-distill-int8-zh-en-emilia/decoder.int8.onnx";
"./sherpa-onnx-zipvoice-distill-int8-zh-en-emilia/tokens.txt";
"./sherpa-onnx-zipvoice-distill-int8-zh-en-emilia/lexicon.txt";
"./sherpa-onnx-zipvoice-distill-int8-zh-en-emilia/espeak-ng-data";
SherpaOnnxOfflineTtsZipvoiceModelConfig zipvoice
Model package: sherpa-onnx-zipvoice-distill-int8-zh-en-emilia
Example source: zipvoice-tts-zh-en-c-api.c
Pocket
Pocket TTS uses a language model flow architecture with multiple ONNX files.
memset(&config, 0, sizeof(config));
"./sherpa-onnx-pocket-tts-int8-2026-01-26/lm_flow.int8.onnx";
"./sherpa-onnx-pocket-tts-int8-2026-01-26/lm_main.int8.onnx";
"./sherpa-onnx-pocket-tts-int8-2026-01-26/encoder.onnx";
"./sherpa-onnx-pocket-tts-int8-2026-01-26/decoder.int8.onnx";
"./sherpa-onnx-pocket-tts-int8-2026-01-26/text_conditioner.onnx";
"./sherpa-onnx-pocket-tts-int8-2026-01-26/vocab.json";
"./sherpa-onnx-pocket-tts-int8-2026-01-26/token_scores.json";
SherpaOnnxOfflineTtsPocketModelConfig pocket
const char * text_conditioner
const char * token_scores_json
int32_t voice_embedding_cache_capacity
Model package: sherpa-onnx-pocket-tts-int8-2026-01-26
Example source: pocket-tts-en-c-api.c
Supertonic
Supertonic is a non-autoregressive TTS model using duration prediction and vector estimation.
memset(&config, 0, sizeof(config));
"./sherpa-onnx-supertonic-3-tts-int8-2026-05-11/duration_predictor.int8.onnx";
"./sherpa-onnx-supertonic-3-tts-int8-2026-05-11/text_encoder.int8.onnx";
"./sherpa-onnx-supertonic-3-tts-int8-2026-05-11/vector_estimator.int8.onnx";
"./sherpa-onnx-supertonic-3-tts-int8-2026-05-11/vocoder.int8.onnx";
"./sherpa-onnx-supertonic-3-tts-int8-2026-05-11/tts.json";
"./sherpa-onnx-supertonic-3-tts-int8-2026-05-11/unicode_indexer.bin";
"./sherpa-onnx-supertonic-3-tts-int8-2026-05-11/voice.bin";
SherpaOnnxOfflineTtsSupertonicModelConfig supertonic
const char * vector_estimator
const char * text_encoder
const char * duration_predictor
const char * unicode_indexer
Model package: sherpa-onnx-supertonic-3-tts-int8-2026-05-11
Example source: supertonic-tts-en-c-api.c