DotTTS

August 14, 2026 ยท View on GitHub

DotTTS is an experimental multilingual TTS and voice-cloning family with SOAR and MeanFlow packages. The default download is the standalone SOAR Q8 GGUF.

python3 tools/model_manager_v2.py install dots_tts_soar_q8_0

Use prompt audio plus reference_text for the best clone quality:

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

MeanFlow uses the same runtime and request options with the MF package:

python3 tools/model_manager_v2.py install dots_tts_mf_q8_0

audiocpp_cli --task tts --family dots_tts \
  --model models/DotTTS-MF-GGUF/dots-tts-mf-q8_0.gguf \
  --backend cuda \
  --text "The release candidate passed the local checks, so the team prepared baseline audio." \
  --voice-ref assets/resources/b.wav \
  --reference-text "Some call me nature. Others call me Mother Nature." \
  --request-option reference_duration_sec=5 \
  --out mf.wav

Streaming mode emits 48 kHz PCM from the streaming vocoder while the current generation request is still running, then returns a final merged WAV. vocoder_merge_steps controls how many latent patches are merged after the initial unmerged patches; smaller values generally produce finer events at the cost of more event overhead.

audiocpp_cli --task tts --mode streaming --family dots_tts \
  --model models/DotTTS-SOAR-GGUF/dots-tts-soar-q8_0.gguf \
  --backend cuda \
  --text "During the workshop, Maya explained the prototype clearly while the group compared audio quality and latency." \
  --voice-ref assets/resources/b.wav \
  --reference-text "Some call me nature. Others call me Mother Nature." \
  --request-option reference_duration_sec=5 \
  --out stream.wav \
  --out-dir stream_chunks

DotTTS exposes several synthesis templates:

audiocpp_cli --task tts --family dots_tts \
  --model models/DotTTS-SOAR-GGUF/dots-tts-soar-q8_0.gguf \
  --backend cuda \
  --text "The museum guide welcomed visitors and invited questions." \
  --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 template_name=instruction_tts \
  --out instruction.wav

For long-form text, DotTTS uses the framework chunker. The default tag_aware mode preserves leading style or language tags across chunks.

audiocpp_cli --task tts --family dots_tts \
  --model models/DotTTS-SOAR-GGUF/dots-tts-soar-q8_0.gguf \
  --backend cuda \
  --text "This longer request checks that several generated chunks keep the same reference voice while the final audio remains clear." \
  --voice-ref assets/resources/b.wav \
  --reference-text "Some call me nature. Others call me Mother Nature." \
  --request-option text_chunk_size=160 \
  --request-option text_chunk_mode=tag_aware \
  --out longform.wav
OptionValuesDefaultMeaning
--reference-text / --request-option reference_text=<text>textemptyTranscript for prompt audio.
--request-option reference_duration_sec=<f>secondsnot setTrim prompt audio before reference conditioning.
--request-option template_name=<name>tts, instruction_tts, text_to_audio, tts_interleavettsSynthesis template.
--language / --request-option language=<code>language code or nonenoneOptional language tag, such as en or zh.
--request-option num_inference_steps=<n>integer10Flow-matching inference steps.
--guidance-scale / --request-option guidance_scale=<f>float1.2Classifier-free guidance scale.
--request-option speaker_scale=<f>float1.5Prompt speaker embedding scale.
--request-option sampler_mode=<name>euler, midpoint, rk4eulerFlow sampler mode.
--max-tokens / --request-option max_tokens=<n>integer500Maximum generated audio patch count per segment.
--text-chunk-size / --request-option text_chunk_size=<n>chars320Long-form chunk size.
--text-chunk-mode / --request-option text_chunk_mode=<name>default, tag_aware, japanese, endlinetag_awareFramework chunking mode.
--request-option vocoder_merge_steps=<n>integer4Streaming vocoder latent merge size.
--seed / --request-option seed=<n>integer42Prompt latent and flow noise seed.
--session-option dots_tts.weight_type=<type>native, f32, f16, bf16, q8_0nativeShared matmul weight storage type.
--session-option dots_tts.speaker_encoder_weight_type=<type>native, f32, f16, bf16, q8_0weight_typeSpeaker encoder matmul weight storage type.
--session-option dots_tts.codec_weight_type=<type>native, f32, f16, bf16, q8_0weight_typeAudioVAE matmul and recurrent weight storage type.
--session-option dots_tts.patch_encoder_weight_type=<type>native, f32, f16, bf16, q8_0weight_typePatch encoder matmul weight storage type.
--session-option dots_tts.llm_weight_type=<type>native, f32, f16, bf16, q8_0weight_typeLLM matmul weight storage type.
--session-option dots_tts.flow_weight_type=<type>native, f32, f16, bf16, q8_0weight_typeSOAR or MeanFlow DiT matmul weight storage type.
--session-option dots_tts.codec_conv_weight_type=<type>native, f32, f16nativeAudioVAE convolution weight storage type.
--session-option dots_tts.reference_cache_slots=<n>integer4Prepared reference-audio cache slots; use 0 to disable reuse.
--session-option dots_tts.mem_saver=true|falseboolfalseRelease request-phase components while keeping reference cache slots alive.