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

238 lines
6.9 KiB
JSON

{
"schema_version": 1,
"family": "zipvoice",
"display_name": "ZipVoice",
"description": "Community ZipVoice / ZipVoice-Distill flow-matching TTS with a TTSZipformer backbone (U-Net downsampling stacks, compact relative position attention), duration prediction from prompt ratio, Euler solver with t-shift and classifier-free guidance, and Vocos mel-24kHz vocoder (k2-fsa/ZipVoice).",
"category": "tts",
"status": "community",
"tasks": [
"tts",
"clone"
],
"modes": [
"offline",
"streaming"
],
"languages": [
"en",
"zh"
],
"runtime": {
"tags": [
"server",
"stream"
]
},
"capabilities": {
"clone": [
"speaker_reference"
]
},
"options": {
"request": [
{
"name": "reference_text",
"type": "string",
"description": "Transcript matching the reference voice audio; required for zero-shot cloning.",
"required": true
},
{
"name": "text_chunk_size",
"type": "int",
"description": "Maximum characters per generated text chunk; default 128.",
"required": false,
"min": 1,
"default": 128
},
{
"name": "text_chunk_mode",
"type": "enum",
"description": "Framework text chunking mode.",
"preset": "text_chunk_mode_full",
"required": false,
"default": "word_budget"
},
{
"name": "guidance_scale",
"type": "float",
"description": "Guidance scale; inherits the session default (3.0 for both variants). ZipVoice-Distill uses a guidance-scale embedding; ZipVoice uses batched CFG. Zero disables guidance. Any finite nonnegative value is accepted.",
"required": false,
"min": 0,
"default": 3
},
{
"name": "num_inference_steps",
"type": "int",
"description": "Euler ODE steps; inherits the session default (8 for both variants).",
"required": false,
"min": 1,
"max": 64,
"default": 8
},
{
"name": "shift",
"type": "float",
"description": "Shift timesteps toward low SNR (smaller = stronger shift); default 0.5. Must be finite and positive.",
"required": false,
"default": 0.5
},
{
"name": "speed",
"type": "float",
"description": "Speech speed multiplier applied through the prompt-duration ratio; default 1.0. Must be finite and positive.",
"required": false,
"default": 1
},
{
"name": "feat_scale",
"type": "float",
"description": "Feature scale applied to log-mel features; default 0.1 (reference default). Must be finite and positive.",
"required": false,
"default": 0.1
},
{
"name": "target_rms",
"type": "float",
"description": "Target RMS for prompt loudness normalization; 0 disables. Default 0.1. Negative values disable normalization; values above 1 are accepted.",
"required": false,
"default": 0.1
},
{
"name": "seed",
"type": "int",
"description": "Noise seed; default 666 (reference default).",
"required": false,
"min": 0,
"default": 666
},
{
"name": "language",
"type": "string",
"description": "espeak language for phonemization; default en-us.",
"required": false,
"default": "en-us"
}
],
"session": [
{
"name": "vocos_path",
"type": "string",
"description": "Path to the Vocos vocoder checkpoint (vocos.safetensors or GGUF); required unless bundled in the model GGUF or placed next to the checkpoint.",
"required": false
},
{
"name": "guidance_scale",
"type": "float",
"description": "Default guidance scale for requests that do not set it; must be finite and nonnegative.",
"required": false,
"min": 0.0,
"default": 3.0
},
{
"name": "num_inference_steps",
"type": "int",
"description": "Default Euler steps for requests that do not set it.",
"required": false,
"min": 1,
"max": 64,
"default": 8
},
{
"name": "shift",
"type": "float",
"description": "Default timestep shift for requests that do not set it; must be finite and positive.",
"required": false,
"default": 0.5
},
{
"name": "espeak_library_path",
"type": "string",
"description": "Path to the espeak-ng shared library (e.g. /opt/homebrew/lib/libespeak-ng.dylib) for tokenizer=espeak.",
"required": false
},
{
"name": "espeak_data_path",
"type": "string",
"description": "Path to the espeak-ng data directory or package for tokenizer=espeak.",
"required": false
}
],
"load": []
},
"package_defaults": {
"download": {
"kind": "huggingface_snapshot",
"repo": "davidxifeng/zipvoice-gguf",
"revision": "main",
"gated": false
}
},
"packages": [
{
"id": "zipvoice_distill_gguf",
"display_name": "ZipVoice-Distill GGUF (local conversion)",
"description": "Self-contained GGUF: flow-matching model, bundled Vocos vocoder and the embedded text-frontend sidecars (tokens, config, zh tables) in one file. Converted from k2-fsa/ZipVoice with export_zipvoice_zh_dict.py + convert_zipvoice.py.",
"default": true,
"format": "gguf",
"precision": "orig",
"target_directory": "ZipVoice-Distill-GGUF",
"files": [
"zipvoice-distill-orig.gguf"
]
},
{
"id": "zipvoice_distill_q8_0",
"display_name": "ZipVoice-Distill GGUF (Q8_0)",
"description": "Self-contained Q8_0 GGUF with bundled Vocos and embedded text-frontend sidecars.",
"format": "gguf",
"precision": "q8_0",
"target_directory": "ZipVoice-Distill-GGUF",
"files": [
"zipvoice-distill-q8_0.gguf"
]
}
],
"dependencies": [],
"ui": {
"recommended_package": "zipvoice_distill_gguf",
"tags": [
"TTS",
"Clone"
],
"docs": [
"docs/models/zipvoice.md"
]
},
"sources": [
{
"format": "gguf",
"roots": {
"model": ".",
"weights": "$gguf"
},
"files": {
"tokens": "model:tokens.txt",
"model_config": "model:model.json"
},
"optional_files": {
"zh_chars": "model:zh_chars.tsv",
"zh_phrases": "model:zh_phrases.tsv",
"zh_syllables": "model:zh_syllables.tsv",
"zh_jieba_dict": "model:zh_jieba_dict.txt",
"zh_hmm_model": "model:zh_hmm_model.txt"
},
"tensors": {
"model": {
"source": "weights:",
"prefix": "model"
}
},
"optional_tensors": {
"vocos_vocoder": {
"source": "weights:",
"prefix": "vocos"
}
}
}
]
}