voice_audio_multi/docs/tts.md
Fabio c36510c21e
Some checks failed
Linux Build / Linux cpu (push) Has been cancelled
Linux Build / Linux cpu-clang (push) Has been cancelled
Linux Build / Linux vulkan (push) Has been cancelled
mac-build / macOS CPU (push) Has been cancelled
Nix Build / Nix (cpu) (push) Has been cancelled
Nix Build / Nix (vulkan) (push) Has been cancelled
windows-build / Windows CPU (push) Has been cancelled
Initial import: audio.cpp with Orange Pi documentation
2026-11-04 19:05:22 +01:00

62 KiB

TTS Models

For adapter loading and merged GGUF export, see the LoRA guide.

Model Family Task(s) Quick Start
AuK (experimental) auk tts, clon, gen editing AuK
BreezeTTS 2 breeze_tts tts, clon BreezeTTS 2
Chatterbox chatterbox tts, clon, vc Chatterbox
Confucius4-TTS confucius4_tts tts, clon Confucius4-TTS
CosyVoice3 cosyvoice3 tts, clon CosyVoice3
DotTTS dots_tts tts, clon DotTTS
DramaBox dramabox tts, clon DramaBox
Echo-TTS echo_tts tts, clon Echo-TTS
F5-TTS f5_tts tts, clon F5-TTS
FireRedAudio firered_audio asr, tts, clon, vdes FireRedAudio
FireRedTTS3 fireredtts3 tts, clon, vdes FireRedTTS3
Fish Audio Drama3 / Drama3-small fish_drama3 tts, clon Drama3
Fish Audio S2 Pro fish_audio tts, clon Fish Audio S2 Pro
GLM-TTS glm_tts tts, clon GLM-TTS
Gradium Phonon gradium_phonon tts Gradium Phonon
Higgs Audio v3 TTS higgs_audio_tts tts, clon Higgs Audio v3 TTS
IndexTTS2 index_tts2 tts IndexTTS
IndexTTS2.5 index_tts2 (variant 2.5) tts IndexTTS
Inflect Micro v2 inflect_v2 tts Inflect v2
Irodori-TTS irodori_tts tts, vdes Irodori-TTS
Kitten TTS 2 kitten_tts2 tts, clon Kitten TTS 2
KittenTTS Mini 0.8 kitten_tts tts KittenTTS
Kokoro 82M kokoro_tts tts Kokoro 82M
KugelAudio-0-Open kugelaudio tts KugelAudio
LFM2.5-Audio lfm2_audio asr, tts, s2s LFM2.5-Audio
LFM3-Audio lfm3_audio asr, tts, s2s LFM3-Audio
MagpieTTS magpie_tts tts MagpieTTS, full guide
Maya1 maya1 tts, vdes Maya1
MiniMax-H3 minimax_h3 gen dialogue audio MiniMax-H3
Ming 3.0 Audio Tiny ming3_audio tts, clon, s2s Ming Audio
Ming 3.0 TTS 0.5B ming3_tts tts, clon, vdes Ming TTS
MioTTS miotts tts, clon MioTTS
MOSS-TTS-Local moss_tts_local tts, clon MOSS-TTS-Local
MOSS-TTS-Nano moss_tts_nano tts, clon MOSS-TTS-Nano
MOSS-TTS-v1.5 moss_tts_v15 tts, clon MOSS-TTS-v1.5
MOSS-VoiceGenerator moss_voicegen vdes MOSS-VoiceGenerator
NeuTTS neutts tts NeuTTS
OmniVoice omnivoice tts, clon, vdes OmniVoice, full guide
OuteTTS outetts tts, clon OuteTTS
Piper TTS piper_tts tts Piper TTS
Plapre 3 plapre tts, clon Plapre 3
PocketTTS pocket_tts tts, clon PocketTTS
PocketTTS Small pocket_tts_small tts, clon PocketTTS Small
Qwen3 TTS qwen3_tts tts, clon, vdes Qwen3 TTS
sanoTTS voice family sanotts tts sanoTTS
Supertonic supertonic tts Supertonic
VibeVoice vibevoice tts VibeVoice
VieNeu-TTS v3 Turbo vieneu_v3_turbo (alias vietneu_tts) tts, clon VieNeu-TTS v3 Turbo
VoxCPM1 voxcpm1 tts, clon VoxCPM1
VoxCPM2 voxcpm2 tts, clon, vdes VoxCPM2
Voxtral 4B TTS voxtral_tts tts Voxtral TTS
XTTS v2 xtts_v2 tts XTTS v2

This page covers speech TTS-style families. MiniMax-H3 appears here for prompt-driven dialogue audio, but it uses the generation route (--task gen) rather than the normal speech route (--task tts). Detailed route manuals live under docs/models/ or docs/models/ when a model needs more space.

Common CLI shape:

audiocpp_cli --task <task> --family <family> --model <model-dir> --backend cuda ...

Common options:

Option Meaning
--text Text, prompt, lyrics, or multi-speaker script, depending on the model.
--voice-ref Reference voice WAV for models that support cloning.
--reference-text Transcript or prompt text for models that use explicit reference transcripts.
--voice-id Built-in voice id for models with packaged voices.
--language Model language code when the model requires one.
--text-chunk-size Long-form chunk budget in characters. Each model has its own default.
--seed Optional fixed seed. If omitted, models that sample use a random seed unless their upstream default is fixed.

Chatterbox

Chatterbox is a voice-clone TTS model with an audio-to-audio voice-conversion path. The upstream Chatterbox family also documents paralinguistic tag tokens in newer variants, but the current audio.cpp integration exposes voice cloning and voice conversion rather than a separate tag-control interface.

Field Value
Family chatterbox
Model directory models/chatterbox
Tasks tts, clon, vc
Modes offline
Languages ar, da, de, el, en, es, fi, fr, hi, it, ko, ms, nl, no, pl, pt, sv, sw, tr
Voice input Required reference WAV through --voice-ref; VC also requires source audio through --audio
Built-in voices Not exposed by this integration

Voice clone:

audiocpp_cli --task clon --family chatterbox --model models/chatterbox --backend cuda --text "Hello from Chatterbox." --voice-ref assets/resources/b.wav --out out.wav

tts is an alias to the same voice-cloning synthesis path.

Voice conversion:

audiocpp_cli --task vc --family chatterbox --model models/chatterbox --backend cuda --audio assets/resources/a.wav --voice-ref assets/resources/b.wav --out converted.wav

Common Options (use directly)

Option Values Default Meaning
--audio WAV path required for vc Source speech for voice conversion.
--voice-ref WAV path required Reference speaker audio for cloning, or target speaker audio for voice conversion.
--language language code en Text language.
--text-chunk-size integer chars 128 Long-form chunk size.
--guidance-scale float 0.5 CFG strength.
--temperature float 0.8 T3 sampling temperature.
--top-p float 1.0 T3 nucleus sampling limit.
--repetition-penalty float 1.2 T3 repetition penalty.
--max-tokens integer 384 Maximum generated T3 tokens per chunk.
--do-sample true, false true Enable stochastic T3 sampling.

