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
293 lines
7.8 KiB
JSON
293 lines
7.8 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"family": "cosyvoice3",
|
|
"display_name": "CosyVoice3",
|
|
"description": "Fun-CosyVoice3 native GGUF package for zero-shot, cross-lingual, and instruction-conditioned text-to-speech using CosyVoice3 speech-token AR generation, causal masked flow mel decoding, CAM++ speaker conditioning, and causal HiFT waveform decoding.",
|
|
"category": "tts",
|
|
"status": "supported",
|
|
"tasks": [
|
|
"tts",
|
|
"clone"
|
|
],
|
|
"modes": [
|
|
"offline"
|
|
],
|
|
"languages": [
|
|
"zh",
|
|
"en",
|
|
"ja",
|
|
"ko",
|
|
"de",
|
|
"es",
|
|
"fr",
|
|
"it",
|
|
"ru",
|
|
"yue"
|
|
],
|
|
"runtime": {
|
|
"tags": [
|
|
"gguf"
|
|
]
|
|
},
|
|
"dependencies": [],
|
|
"capabilities": {
|
|
"tts": [
|
|
"speaker_reference",
|
|
"style_control"
|
|
],
|
|
"clone": [
|
|
"speaker_reference"
|
|
]
|
|
},
|
|
"options": {
|
|
"request": [
|
|
{
|
|
"name": "template_name",
|
|
"type": "enum",
|
|
"description": "CosyVoice3 request template.",
|
|
"required": false,
|
|
"values": [
|
|
"zero_shot",
|
|
"cross_lingual",
|
|
"instruct"
|
|
],
|
|
"default": "zero_shot"
|
|
},
|
|
{
|
|
"name": "reference_text",
|
|
"type": "string",
|
|
"description": "Transcript for the prompt audio.",
|
|
"required": false
|
|
},
|
|
{
|
|
"name": "instruct",
|
|
"type": "string",
|
|
"description": "Instruction text for instruct mode.",
|
|
"required": false
|
|
},
|
|
{
|
|
"name": "text_chunk_size",
|
|
"type": "int",
|
|
"description": "Maximum Unicode codepoints per long-form text chunk; default 600.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 600
|
|
},
|
|
{
|
|
"name": "text_chunk_mode",
|
|
"type": "enum",
|
|
"description": "Framework text chunking mode.",
|
|
"values": [
|
|
"default",
|
|
"tag_aware",
|
|
"japanese",
|
|
"endline"
|
|
],
|
|
"required": false,
|
|
"default": "default"
|
|
},
|
|
{
|
|
"name": "max_tokens",
|
|
"type": "int",
|
|
"description": "Maximum generated speech tokens; -1 (default) selects 20 times the target text token count. Explicit limits must be positive.",
|
|
"required": false,
|
|
"min": -1,
|
|
"default": -1
|
|
},
|
|
{
|
|
"name": "min_tokens",
|
|
"type": "int",
|
|
"description": "Minimum generated speech tokens before stop is accepted; -1 (default) selects twice the target text token count. Must not exceed the resolved maximum.",
|
|
"required": false,
|
|
"min": -1,
|
|
"default": -1
|
|
},
|
|
{
|
|
"name": "top_k",
|
|
"type": "int",
|
|
"description": "AR speech-token top-k sampling limit; default 25.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 25
|
|
},
|
|
{
|
|
"name": "num_inference_steps",
|
|
"type": "int",
|
|
"description": "Flow decoder Euler steps; default 10.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 10
|
|
},
|
|
{
|
|
"name": "seed",
|
|
"type": "int",
|
|
"description": "Generation seed.",
|
|
"required": false,
|
|
"min": 0,
|
|
"default": 1986
|
|
}
|
|
],
|
|
"session": [
|
|
{
|
|
"name": "lora",
|
|
"type": "path",
|
|
"description": "PEFT adapter with adapter_config.json, or native lora_weights with config.json and speech_embedding/llm_decoder sidecars. Checkpoints may use safetensors or PyTorch containers.",
|
|
"required": false
|
|
},
|
|
{
|
|
"name": "lora_scale",
|
|
"type": "float",
|
|
"description": "Multiplier for the adapter's alpha/r scaling; default 1. Full-weight replacements are not scaled.",
|
|
"required": false,
|
|
"default": 1.0
|
|
},
|
|
{
|
|
"name": "weight_type",
|
|
"type": "enum",
|
|
"description": "CosyVoice3 matmul weight storage type; default native.",
|
|
"required": false,
|
|
"default": "native",
|
|
"values": [
|
|
"native",
|
|
"f32",
|
|
"f16",
|
|
"bf16",
|
|
"q8_0",
|
|
"q4_0",
|
|
"q4_k"
|
|
]
|
|
},
|
|
{
|
|
"name": "graph_arena_mb",
|
|
"type": "int",
|
|
"description": "Reusable runtime graph arena size in MiB; default 1024.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 1024
|
|
},
|
|
{
|
|
"name": "weight_context_mb",
|
|
"type": "int",
|
|
"description": "Weight loading context size in MiB; default 2048.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 2048
|
|
},
|
|
{
|
|
"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": "Release cached runtime graphs after each request to reduce peak VRAM; default false.",
|
|
"required": false,
|
|
"default": false
|
|
},
|
|
{
|
|
"name": "exec_plan",
|
|
"type": "string",
|
|
"description": "JSON object of component execution plans. Component: flow. Each plan accepts impl, backend, artifacts, and params. impl is default/ggml/rknn. GGML keeps the session backend. RKNN requires artifacts.main, a comma-separated ladder of estimator engines compiled one per sequence length (tools/rknn/prepare_cosyvoice3_rknn_flow.py), and ENGINE_ENABLE_RKNN; omit backend. An utterance longer than the largest engine runs the CPU graph. Neither implementation takes params.",
|
|
"required": false,
|
|
"default": "{}"
|
|
}
|
|
],
|
|
"load": []
|
|
},
|
|
"packages": [
|
|
{
|
|
"id": "cosyvoice3_q8_0",
|
|
"display_name": "CosyVoice3 Q8_0 GGUF",
|
|
"default": true,
|
|
"format": "gguf",
|
|
"precision": "q8_0",
|
|
"target_directory": "CosyVoice3-GGUF",
|
|
"files": [
|
|
"CosyVoice3-GGUF/cosyvoice3-q8_0.gguf"
|
|
],
|
|
"strip_prefix": "CosyVoice3-GGUF",
|
|
"download": {
|
|
"kind": "huggingface_snapshot",
|
|
"repo": "audio-cpp/audio.cpp-gguf",
|
|
"revision": "main",
|
|
"gated": false
|
|
}
|
|
},
|
|
{
|
|
"id": "cosyvoice3_f32",
|
|
"display_name": "CosyVoice3 F32 GGUF",
|
|
"default": false,
|
|
"format": "gguf",
|
|
"precision": "f32",
|
|
"target_directory": "CosyVoice3-GGUF",
|
|
"files": [
|
|
"CosyVoice3-GGUF/cosyvoice3-f32.gguf"
|
|
],
|
|
"strip_prefix": "CosyVoice3-GGUF",
|
|
"download": {
|
|
"kind": "huggingface_snapshot",
|
|
"repo": "audio-cpp/audio.cpp-gguf",
|
|
"revision": "main",
|
|
"gated": false
|
|
}
|
|
}
|
|
],
|
|
"ui": {
|
|
"recommended_package": "cosyvoice3_q8_0",
|
|
"tags": [
|
|
"TTS",
|
|
"Clone",
|
|
"GGUF"
|
|
],
|
|
"docs": [
|
|
"docs/tts.md",
|
|
"docs/gguf.md"
|
|
]
|
|
},
|
|
"sources": [
|
|
{
|
|
"format": "gguf",
|
|
"roots": {
|
|
"model": ".",
|
|
"weights": "$gguf"
|
|
},
|
|
"files": {
|
|
"cosyvoice3_yaml": "model:cosyvoice3.yaml",
|
|
"qwen_config": "model:CosyVoice-BlankEN/config.json",
|
|
"tokenizer_config": "model:CosyVoice-BlankEN/tokenizer_config.json",
|
|
"vocab_json": "model:CosyVoice-BlankEN/vocab.json",
|
|
"merges_txt": "model:CosyVoice-BlankEN/merges.txt"
|
|
},
|
|
"tensors": {
|
|
"llm_weights": {
|
|
"source": "weights:",
|
|
"prefix": "llm"
|
|
},
|
|
"flow_weights": {
|
|
"source": "weights:",
|
|
"prefix": "flow"
|
|
},
|
|
"hift_weights": {
|
|
"source": "weights:",
|
|
"prefix": "hift"
|
|
},
|
|
"campplus_weights": {
|
|
"source": "weights:",
|
|
"prefix": "campplus"
|
|
},
|
|
"speech_tokenizer_weights": {
|
|
"source": "weights:",
|
|
"prefix": "speech_tokenizer"
|
|
},
|
|
"blank_en_weights": {
|
|
"source": "weights:",
|
|
"prefix": "blank_en"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|