voice_audio_multi/model_specs/dots_tts.json
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

424 lines
12 KiB
JSON

{
"schema_version": 1,
"family": "dots_tts",
"display_name": "DotTTS",
"description": "DotTTS is a multilingual zero-shot TTS, voice-cloning, and speech-editing model family packaged for audio.cpp with SOAR and MeanFlow generation, prompt-audio plus prompt-text prefill, speaker-reference conditioning, language tags, multiple synthesis templates, long-form text chunking, and true streaming audio output.",
"category": "tts",
"status": "supported",
"tasks": [
"tts",
"clone"
],
"modes": [
"offline",
"streaming"
],
"languages": [
"multilingual"
],
"runtime": {
"tags": [
"gguf",
"stream"
]
},
"capabilities": {
"tts": [
"speaker_reference",
"style_control",
"long_form"
],
"clone": [
"speaker_reference",
"style_control",
"long_form"
]
},
"options": {
"request": [
{
"name": "reference_text",
"type": "string",
"description": "Transcript for the prompt audio. When set with reference audio, DotTTS uses prompt prefill for higher quality voice cloning.",
"required": false
},
{
"name": "reference_duration_sec",
"type": "float",
"description": "Optional prompt-audio trim duration before reference conditioning and prompt prefill.",
"required": false,
"min": 0.0
},
{
"name": "template_name",
"type": "enum",
"description": "DotTTS synthesis template. tts is normal text-to-speech; instruction_tts adds instruction conditioning; text_to_audio uses a sound-description template; tts_interleave uses the streaming interleave schedule; edit uses the DotTTS Edit source-audio editing schedule and is offline-only.",
"values": [
"tts",
"instruction_tts",
"text_to_audio",
"tts_interleave",
"edit"
],
"required": false,
"default": "tts"
},
{
"name": "source_audio",
"type": "audio_path",
"description": "Source WAV path for DotTTS Edit. Required when template_name=edit unless audio_input is supplied by the caller.",
"required": false
},
{
"name": "instruct",
"type": "string",
"description": "Structured DotTTS Edit instruction. If omitted with template_name=edit, the request text is used as the instruction.",
"required": false
},
{
"name": "source_text",
"type": "string",
"description": "Optional source transcript override for DotTTS Edit. If omitted, it is rendered from instruction tags.",
"required": false
},
{
"name": "target_text",
"type": "string",
"description": "Edit target transcript override. When omitted, explicit instruction plus text input uses that text; otherwise the target is rendered from instruction tags.",
"required": false
},
{
"name": "use_xvector",
"type": "enum",
"description": "DotTTS Edit speaker conditioning mode. auto follows the upstream tag-based behavior; on/off force or disable source-audio speaker conditioning.",
"values": [
"auto",
"on",
"off"
],
"required": false,
"default": "auto"
},
{
"name": "language",
"type": "string",
"description": "Optional target language tag. none disables language tagging; otherwise pass a language code such as en or zh.",
"required": false,
"default": "none"
},
{
"name": "num_inference_steps",
"type": "int",
"description": "SOAR flow-matching inference step count; default 10.",
"required": false,
"min": 1,
"default": 10
},
{
"name": "guidance_scale",
"type": "float",
"description": "Classifier-free guidance scale used by SOAR flow matching. Default 1.2.",
"required": false,
"min": 0.0,
"default": 1.2
},
{
"name": "speaker_scale",
"type": "float",
"description": "Multiplier applied to the prompt speaker embedding; default 1.5.",
"required": false,
"min": 0.0,
"default": 1.5
},
{
"name": "sampler_mode",
"type": "enum",
"description": "SOAR ODE solver method for flow matching. Fixed-step euler is the default and parity baseline.",
"values": [
"euler",
"midpoint",
"rk4"
],
"required": false,
"default": "euler"
},
{
"name": "max_tokens",
"type": "int",
"description": "Maximum generated audio patch count per generated segment; default 500. In Edit mode source patches consume this budget; it must exceed the source-patch count.",
"required": false,
"min": 1,
"default": 500
},
{
"name": "text_chunk_size",
"type": "int",
"description": "Maximum text codepoints per generated segment for long-form requests; default 320.",
"required": false,
"min": 1,
"default": 320
},
{
"name": "text_chunk_mode",
"type": "enum",
"description": "Framework text chunking mode; default tag_aware preserves leading style/control tags across long-form chunks.",
"values": [
"default",
"tag_aware",
"japanese",
"endline"
],
"required": false,
"default": "tag_aware"
},
{
"name": "vocoder_merge_steps",
"type": "int",
"description": "Streaming vocoder latent patch merge size after the initial unmerged patches; default 4, matching the Python optimized streaming runtime default.",
"required": false,
"min": 1,
"default": 4
},
{
"name": "seed",
"type": "int",
"description": "Seed for prompt latent sampling and flow noise initialization; default 42.",
"required": false,
"min": 0,
"default": 42
}
],
"session": [
{
"name": "weight_type",
"type": "enum",
"description": "Shared matmul weight storage type for DotTTS components; default native. Component-specific weight options override this value.",
"preset": "weight_type_full",
"required": false,
"default": "native"
},
{
"name": "speaker_encoder_weight_type",
"type": "enum",
"description": "Speaker encoder matmul weight storage type; defaults to weight_type.",
"preset": "weight_type_full",
"required": false
},
{
"name": "codec_weight_type",
"type": "enum",
"description": "AudioVAE vocoder matmul and recurrent weight storage type; defaults to weight_type.",
"preset": "weight_type_full",
"required": false
},
{
"name": "patch_encoder_weight_type",
"type": "enum",
"description": "Patch encoder transformer matmul weight storage type; defaults to weight_type.",
"preset": "weight_type_full",
"required": false
},
{
"name": "llm_weight_type",
"type": "enum",
"description": "Autoregressive language model matmul weight storage type; defaults to weight_type.",
"preset": "weight_type_full",
"required": false
},
{
"name": "flow_weight_type",
"type": "enum",
"description": "SOAR or MeanFlow DiT flow-matching matmul weight storage type; defaults to weight_type.",
"preset": "weight_type_full",
"required": false
},
{
"name": "codec_conv_weight_type",
"type": "enum",
"description": "Convolution weight storage type; default native.",
"preset": "weight_type_conv",
"required": false,
"default": "native"
},
{
"name": "reference_cache_slots",
"type": "int",
"description": "Prepared reference-audio cache slots; set 0 to disable reuse.",
"required": false,
"min": 0,
"default": 4
},
{
"name": "mem_saver",
"type": "bool",
"description": "Load DotTTS components by request phase and release their weights/graphs after last use while keeping reference cache slots alive.",
"required": false,
"default": false
}
],
"load": []
},
"package_defaults": {
"download": {
"kind": "huggingface_snapshot",
"repo": "audio-cpp/audio.cpp-gguf",
"revision": "main",
"gated": false
}
},
"packages": [
{
"id": "dots_tts_soar_q8_0",
"display_name": "DotTTS SOAR Q8_0 GGUF",
"default": true,
"format": "gguf",
"precision": "q8_0",
"target_directory": "DotTTS-SOAR-GGUF",
"files": [
"DotTTS-SOAR-GGUF/dots-tts-soar-q8_0.gguf"
],
"strip_prefix": "DotTTS-SOAR-GGUF"
},
{
"id": "dots_tts_soar_bf16",
"display_name": "DotTTS SOAR BF16 GGUF",
"default": false,
"format": "gguf",
"precision": "bf16",
"target_directory": "DotTTS-SOAR-GGUF",
"files": [
"DotTTS-SOAR-GGUF/dots-tts-soar-bf16.gguf"
],
"strip_prefix": "DotTTS-SOAR-GGUF"
},
{
"id": "dots_tts_mf_q8_0",
"display_name": "DotTTS MeanFlow Q8_0 GGUF",
"default": false,
"format": "gguf",
"precision": "q8_0",
"target_directory": "DotTTS-MF-GGUF",
"files": [
"DotTTS-MF-GGUF/dots-tts-mf-q8_0.gguf"
],
"strip_prefix": "DotTTS-MF-GGUF"
},
{
"id": "dots_tts_mf_bf16",
"display_name": "DotTTS MeanFlow BF16 GGUF",
"default": false,
"format": "gguf",
"precision": "bf16",
"target_directory": "DotTTS-MF-GGUF",
"files": [
"DotTTS-MF-GGUF/dots-tts-mf-bf16.gguf"
],
"strip_prefix": "DotTTS-MF-GGUF"
},
{
"id": "dots_tts_edit_q8_0",
"display_name": "DotTTS Edit Q8_0 GGUF",
"default": false,
"format": "gguf",
"precision": "q8_0",
"target_directory": "DotTTS-Edit-GGUF",
"files": [
"DotTTS-Edit-GGUF/dots-tts-edit-q8_0.gguf"
],
"strip_prefix": "DotTTS-Edit-GGUF"
},
{
"id": "dots_tts_edit_bf16",
"display_name": "DotTTS Edit BF16 GGUF",
"default": false,
"format": "gguf",
"precision": "bf16",
"target_directory": "DotTTS-Edit-GGUF",
"files": [
"DotTTS-Edit-GGUF/dots-tts-edit-bf16.gguf"
],
"strip_prefix": "DotTTS-Edit-GGUF"
}
],
"dependencies": [],
"ui": {
"recommended_package": "dots_tts_soar_q8_0",
"tags": [
"TTS",
"Clone",
"Stream",
"GGUF"
],
"docs": [
"docs/tts.md",
"docs/gguf.md"
]
},
"sources": [
{
"format": "gguf",
"roots": {
"model": ".",
"weights": "$gguf"
},
"files": {
"config": "model:config.json",
"llm_config": "model:llm_config.json",
"tokenizer_json": "model:tokenizer.json",
"tokenizer_config": "model:tokenizer_config.json",
"vocab": "model:vocab.json",
"merges": "model:merges.txt",
"added_tokens": "model:added_tokens.json",
"special_tokens_map": "model:special_tokens_map.json"
},
"tensors": {
"core_weights": {
"source": "weights:",
"prefix": "core"
},
"vocoder_weights": {
"source": "weights:",
"prefix": "vocoder"
},
"speaker_encoder_weights": {
"source": "weights:",
"prefix": "speaker_encoder"
},
"latent_stats": {
"source": "weights:",
"prefix": "latent_stats"
}
}
},
{
"format": "safetensors",
"roots": {
"model": "."
},
"files": {
"config": "model:config.json",
"llm_config": "model:llm_config.json",
"tokenizer_json": "model:tokenizer.json",
"tokenizer_config": "model:tokenizer_config.json",
"vocab": "model:vocab.json",
"merges": "model:merges.txt",
"added_tokens": "model:added_tokens.json",
"special_tokens_map": "model:special_tokens_map.json"
},
"tensors": {
"core_weights": {
"source": "model:model.safetensors"
},
"vocoder_weights": {
"source": "model:vocoder.safetensors"
},
"speaker_encoder_weights": {
"source": "model:speaker_encoder.safetensors"
},
"latent_stats": {
"source": "model:latent_stats.safetensors"
}
}
}
]
}