Request Options (use with --request-option)

Option Values Default Meaning
exaggeration float 0.5 Emotion exaggeration.
guidance_scale float 0.5 T3 classifier-free guidance scale.
temperature float 0.8 T3 sampling temperature.
repetition_penalty float 1.2 T3 repetition penalty.
min_p float 0.05 Minimum sampling probability.
top_p float 1 Nucleus sampling probability.
flow_guidance_scale float 0.7 S3Gen flow guidance scale; legacy s3gen_cfg_rate remains accepted.
max_tokens integer >= 1 384 Maximum generated speech tokens.
do_sample bool true Enable sampling.
greedy (legacy) bool false When true, override do_sample and use greedy decoding. Use do_sample for new integrations.
stop_on_eos bool true Stop token generation on EOS.
num_inference_steps integer >= 1 10 Voice conversion flow steps; max_steps is also accepted.
seed integer >= 0 random Sampling seed; omitted chooses a random seed.
source_audio text not set Voice conversion source WAV path; overrides audio_input.
target_voice text not set Voice conversion target WAV path; overrides the speaker reference.
text_chunk_size integer 128 Framework long-form text chunk size.

For cloning, generation settings are fixed during preparation. Use the same settings for subsequent requests in that session.

Session Options (use with --session-option)

Option Values Default Meaning
chatterbox.weight_type native, f32, f16, bf16, q8_0 not set Weight storage type; defaults to native.
chatterbox.t3_weight_type native, f32, f16, bf16, q8_0 shared setting T3 weight storage; inherits weight_type.
chatterbox.multilingual_t3 v2, v3 v2 Multilingual T3 checkpoint selection.
chatterbox.conditionals_cache_slots integer >= 0 1 Cached speaker conditionals; zero disables reuse.
chatterbox.mem_saver bool false Release staged runtime components.
chatterbox.encoder_condition_samples integer 96000 Tokenizer reference sample limit at 16 kHz; the voice encoder uses the full reference.
chatterbox.decoder_condition_samples integer 240000 S3Gen reference sample limit at 24 kHz.
chatterbox.t3_speech_cond_prompt_len integer 150 T3 reference speech prompt token limit.

Chatterbox Turbo

Chatterbox Turbo is a community model: Resemble AI's distilled 350M-parameter sibling of Chatterbox, with a GPT2-style T3 backbone (vs. the base model's 0.5B Llama-style backbone), a GPT2 BPE tokenizer with 19 built-in emotion/style tags ([laugh], [sigh], ...), and a 2-step meanflow-distilled S3Gen decoder (vs. the base model's 10-step CFG decoder) for substantially faster built-in-voice TTS. It is English-only.

chatterbox_turbo is a separate model family from chatterbox (not a variant selectable within it): its T3 backbone and tokenizer differ from the base model's, and it reuses base Chatterbox's own S3Gen/HiFT-vocoder loader code for the flow decoder and vocoder half.

The package is one self-contained, audio.cpp-native GGUF produced by repacking Resemble AI's weights (via the third-party cstr/chatterbox-turbo-GGUF conversion published for the CrispASR project, MIT-relicensed) with tools/community_models/chatterbox_turbo/repack_chatterbox_turbo_gguf.py — see that model's community doc for details.

Current limitations: only the built-in default voice baked into the package is supported. Custom voice cloning is not supported; --voice-ref is rejected with an explicit error rather than silently ignored.

Field Value
Family chatterbox_turbo
Model directory Chatterbox-Turbo-GGUF/chatterbox-turbo-{q8_0,f16}.gguf (single self-contained file)
Tasks tts
Modes offline
Languages en
Voice input Not supported — omit --voice-ref to use the built-in voice
Built-in voices One, embedded in the package
audiocpp_cli --task tts --family chatterbox_turbo --model models/Chatterbox-Turbo-GGUF/chatterbox-turbo-q8_0.gguf --backend cuda --text "Hello from Chatterbox Turbo." --out out.wav
Option Values Default Meaning
--temperature float 0.8 T3 sampling temperature.
--top-p float 0.95 T3 nucleus sampling limit.
top_k (session option) integer 1000 T3 top-k sampling limit.
--repetition-penalty float 1.2 T3 repetition penalty.
--max-tokens integer 1000 Maximum generated T3 tokens.

--guidance-scale/exaggeration/min_p have no effect on Turbo (it was distilled without CFG) and are accepted but ignored, matching upstream's own behavior.

Confucius4-TTS

Confucius4-TTS is an experimental multilingual voice-cloning TTS model packaged as a standalone GGUF bundle. It supports offline generation and streaming text input, using reference speech, language-aware text normalization, T2S semantic generation, S2A flow matching, style encoding, semantic audio features, and BigVGAN vocoding.

Field Value
Family confucius4_tts
GGUF model models/Confucius4-TTS-GGUF/confucius4-tts-orig.gguf
Tasks tts, clon
Modes offline, streaming
Languages zh, en, ja, ko, de, fr, es, id, it, th, pt, ru, ms, vi
Voice input Required reference WAV through --voice-ref
Built-in voices Not exposed
Status Experimental

Language support note: English (en) and Chinese (zh) are the currently validated and normalized paths. Other advertised language codes are experimental best-effort cross-language cloning paths; text frontend normalization is incomplete for them, so pronunciation and reading quality may vary.

Voice clone:

audiocpp_cli --task clon --family confucius4_tts --model models/Confucius4-TTS-GGUF/confucius4-tts-orig.gguf --backend cuda --language en --text "Hello from Confucius four TTS." --voice-ref assets/resources/b.wav --out out.wav

tts remains available as an alias to the same synthesis path. Route selection does not change the model's existing input requirements.

Streaming session:

audiocpp_cli --task clon --family confucius4_tts --model models/Confucius4-TTS-GGUF/confucius4-tts-orig.gguf --backend cuda --mode streaming --language en --text "Hello from the streaming path." --voice-ref assets/resources/b.wav --out out.wav
Option Values Default Meaning
--voice-ref WAV path required Reference speaker audio for cloning.
--language language code zh Target synthesis language code.
--temperature float > 0 0.8 T2S sampling temperature.
--top-p (0, 1] 0.8 T2S nucleus sampling probability.
--top-k integer 30 T2S top-k sampling limit.
--num-beams integer 3 T2S beam count; use 1 for single-beam sampling.
--repetition-penalty float > 0 10.0 T2S repetition penalty.
--max-tokens integer 1520 Maximum T2S semantic sequence length including prompt tokens.
--num-inference-steps integer 25 S2A flow-matching step count.
--guidance-scale float 0.7 S2A classifier-free guidance scale.
--text-chunk-size integer tokens 80 Maximum text tokens per generated segment.
--text-chunk-mode default, tag_aware, japanese, endline default Framework text chunking mode.
--request-option cross_fade_duration_sec=<seconds> seconds 0.3 Cross-fade duration between generated segments.
--request-option edge_fade_duration_sec=<seconds> seconds 0.1 Validated but currently not applied.
--request-option edge_pad_duration_sec=<seconds> seconds 0.1 Validated but currently not applied.
--seed integer 1234 Seed for T2S sampling and S2A noise initialization.
--session-option confucius4_tts.mem_saver=true|false bool false Release staged graphs after request phases; default keeps them cached for reuse.

DotTTS

DotTTS is an experimental multilingual TTS and voice-cloning family with SOAR and MeanFlow GGUF packages. SOAR is the default download. See DotTTS for template, streaming, chunking, and full option details.

python3 tools/model_manager_v2.py install dots_tts_soar_q8_0

audiocpp_cli --task tts --family dots_tts \
  --model models/DotTTS-SOAR-GGUF/dots-tts-soar-q8_0.gguf \
  --backend cuda \
  --text "Our field team finished the morning inspection and prepared a concise update." \
  --voice-ref assets/resources/a.wav \
  --reference-text "This little work was finished in the year eighteen o three, and intended for immediate publication." \
  --request-option reference_duration_sec=5 \
  --out out.wav

For MeanFlow, install dots_tts_mf_q8_0 and use models/DotTTS-MF-GGUF/dots-tts-mf-q8_0.gguf with the same runtime options.

DramaBox

DramaBox is an experimental English expressive TTS and voice-cloning model packaged as a standalone GGUF bundle. It combines Gemma text conditioning, diffusion sampling, reference-audio conditioning, long-form chunking, and 48 kHz stereo output.

Field Value
Family dramabox
GGUF model models/DramaBox-GGUF/dramabox-q8_0.gguf
Tasks tts, clon
Modes offline
Languages en
Voice input Optional reference WAV through --voice-ref
Built-in voices Not exposed
Status Experimental

Text-only speech:

audiocpp_cli --task tts --family dramabox --model models/DramaBox-GGUF/dramabox-q8_0.gguf --backend cuda --text "Hello from DramaBox." --out out.wav

Voice clone:

audiocpp_cli --task clon --family dramabox --model models/DramaBox-GGUF/dramabox-q8_0.gguf --backend cuda --text "Hello from DramaBox." --voice-ref assets/resources/b.wav --out out.wav

Older prebuilts that reject --task clon can use --task tts --voice-ref ...; the same reference-conditioning path is used.

Option Values Default Meaning
--voice-ref / --target-voice WAV path not set Reference voice for cloning; omitted requests text-only speech.
--request-option negative_prompt=<text> string built-in quality prompt Negative text conditioning when classifier-free guidance is enabled.
--request-option duration_sec=<seconds> seconds 0 Explicit target duration; 0 uses prompt-duration estimation.
--num-inference-steps integer 30 Diffusion sampling steps.
--guidance-scale float 2.5 Classifier-free guidance scale. Values greater than 1 enable CFG.
--request-option spatio_temporal_guidance_scale=<float> float 1.5 Spatio-temporal guidance scale. Values greater than 0 enable STG.
--request-option duration_scale=<float> float 1.1 Multiplier applied to the estimated prompt duration when duration_sec is 0.
--request-option reference_duration_sec=<seconds> seconds > 0 10.0 Reference voice crop/repeat duration.
--request-option guidance_rescale=auto|<number> string auto Guidance rescale mode or explicit numeric value.
--request-option audio_chunk_threshold_sec=<seconds> seconds > 0 45.0 Estimated duration threshold that switches to long-form chunking.
--request-option audio_chunk_duration_sec=<seconds> seconds > 0 37.0 Target estimated duration for each long-form chunk.
--request-option cross_fade_duration_sec=<seconds> seconds 0.05 Equal-power cross-fade between long-form chunks.
--seed integer 42 Torch-compatible CUDA noise seed for diffusion sampling.
--session-option dramabox.perf_mode=off|flash_attention enum off Attention implementation mode. off keeps the exact reference-query attention path; flash_attention enables the optimized path.
--session-option dramabox.mem_saver=true|false bool false Release staged runtime graphs and weights immediately after each request phase to reduce peak and resident VRAM; default keeps components cached for reuse.

Fish Audio S2 Pro

Fish Audio S2 Pro is a TTS and reference voice-clone model. See the dedicated Fish Audio guide for multi-reference conditioning, speaker-tagged turns, and the full option list.

Field Value
Family fish_audio
Model path models/Fish-Audio-S2-Pro-GGUF/fish-audio-s2-pro-q8_0.gguf when installed through the model manager
Tasks tts, clon
Modes offline, streaming
Languages Model auto-handles language; tested paths cover English and Chinese-style prompts
Voice input Optional reference WAV through --voice-ref; transcript through --reference-text when known
Built-in voices Not exposed

Text-to-speech:

audiocpp_cli --task tts --family fish_audio --model models/Fish-Audio-S2-Pro-GGUF/fish-audio-s2-pro-q8_0.gguf --backend cuda --text "Hello from Fish Audio." --out out.wav

Reference voice clone:

audiocpp_cli --task clon --family fish_audio --model models/Fish-Audio-S2-Pro-GGUF/fish-audio-s2-pro-q8_0.gguf --backend cuda --text "The final render is ready for review." --voice-ref assets/resources/b.wav --reference-text "Some call me nature. Others call me Mother Nature. I've been here for over 4.5 billion years. 22,500 times longer than you." --out out.wav

Multiple reference pairs:

audiocpp_cli --task clon --family fish_audio --model models/Fish-Audio-S2-Pro-GGUF/fish-audio-s2-pro-q8_0.gguf --backend cuda --text "The review is ready, and I will check the final numbers." --request-option 'multi_reference_cond=[{"audio":"assets/resources/a.wav","text":"First reference transcript."},{"audio":"assets/resources/b.wav","text":"Second reference transcript."}]' --out out.wav

The model manager installs the Q8_0 standalone GGUF package by default:

python3 tools/model_manager_v2.py install --models-root models fish_audio_s2_pro_q8_0

GLM-TTS

GLM-TTS is a community zero-shot Chinese and English speech-synthesis model. Both the tts and clon routes require a clean reference WAV and its exact transcript:

python tools/model_manager_v2.py install glm_tts --models-root models

audiocpp_cli --task clon --family glm_tts \
  --model models/GLM-TTS-Q8/GLM-TTS_Q8.gguf --backend cuda \
  --voice-ref reference.wav \
  --reference-text "The exact words spoken in reference.wav." \
  --text "Hello from GLM-TTS." \
  --seed 0 --out glm_tts.wav

See the GLM-TTS community model guide for standalone GGUF packaging, controls, and validation results.

Higgs Audio v3 TTS

Higgs Audio v3 TTS supports voice cloning and long-form generation through the framework chunker. See the dedicated Higgs Audio v3 TTS guide for installation, usage, and options.

IndexTTS2

IndexTTS2 is a Chinese and English TTS model with voice cloning and expressive emotion controls. See the dedicated IndexTTS guide for IndexTTS2, IndexTTS2.5, text normalization notes, conversion, and the full option list.

Field Value
Family index_tts2
Model directory models/IndexTTS-2
Task tts, clon
Modes offline
Languages zh, en
Voice input Required reference WAV through --voice-ref
Built-in voices Not exposed

Quick start:

audiocpp_cli --task clon --family index_tts2 --model /path/to/IndexTTS-2 --backend cuda --language en --text "Hello from IndexTTS2." --voice-ref /path/to/reference.wav --out out.wav

IndexTTS2.5

IndexTTS2.5 is the multilingual index_tts2 variant selected from model config. It adds Japanese, Spanish, and Arabic on top of Chinese and English. See the dedicated IndexTTS guide for variant details, language notes, conversion, and the full option list.

Field Value
Family index_tts2 (the 2.5 variant is selected from the model config version field; no separate family)
Model directory models/IndexTTS2.5-GGUF (default GGUF package index_tts2_5_q8_0; index_tts2_5_f16 and index_tts2_5_orig also available)
Task tts, clon
Modes offline
Languages zh, en, ja, es, ar
Voice input Required reference WAV through --voice-ref
Built-in voices Not exposed

Quick start:

audiocpp_cli --task clon --family index_tts2 --model /path/to/IndexTTS2.5-GGUF --backend cuda --text "Hello from IndexTTS2.5." --voice-ref /path/to/reference.wav --out out.wav

Inflect v2

Inflect Micro v2 is a compact English offline TTS model with a native GGML runtime. The model manager defaults to the standalone GGUF package; the original source/conversion path remains documented in the community guide. Inflect requires an external eSpeak-ng installation:

python3 tools/model_manager_v2.py install inflect_micro_v2_orig --models-root models

audiocpp_cli --task tts --family inflect_v2 \
  --model models/Inflect-Micro-v2-GGUF/inflect-micro-v2-orig.gguf --backend cuda \
  --text "Hello from Inflect Micro version two." \
  --request-option speaking_rate=1.0 \
  --request-option variation=0.667 \
  --seed 0 --out inflect.wav

See the Inflect v2 community model guide for eSpeak-ng paths, long-form behavior, source/conversion instructions, and limitations.

Irodori-TTS

Irodori-TTS is Japanese TTS under --family irodori_tts. v4 Small is the preferred GGUF-first package and supports no-reference speech, reference-conditioned speech, and instruction-based voice design in one checkpoint. The older 500M v3 and 600M v3 VoiceDesign packages remain supported for existing users. See Irodori-TTS for v3/v4 differences, GGUF variants, options, and compatibility aliases.

MagpieTTS

MagpieTTS Multilingual 357M is a multilingual TTS model with baked speaker context prompts and a NanoCodec waveform decoder. The current package is a standalone GGUF directory.

python3 tools/model_manager_v2.py install magpie_tts_orig

audiocpp_cli --task tts --family magpie_tts \
  --model models/MagpieTTS-Multilingual-357M-GGUF \
  --backend cuda \
  --language en \
  --text "The production coordinator reviewed the overnight audio report and sent one clear update." \
  --request-option voice_id=Sofia \
  --out out.wav

Use --request-option voice_id=<name-or-index> to select one of the baked speaker prompts included with the package. See MagpieTTS for supported languages, long-form controls, and sampling options.

MioTTS

MioTTS uses MioCodec for acoustic decoding and can optionally use Qwen3-ASR for best-of-N candidate scoring. See the dedicated MioTTS guide for dependencies, commands, and options.

MOSS-TTS-Local

MOSS-TTS-Local is the larger local-transformer MOSS TTS path. It supports text-only speech and optional zero-shot voice cloning through the framework speaker-reference interface. See MOSS-TTS-Local for tokenizer layout, sampling options, and cache options.

Field Value
Family moss_tts_local
Model directory models/MOSS-TTS-Local-Transformer-v1.5
Required codec layout audio_tokenizer/ directory inside the model root
Task tts, clon
Modes offline
Languages Model auto-handles supported languages; --language can pass a language hint
Voice input Optional reference WAV through --voice-ref; Local does not consume a reference transcript
Built-in voices Not exposed

Text-only speech:

audiocpp_cli --task tts --family moss_tts_local --model /path/to/MOSS-TTS-Local-Transformer-v1.5 --backend cuda --text "Hello from MOSS-TTS-Local." --out out.wav

Voice clone:

audiocpp_cli --task clon --family moss_tts_local --model /path/to/MOSS-TTS-Local-Transformer-v1.5 --backend cuda --text "Hello from MOSS-TTS-Local." --voice-ref /path/to/reference.wav --out out.wav

MOSS-TTS-Nano

MOSS-TTS-Nano is the smaller MOSS TTS path. It supports text-only continuation generation and voice cloning through the framework speaker-reference interface. See MOSS-TTS-Nano for tokenizer layout, sampling options, streaming, and cache options.

Field Value
Family moss_tts_nano
Model directory models/MOSS-TTS-Nano-100M
Required codec layout audio_tokenizer/ directory inside the model root
Task tts, clon
Modes offline, streaming
Languages Model auto-handles supported languages
Voice input Optional reference WAV through --voice-ref
Built-in voices Not exposed

Text-only continuation:

audiocpp_cli --task tts --family moss_tts_nano --model /path/to/MOSS-TTS-Nano-100M --backend cuda --text "Hello from MOSS-TTS-Nano." --out out.wav

Voice clone:

audiocpp_cli --task clon --family moss_tts_nano --model /path/to/MOSS-TTS-Nano-100M --backend cuda --text "Hello from MOSS-TTS-Nano." --voice-ref /path/to/reference.wav --reference-text "Reference transcript when available." --out out.wav

NeuTTS

NeuTTS is an experimental English TTS family with built-in speaker prompts and emotion-token control. The default package is the standalone 2E GGUF. See NeuTTS for built-in voice ids, emotion options, streaming, and full option details.

python3 tools/model_manager_v2.py install neutts

audiocpp_cli --task tts --family neutts \
  --model models/NeuTTS-2E-GGUF/neutts-2e-orig.gguf \
  --backend cuda \
  --text "The release checklist is almost complete, and the baseline run looks healthy." \
  --request-option voice_id=emily \
  --request-option emotion=neutral \
  --out out.wav

OmniVoice

OmniVoice supports multilingual TTS, voice cloning, voice design, non-verbal tag tokens, long-form chunking, and chunked pseudo-streaming. See OmniVoice for the full guide.

Field Value
Family omnivoice
Model directory models/OmniVoice
Tasks tts, clon, vdes
Modes offline, streaming
Languages 600+ languages handled by the model
Voice input --voice-ref plus optional --reference-text, or instruction text through --instruct
Built-in voices Auto voice is supported by the model; CLI examples use clone or design for repeatability

Voice clone:

audiocpp_cli --task tts --family omnivoice --model models/OmniVoice --backend cuda --text "Hello from OmniVoice." --voice-ref assets/resources/b.wav --reference-text "Some call me nature. Others call me Mother Nature. I've been here for over 4.5 billion years. 22,500 times longer than you." --out out.wav

Voice design:

audiocpp_cli --task tts --family omnivoice --model models/OmniVoice --backend cuda --text "Hello from OmniVoice." --instruct "female, young adult, moderate pitch" --out out.wav

Streaming voice clone:

audiocpp_cli --task tts --mode streaming --family omnivoice --model models/OmniVoice --backend cuda --text "Hello from OmniVoice." --voice-ref assets/resources/b.wav --reference-text "Some call me nature. Others call me Mother Nature. I've been here for over 4.5 billion years. 22,500 times longer than you." --text-chunk-size 160 --out stream.wav --out-dir stream_chunks

OmniVoice streaming is pseudo streaming: audio.cpp emits audio chunk events from text chunks and returns a merged final WAV. Upstream Python does not expose model-native streaming. For server SSE examples, options, and tag controls, see OmniVoice.

OuteTTS

OuteTTS 1.0 1B is a community model for 24 kHz TTS and voice cloning. The model manager installs the standalone Q8 GGUF package by default:

python tools/model_manager_v2.py install outetts_1_0_1b_q8_0 --models-root models

Quick start:

audiocpp_cli --task tts --family outetts \
  --model models/Llama-OuteTTS-1.0-1B_Q8/Llama-OuteTTS-1.0-1B_Q8.gguf \
  --backend cuda --text "Hello from OuteTTS." \
  --max-tokens 1024 --out out.wav

Voice clone quick start:

audiocpp_cli --task clon --family outetts \
  --model models/Llama-OuteTTS-1.0-1B_Q8/Llama-OuteTTS-1.0-1B_Q8.gguf \
  --backend cuda \
  --voice-ref reference.wav \
  --reference-text "The exact words spoken in reference.wav." \
  --request-option reference_language=en \
  --text "This sentence uses the cloned voice." \
  --max-tokens 1024 --out cloned.wav

See OuteTTS community model usage for cloning notes, GGUF packing, all options, and validation details.

PocketTTS

PocketTTS supports built-in voices, voice cloning from reference WAVs, and exported voice states for fast reuse.

Use the GGUF package for the desired language. French is available as a distilled six-layer model in BF16 and Q8_0, with packaged voice states such as cosette. The _24l variants are larger 24-layer, undistilled preview models; French no longer requires the french_24l variant.

Field Value
Family pocket_tts
Model directory models/pocket-tts
Tasks tts, clon
Modes offline, streaming
Languages english, french, german, italian, portuguese, spanish
Voice input Built-in voice id or reference WAV
Built-in voices Voice ids depend on the downloaded language package; alba is used by the examples

Preset voice:

audiocpp_cli --task tts --family pocket_tts --model models/pocket-tts --backend cuda --text "Hello from PocketTTS." --voice-id alba --out out.wav

French preset voice (keep the package's embeddings directory alongside the GGUF):

audiocpp_cli --task tts --family pocket_tts \
  --model models/PocketTTS-GGUF/french/pocket-tts-french-q8_0.gguf \
  --backend cuda --text "Bonjour, bienvenue dans notre bibliotheque." \
  --voice-id cosette --out french.wav

Voice clone:

audiocpp_cli --task tts --family pocket_tts --model models/pocket-tts --backend cuda --text "Hello from PocketTTS." --voice-ref assets/resources/b.wav --out out.wav

clon is an alias to the same synthesis path. Route selection does not change the existing reference-audio or preset behavior.

To reuse a cloned voice across runs, export its prepared state once. This skips reference-audio encoding and voice-state preparation on subsequent runs:

audiocpp_cli --task clon --family pocket_tts \
  --model models/PocketTTS-GGUF/english/pocket-tts-english-q8_0.gguf \
  --backend cuda --voice-ref assets/resources/b.wav \
  --voice-state-out models/PocketTTS-GGUF/english/embeddings/my_voice.safetensors

The export command exits after saving the state; no text or output WAV is needed. Save it in the language package's embeddings directory, then use the filename without .safetensors as the voice id, just like a built-in voice:

audiocpp_cli --task tts --family pocket_tts \
  --model models/PocketTTS-GGUF/english/pocket-tts-english-q8_0.gguf \
  --backend cuda --text "Hello from my saved voice." \
  --voice-id my_voice --out out.wav

Common Options (use directly)

Option Values Default Meaning
--voice-id packaged or exported voice id not set Voice-state filename in embeddings, without .safetensors.
--voice-ref WAV path not set Reference speaker audio for cloning.
--voice-state-out .safetensors path not set Export prepared voice state from --voice-ref and exit.
--text-chunk-size integer chars not set Optional character chunk size; otherwise use sentence/token budgeting.

Request Options (use with --request-option)

Option Values Default Meaning
frames_after_eos integer >= -1 -1 Extra frames after EOS; -1 uses the model-derived value.
max_frames integer >= 0 0 Maximum generated audio frames; zero estimates the cap from text length. Captured from the first request during session preparation. Legacy max_steps remains accepted.
text_chunk_tokens integer >= 1 50 Tokenizer tokens per text chunk, not generated tokens. Legacy max_tokens retains this input-token meaning.
temperature float model default Positive flow noise temperature; defaults to the model configuration. Captured from the first request during session preparation.
seed integer >= 0 random Noise seed; omitted chooses a random seed. Captured from the first request during session preparation.
noise_clamp float -1 Noise clamp; a negative value disables clamping. Captured from the first request during session preparation.
eos_threshold float -4 EOS detection threshold. Captured from the first request during session preparation.
noise_file path not set Precomputed noise schedule file. Captured from the first request during session preparation.
voice_embedding_file path not set Precomputed voice-state embedding file. Captured from the first request during session preparation. Legacy voice_embedding_path remains accepted.
truncate_clone_audio bool false Truncate voice clone audio. Captured from the first request during session preparation.
text_chunk_size integer not set Optional per-request character chunk size; otherwise use sentence/token budgeting.
export_voice_state_file path not set Export the prepared voice state during session preparation. Legacy export_voice_state_path remains accepted.

PocketTTS cloning does not use a reference transcript. Legacy voice_clone_text remains accepted with clone audio but does not affect voice encoding.

Session Options (use with --session-option)

Option Values Default Meaning
pocket_tts.voice_state_cache_slots integer >= 0 4 Cached prepared voice states; zero disables reuse.
pocket_tts.offline_graph_capacity_mode fixed, double, tiered, grow not set Offline graph capacity policy; CPU/Metal default tiered, other backends double.
pocket_tts.prompt_graph_capacity integer >= 1 not set Optional reserved prompt capacity.
pocket_tts.generation_graph_capacity integer >= 1 not set Optional reserved generation capacity.
pocket_tts.weight_type native, f32, f16, bf16, q8_0 not set Shared matmul weight storage; component matmul settings inherit it. Convolution storage remains independently native unless overridden.
pocket_tts.matmul_weight_type native, f32, f16, bf16, q8_0 not set Weight storage type; component-specific settings inherit weight_type.
pocket_tts.conv_weight_type native, f32, f16 native Convolution weight storage.
pocket_tts.weight_context_mb integer >= 1 64 Context or graph arena size in MiB.
pocket_tts.flow_weight_context_mb integer >= 1 see description Flow weight context in MiB; inherits pocket_tts.weight_context_mb when omitted.
pocket_tts.mimi_encoder_weight_context_mb integer >= 1 see description Mimi encoder weight context in MiB; inherits pocket_tts.weight_context_mb when omitted.
pocket_tts.mimi_decoder_weight_context_mb integer >= 1 see description Mimi decoder weight context in MiB; inherits pocket_tts.weight_context_mb when omitted.
pocket_tts.flow_weights_view_context_mb integer >= 1 256 Context or graph arena size in MiB.
pocket_tts.flow_step_graph_arena_mb integer >= 1 256 Host graph-metadata arena; legacy flow_step_graph_context_mb accepted with the same family prefix.
pocket_tts.mimi_encoder_graph_arena_mb integer >= 1 512 Host graph-metadata arena; legacy mimi_encoder_graph_context_mb accepted with the same family prefix.
pocket_tts.mimi_conv_graph_arena_mb integer >= 1 32 Host graph-metadata arena; legacy mimi_conv_graph_context_mb accepted with the same family prefix.
pocket_tts.mimi_transformer_graph_arena_mb integer >= 1 96 Host graph-metadata arena; legacy mimi_transformer_graph_context_mb accepted with the same family prefix.
pocket_tts.mimi_tail_graph_arena_mb integer >= 1 512 Host graph-metadata arena; legacy mimi_tail_graph_context_mb accepted with the same family prefix.
pocket_tts.mimi_full_chunk_frames integer >= 1 90 Full-sequence decoder chunk frames.
pocket_tts.mimi_stage2_chunk_frames integer >= 1 900 Second-stage decoder chunk frames.
pocket_tts.use_full_mimi bool true Use full-sequence Mimi decoding.

Load Options (use with --load-option)

Option Values Default Meaning
pocket_tts.language text english Model language selection.

The legacy load name language and session name offline_graph_capacity_mode remain accepted. Use only one name for each control. Preparation-only request controls are captured when prepare() is called. With CLI --requests, they come from the first request and are retained for later requests in that batch.

Qwen3 TTS

Qwen3 TTS supports reference voice cloning, voice design, and packaged custom voices. See the Qwen3 TTS guide for Base, VoiceDesign, CustomVoice, sampling, and streaming details.

audiocpp_cli --task tts --family qwen3_tts --model models/Qwen3-TTS-12Hz-1.7B-Base --backend cuda --text "Hello from Qwen3 TTS." --voice-ref assets/resources/b.wav --out out.wav

sanoTTS

sanoTTS is a family of very small offline TTS voices (English, Vietnamese, Indonesian, Czech, German, Spanish, French, Italian, Portuguese, Romanian, Russian, Turkish, Nepali and Hindi; 294k to 2.27M parameters) with native GGML runtimes; the smallest voice also runs on microcontrollers. The GGUF packages are standalone and download from Hugging Face. sanoTTS requires an external eSpeak-ng installation:

python3 tools/model_manager_v2.py install sanotts_heart_nano_orig --models-root models

audiocpp_cli --task tts --family sanotts \
  --model models/sanoTTS-heart-nano-GGUF --backend cpu \
  --text "Hello from sano T T S, a very small neural text to speech model." \
  --request-option speaking_rate=1.0 \
  --out sanotts.wav

See the sanoTTS community model guide for eSpeak-ng paths, seed semantics, parity evidence, and performance numbers.

Supertonic

Supertonic 3 is a preset-voice multilingual TTS model. It does not use external speaker references in the current integration.

Field Value
Family supertonic
Model directory models/supertonic-3
Task tts
Modes offline, streaming
Languages en, ko, ja, ar, bg, cs, da, de, el, es, et, fi, fr, hi, hr, hu, id, it, lt, lv, nl, pl, pt, ro, ru, sk, sl, sv, tr, uk, vi, na
Voice input Built-in preset voice id
Built-in voices M1-M5, F1-F5
audiocpp_cli --task tts --family supertonic --model /path/to/supertonic-3 --backend cuda --language en --text "Hello from Supertonic." --voice-id M1 --out out.wav

Streaming output:

audiocpp_cli --task tts --family supertonic --model /path/to/supertonic-3 --backend cuda --mode streaming --language en --text "Hello from Supertonic." --voice-id M1 --out out.wav

Common Options (use directly)

Option Values Default Meaning
--voice-id M1-M5, F1-F5 M1 Preset voice.
--language language code en Text language.
--num-inference-steps integer 8 Flow denoising steps.
--seed integer 1234 Noise seed.
--text-chunk-size characters 300, or 120 for ko/ja Framework long-form text chunk size.
--text-chunk-mode default, tag_aware, japanese, endline default Framework long-form text chunking mode.

Request Options (use with --request-option)

Option Values Default Meaning
voice_id M1, M2, M3, M4, M5, F1, F2, F3, F4, F5 M1 Built-in voice preset; --voice-id takes precedence.
num_inference_steps integer >= 1 8 Flow denoising steps.
speed float 1.05 Positive speech speed multiplier; voice.style.speaking_rate takes precedence.
seed integer >= 0 1234 Noise seed.
text_chunk_size integer not set Framework text chunk size; defaults to 120 for Korean/Japanese, otherwise 300.
text_chunk_mode default, tag_aware, japanese, endline default Framework text chunking mode.

Session Options (use with --session-option)

Option Values Default Meaning
supertonic.weight_type native, f32, f16, bf16, q8_0 native Weight storage type.
supertonic.style_cache_slots integer >= 0 4 Cached preset style slots; zero disables reuse.

The legacy request name speaking_rate remains accepted for speed. Use only one name for each request control.

VibeVoice

VibeVoice is a long-form multi-speaker TTS model, available in 1.5B and 7B sizes. Prompts use speaker-labeled lines, and speaker reference WAVs are provided in the same order as the speaker ids.

Field Value
Family vibevoice
Model directory models/VibeVoice-1.5B (or models/VibeVoice-7B)
Task tts
Modes offline, streaming
Languages Model auto-handles supported languages
Voice input Up to four speaker reference WAVs through voice_samples
Text format Lines like Speaker 1: ... Speaker 2: ...; ids are normalized internally
Long-form No text chunking; generation uses the model long-form path
LoRA Optional decoder adapter through --load-option vibevoice.lora or the matching session option

Use --mode streaming to emit native audio chunks during generation, including speaker changes. The completed audio uses the same generation path as offline mode. For HTTP, configure "mode": "streaming" and request "stream_format": "sse" on /v1/audio/speech; deltas contain only newly generated PCM. The full speaker-labeled text is still supplied at the start of the request.

Both sizes share the same CLI surface and the same Qwen2.5 tokenizer; the 7B is simply larger (hidden size 3584 vs 1536) and needs a matching 7B LoRA if one is used.

audiocpp_cli --task tts --family vibevoice --model models/VibeVoice-1.5B --backend cuda --text "Speaker 1: Hello. Speaker 2: Nice to meet you." --request-option voice_samples=assets/resources/a.wav,assets/resources/b.wav --out out.wav

Common Options (use directly)

Option Values Default Meaning
--guidance-scale float 1.3 Classifier-free guidance scale.
--num-inference-steps integer model default Diffusion steps per audio chunk.
--max-tokens integer >= 0 0 Maximum generated decoder tokens; zero uses the model-derived limit.
--do-sample true, false false Enable stochastic decoder sampling.
--temperature float 1.0 Decoder sampling temperature.
--top-k integer 50 Decoder top-k sampling limit.
--top-p float 1.0 Decoder nucleus sampling limit.

Request Options (use with --request-option)

Option Values Default Meaning
voice_samples text not set Comma-separated reference WAV paths ordered by speaker ID; cannot be combined with voice_ref.
num_inference_steps integer >= 1 model default Diffusion steps; defaults to the checkpoint configuration.
guidance_scale float 1.3 Classifier-free guidance scale.
max_length_times float 2 Positive generation length multiplier.
max_tokens integer >= 0 0 Maximum generated tokens; zero uses the model-derived limit.
do_sample bool false Enable sampling.
temperature float 1 Positive sampling temperature.
top_k integer >= 0 50 Top-k sampling limit; zero disables filtering.
top_p float 1 Nucleus probability in (0, 1].
seed integer >= 0 1234 Sampling seed.
prompt_noise_file path not set F32 prompt acoustic noise file.
diffusion_noise_file path not set F32 initial diffusion noise file.

Session Options (use with --session-option)

Option Values Default Meaning
vibevoice.weight_type native, f32, f16, bf16, q8_0 not set Weight storage type; component-specific settings inherit weight_type.
vibevoice.tokenizer_weight_type native, f32, f16, bf16, q8_0 not set Weight storage type; component-specific settings inherit weight_type.
vibevoice.connector_weight_type native, f32, f16, bf16, q8_0 not set Weight storage type; component-specific settings inherit weight_type.
vibevoice.decoder_weight_type native, f32, f16, bf16, q8_0 not set Weight storage type; component-specific settings inherit weight_type.
vibevoice.diffusion_head_weight_type native, f32, f16, bf16, q8_0 not set Weight storage type; component-specific settings inherit weight_type.
vibevoice.lora path not set Decoder adapter file or PEFT directory applied when creating the session; do not also supply the load option.
vibevoice.lora_scale float not set Session adapter scale override; omitted uses lora_alpha / r.

Load Options (use with --load-option)

Option Values Default Meaning
vibevoice.lora path not set Decoder adapter file or PEFT directory, merged at load time.
vibevoice.lora_scale float not set LoRA scale override; omitted uses lora_alpha / r.

The adapter follows the PEFT training layout: adapter_model.safetensors + adapter_config.json for the language-model LoRA, plus optional diffusion_head/model.safetensors (or diffusion_head_full.bin), acoustic_connector/pytorch_model.bin, and semantic_connector/pytorch_model.bin for the fully fine-tuned components. Everything is applied at load time, so it composes with the vibevoice.*_weight_type quantization options and adds no per-step cost; the overlay is logged with --log. Use a 1.5B adapter with VibeVoice-1.5B and a 7B adapter with VibeVoice-7B; a size mismatch is rejected with a descriptive error. The same option may instead be passed as --session-option vibevoice.lora (but not via both at once).

Native A/B and ComfyUI up/down files with matching decoder targets are also accepted. Per-tensor alpha supplies scaling without a PEFT config; otherwise provide vibevoice.lora_scale when no config is present. Ordinary matrix LoKr factors are supported; unsupported adapter algorithms fail explicitly. Optional component sidecars are resolved beside the adapter file or inside its directory.

For backend weight-type controls, use audiocpp_cli --inspect --model <model-dir> --family <family>.

VoxCPM1

VoxCPM1 supports offline and streaming TTS plus short-reference voice cloning. It reuses the VoxCPM2 runtime tree with a GGUF tensor-adaptation layer that understands the OpenBMB folded AudioVAE weights. The registered package is the 16 kHz 0.5B model; the runtime is size-agnostic, so a different VoxCPM1 GGUF can still be loaded via an explicit --model <path>.

Field Value
Family voxcpm1
Model directory models/VoxCPM1-GGUF (0.5B)
Tasks tts, clon
Modes offline, streaming
Languages Model auto-handles supported languages
Voice input Optional reference WAV; optional transcript through --reference-text
Built-in voices Not exposed

Text to speech:

audiocpp_cli --task tts --family voxcpm1 --model models/VoxCPM1-GGUF/voxcpm-0.5b-q8_0-audiovae-f16.gguf --backend cpu --text "Hello from VoxCPM1." --out out.wav

Voice clone:

audiocpp_cli --task tts --family voxcpm1 --model models/VoxCPM1-GGUF/voxcpm-0.5b-q8_0-audiovae-f16.gguf --backend cpu --text "Hello from VoxCPM1." --voice-ref assets/resources/b.wav --out out.wav

clon is an alias to the same synthesis path. Route selection does not change the existing reference-audio or continuation-prompt behavior.

Streaming output:

audiocpp_cli --task tts --family voxcpm1 --model models/VoxCPM1-GGUF/voxcpm-0.5b-q8_0-audiovae-f16.gguf --backend cpu --mode streaming --text "Hello from VoxCPM1." --request-option retry_badcase=false --out out.wav
Option Values Default Meaning
--voice-ref WAV path not set Reference speaker audio.
--reference-text text empty string Transcript for the reference audio (clone prompting).
--mode offline, streaming offline Full-output or streaming run mode; streaming requires retry_badcase=false.
--session-option voxcpm1.mem_saver=true|false bool false Use tighter graph workspaces and release MiniCPM/AudioVAE request graphs after completion to reduce resident VRAM.
--session-option voxcpm1.prompt_cache_slots=<n> integer 1 Prompt and prompt-audio embedding cache slots. Set to 0 to disable prompt caching.
--max-tokens integer 4096 Maximum generated AR tokens.
--num-inference-steps integer 10 Flow matching steps.
--guidance-scale float 2.0 CFG strength.

VoxCPM2

VoxCPM2 supports plain TTS, voice design, controllable voice cloning, and an ultimate-clone style that uses both prompt audio and transcript. The CLI expresses voice design with the same text convention as the upstream examples: put the voice/style description in parentheses at the start of --text.

VocalRender-Pro is a Mandarin score-conditioned singing fine-tune of VoxCPM2. It uses the voxcpm2 family and has a separate installable GGUF package; see its guide for score tokens, reference-audio requirements, and a working CLI example.

Field Value
Family voxcpm2
Model directory models/VoxCPM2
Tasks tts, clon, vdes
Modes offline, streaming
Languages Model auto-handles supported languages
Voice input Optional reference WAV; optional transcript through --reference-text
Built-in voices Not exposed

Voice design:

audiocpp_cli --task tts --family voxcpm2 --model models/VoxCPM2 --backend cuda --text "(A young woman, gentle and clear voice)Hello from VoxCPM2." --out out.wav

Voice clone:

audiocpp_cli --task tts --family voxcpm2 --model models/VoxCPM2 --backend cuda --text "Hello from VoxCPM2." --voice-ref assets/resources/b.wav --out out.wav

Ultimate clone:

audiocpp_cli --task tts --family voxcpm2 --model models/VoxCPM2 --backend cuda --text "Hello from VoxCPM2." --voice-ref assets/resources/b.wav --reference-text "Some call me nature. Others call me Mother Nature. I've been here for over 4.5 billion years. 22,500 times longer than you." --out out.wav

clon and vdes are aliases to the same synthesis implementation. Route selection does not add or remove reference-audio, prompt, or style inputs.

Streaming output:

audiocpp_cli --task tts --family voxcpm2 --model models/VoxCPM2 --backend cuda --mode streaming --request-option retry_badcase=false --text "Hello from VoxCPM2." --out out.wav

Common Options (use directly)

Option Values Default Meaning
--text "(style)content" text required Voice design or style control.
--voice-ref WAV path not set Reference speaker audio.
--reference-text text empty string Transcript for ultimate-clone style prompting.
--mode offline, streaming offline Full-output or streaming run mode.
--text-chunk-size integer chars 2048 Framework long-form text chunk size. Offline only.
--text-chunk-mode default, tag_aware, japanese, endline tag_aware Framework text chunking mode. Offline only.
--max-tokens integer 4096 Maximum generated audio tokens. Zero resolves to model max_length; requires min_tokens <= resolved max_tokens <= model limit.
--num-inference-steps integer 10 Flow sampling steps. Must be positive.
--guidance-scale float 2.0 Classifier-free guidance scale. Must be nonnegative.

Request Options (use with --request-option)

Option Values Default Meaning
min_tokens integer >= 0 2 Minimum generated audio tokens.
max_tokens integer >= 0 4096 Maximum generated audio tokens. Zero resolves to model max_length; requires min_tokens <= resolved max_tokens <= model limit.
num_inference_steps integer 10 Flow sampling steps. Must be positive.
guidance_scale float 2 Classifier-free guidance scale. Must be nonnegative.
retry_badcase bool true Retry detected bad generations. Offline only; streaming requires false.
retry_badcase_max_times integer 3 Total attempts including the initial attempt, not extra retries; must be positive.
retry_badcase_ratio_threshold float 6 Bad-case audio/text length ratio threshold. Must be positive.
seed integer >= 0 1234 Sampling seed.
cfm_noise_file path not set Precomputed flow noise file.
stream_left_context integer >= 0 3 Previous patches decoded as streaming left context.
stream_chunk_policy grow, fixed grow Streaming only. Grow emits one patch first, then doubles toward stream_frames_per_event; fixed waits for the configured patch count.
stream_frames_per_event integer >= 1 4 Maximum generated latent patches per streaming audio event. Set to 1 for the original one-patch cadence. Ignored offline.
prompt_text text not set Transcript for continuation prompt audio, distinct from the base voice reference.
ultimate_clone bool false Use the voice reference itself as the continuation prompt, with reference_text or prompt_text as its transcript. Requires both reference audio and its transcript; cannot be combined with explicit prompt audio. Omitted/false preserves existing prompt selection.
chunk_strategy continuation, stateless continuation Long-form continuation or independent generation per chunk. Offline only.
text_chunk_size integer 2048 Framework long-form text chunk size. Offline only.
text_chunk_mode default, tag_aware, japanese, endline tag_aware Framework text chunking mode. Offline only.

For ultimate cloning, add --request-option ultimate_clone=true to a voice-clone request with --voice-ref and --reference-text. This uses continuation conditioning rather than reference-only cloning, in both offline and streaming modes. Existing explicit prompt audio with prompt_text remains supported when ultimate_clone is omitted or false. Encoded prompts use the existing in-memory cache; increase voxcpm2.prompt_cache_slots to retain multiple reference/prompt combinations in a session.

Session Options (use with --session-option)

Option Values Default Meaning
voxcpm2.weight_type native, f32, f16, bf16, q8_0 not set Language-model weight storage; does not override AudioVAE storage.
voxcpm2.audiovae_weight_type native, f32, f16, bf16, q8_0 not set AudioVAE weight storage; defaults independently to native, not the shared weight_type.
voxcpm2.prompt_cache_slots integer >= 0 1 Cached encoded prompt slots; zero disables reuse.
voxcpm2.mem_saver bool true Release staged runtime graphs.
voxcpm2.audiovae_tile_frames integer >= 0 0 Opt-in causal AudioVAE tiling; zero preserves full decoding. Set 128 to reduce decoder memory, at the cost of repeated context computation that can slow CPU decoding.
voxcpm2.perf_mode off, cuda_perf off cuda_perf packs QKV and gate/up projections using their existing weight dtype. May change numerical results and generated audio; off preserves standard execution.
voxcpm2.lora directory or checkpoint file not set Native LoRA weights with adjacent lora_config.json; merged at session creation without changing the AudioVAE.
voxcpm2.lora_scale finite float 1 Multiplier for the adapter's configured alpha/r scaling.
voxcpm2.weight_context_mb integer >= 1 3072 Context or graph arena size in MiB.
voxcpm2.text_embedding_graph_arena_mb integer >= 1 64 Host graph-metadata arena size in MiB; legacy text_embedding_graph_context_mb accepted with the same family prefix.
voxcpm2.lm_step_graph_arena_mb integer >= 1 1024 Host graph-metadata arena size in MiB; legacy lm_step_graph_context_mb accepted with the same family prefix.
voxcpm2.projection_graph_arena_mb integer >= 1 256 Host graph-metadata arena size in MiB; legacy projection_graph_context_mb accepted with the same family prefix.
voxcpm2.local_encoder_graph_arena_mb integer >= 1 512 Host graph-metadata arena size in MiB; legacy local_encoder_graph_context_mb accepted with the same family prefix.
voxcpm2.dit_graph_arena_mb integer >= 1 1024 Host graph-metadata arena size in MiB; legacy dit_graph_context_mb accepted with the same family prefix.
voxcpm2.audiovae_weight_context_mb integer >= 1 768 Context or graph arena size in MiB.
voxcpm2.audiovae_graph_arena_mb integer >= 1 1024 Host graph-metadata arena size in MiB; legacy audiovae_graph_context_mb accepted with the same family prefix.
voxcpm2.audiovae_encoder_graph_arena_mb integer >= 1 1024 Host graph-metadata arena size in MiB; legacy audiovae_encoder_graph_context_mb accepted with the same family prefix.
voxcpm2.audiovae_latent_capacity integer >= 1 not set Optional decoder graph reservation in latent frames, reused by shorter requests and doubled when exceeded; omitted builds the graph at each request's own frame count.
voxcpm2.exec_plan JSON string {} Component audiovae: impl is default/ggml; backend, if supplied, must match the session; no artifacts. params.threads is a nonnegative int. Positive values require a CPU session and create a dedicated AudioVAE backend, enabling streaming decode overlap; also controls offline decoding and prompt encoding threads. Omitted/0 shares the session backend.
voxcpm2.audiovae_encoder_sample_capacity integer >= 1 240000 Reserved encoder sample capacity.

For a CPU session with a four-thread AudioVAE worker, add:

--session-option 'voxcpm2.exec_plan={"audiovae":{"impl":"ggml","backend":"cpu","params":{"threads":4}}}'