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
491 lines
13 KiB
JSON
491 lines
13 KiB
JSON
{
|
|
"family": "voxcpm2",
|
|
"display_name": "VoxCPM2",
|
|
"description": "OpenBMB tokenizer-free TTS model supporting 30 languages and 9 Chinese dialects, with 48 kHz output, natural-language voice design, controllable short-reference voice cloning, and expressive style guidance.",
|
|
"category": "tts",
|
|
"status": "supported",
|
|
"tasks": [
|
|
"tts",
|
|
"clone",
|
|
"design"
|
|
],
|
|
"modes": [
|
|
"offline",
|
|
"streaming"
|
|
],
|
|
"languages": [
|
|
"ar",
|
|
"my",
|
|
"zh",
|
|
"zh dialects",
|
|
"da",
|
|
"nl",
|
|
"en",
|
|
"fi",
|
|
"fr",
|
|
"de",
|
|
"el",
|
|
"he",
|
|
"hi",
|
|
"id",
|
|
"it",
|
|
"ja",
|
|
"km",
|
|
"ko",
|
|
"lo",
|
|
"ms",
|
|
"no",
|
|
"pl",
|
|
"pt",
|
|
"ru",
|
|
"es",
|
|
"sw",
|
|
"sv",
|
|
"tl",
|
|
"th",
|
|
"tr",
|
|
"vi"
|
|
],
|
|
"options": {
|
|
"request": [
|
|
{
|
|
"name": "min_tokens",
|
|
"type": "int",
|
|
"description": "Minimum generated audio tokens.",
|
|
"required": false,
|
|
"min": 0,
|
|
"default": 2
|
|
},
|
|
{
|
|
"name": "max_tokens",
|
|
"type": "int",
|
|
"description": "Maximum generated audio tokens. Zero resolves to model max_length; requires min_tokens <= resolved max_tokens <= model limit.",
|
|
"required": false,
|
|
"min": 0,
|
|
"default": 4096
|
|
},
|
|
{
|
|
"name": "num_inference_steps",
|
|
"type": "int",
|
|
"description": "Flow sampling steps. Must be positive.",
|
|
"required": false,
|
|
"default": 10
|
|
},
|
|
{
|
|
"name": "guidance_scale",
|
|
"type": "float",
|
|
"description": "Classifier-free guidance scale. Must be nonnegative.",
|
|
"required": false,
|
|
"default": 2
|
|
},
|
|
{
|
|
"name": "retry_badcase",
|
|
"type": "bool",
|
|
"description": "Retry detected bad generations. Offline only; streaming requires false.",
|
|
"required": false,
|
|
"default": true
|
|
},
|
|
{
|
|
"name": "retry_badcase_max_times",
|
|
"type": "int",
|
|
"description": "Total attempts including the initial attempt, not extra retries; must be positive.",
|
|
"required": false,
|
|
"default": 3
|
|
},
|
|
{
|
|
"name": "retry_badcase_ratio_threshold",
|
|
"type": "float",
|
|
"description": "Bad-case audio/text length ratio threshold. Must be positive.",
|
|
"required": false,
|
|
"default": 6
|
|
},
|
|
{
|
|
"name": "seed",
|
|
"type": "int",
|
|
"description": "Sampling seed.",
|
|
"required": false,
|
|
"min": 0,
|
|
"max": 4294967295,
|
|
"default": 1234
|
|
},
|
|
{
|
|
"name": "cfm_noise_file",
|
|
"type": "path",
|
|
"description": "Precomputed flow noise file.",
|
|
"required": false
|
|
},
|
|
{
|
|
"name": "stream_chunk_policy",
|
|
"type": "enum",
|
|
"description": "Streaming decoder cadence: grow emits one patch first, then doubles toward stream_frames_per_event; fixed uses the configured size. Ignored offline.",
|
|
"required": false,
|
|
"values": [
|
|
"grow",
|
|
"fixed"
|
|
],
|
|
"default": "grow"
|
|
},
|
|
{
|
|
"name": "stream_frames_per_event",
|
|
"type": "int",
|
|
"description": "Maximum generated latent patches per streaming decoder event. Set to 1 for one-patch emission. Ignored offline.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 4
|
|
},
|
|
{
|
|
"name": "stream_left_context",
|
|
"type": "int",
|
|
"description": "Previous patches decoded as streaming left context.",
|
|
"required": false,
|
|
"min": 0,
|
|
"max": 8,
|
|
"default": 3
|
|
},
|
|
{
|
|
"name": "ultimate_clone",
|
|
"type": "bool",
|
|
"description": "Use the voice reference itself as the continuation prompt. Requires reference audio and reference_text or prompt_text; cannot be combined with explicit prompt audio.",
|
|
"required": false,
|
|
"default": false
|
|
},
|
|
{
|
|
"name": "prompt_text",
|
|
"type": "string",
|
|
"description": "Transcript for continuation prompt audio, distinct from the base voice reference.",
|
|
"required": false
|
|
},
|
|
{
|
|
"name": "chunk_strategy",
|
|
"type": "enum",
|
|
"description": "Long-form continuation or independent generation per chunk. Offline only.",
|
|
"required": false,
|
|
"values": [
|
|
"continuation",
|
|
"stateless"
|
|
],
|
|
"default": "continuation"
|
|
},
|
|
{
|
|
"name": "text_chunk_size",
|
|
"type": "int",
|
|
"description": "Framework long-form text chunk size. Offline only.",
|
|
"required": false,
|
|
"default": 2048
|
|
},
|
|
{
|
|
"name": "text_chunk_mode",
|
|
"type": "enum",
|
|
"description": "Framework text chunking mode. Offline only.",
|
|
"required": false,
|
|
"values": [
|
|
"default",
|
|
"tag_aware",
|
|
"japanese",
|
|
"endline"
|
|
],
|
|
"default": "tag_aware"
|
|
}
|
|
],
|
|
"session": [
|
|
{
|
|
"name": "audiovae_tile_frames",
|
|
"type": "int",
|
|
"description": "Opt-in causal AudioVAE tiling. Maximum new latent frames per tile; zero preserves full decoding.",
|
|
"required": false,
|
|
"default": 0,
|
|
"min": 0
|
|
},
|
|
{
|
|
"name": "perf_mode",
|
|
"type": "enum",
|
|
"description": "Opt-in packed attention and MLP projections. May change numerical results; off preserves standard execution.",
|
|
"required": false,
|
|
"values": [
|
|
"off",
|
|
"cuda_perf"
|
|
],
|
|
"default": "off"
|
|
},
|
|
{
|
|
"name": "lora",
|
|
"type": "path",
|
|
"description": "Native LoRA directory or checkpoint file with adjacent lora_config.json; merged into generator weights at session creation.",
|
|
"required": false
|
|
},
|
|
{
|
|
"name": "lora_scale",
|
|
"type": "float",
|
|
"description": "Multiplier for the adapter's configured alpha/r scaling; default 1.",
|
|
"required": false,
|
|
"default": 1.0
|
|
},
|
|
{
|
|
"name": "weight_type",
|
|
"type": "enum",
|
|
"description": "Language-model weight storage; does not override AudioVAE storage.",
|
|
"required": false,
|
|
"preset": "weight_type_full"
|
|
},
|
|
{
|
|
"name": "audiovae_weight_type",
|
|
"type": "enum",
|
|
"description": "AudioVAE weight storage; defaults independently to native, not the shared weight_type.",
|
|
"required": false,
|
|
"preset": "weight_type_full"
|
|
},
|
|
{
|
|
"name": "prompt_cache_slots",
|
|
"type": "int",
|
|
"description": "Cached encoded prompt slots; zero disables reuse.",
|
|
"required": false,
|
|
"min": 0,
|
|
"default": 1
|
|
},
|
|
{
|
|
"name": "mem_saver",
|
|
"type": "bool",
|
|
"description": "Release staged runtime graphs.",
|
|
"required": false,
|
|
"default": true
|
|
},
|
|
{
|
|
"name": "weight_context_mb",
|
|
"type": "int",
|
|
"description": "Context or graph arena size in MiB.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 3072
|
|
},
|
|
{
|
|
"name": "text_embedding_graph_arena_mb",
|
|
"type": "int",
|
|
"description": "Text embedding host graph-metadata arena size in MiB, not device workspace.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 64
|
|
},
|
|
{
|
|
"name": "lm_step_graph_arena_mb",
|
|
"type": "int",
|
|
"description": "LM step host graph-metadata arena size in MiB, not device workspace.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 1024
|
|
},
|
|
{
|
|
"name": "projection_graph_arena_mb",
|
|
"type": "int",
|
|
"description": "Projection host graph-metadata arena size in MiB, not device workspace.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 256
|
|
},
|
|
{
|
|
"name": "local_encoder_graph_arena_mb",
|
|
"type": "int",
|
|
"description": "Local encoder host graph-metadata arena size in MiB, not device workspace.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 512
|
|
},
|
|
{
|
|
"name": "dit_graph_arena_mb",
|
|
"type": "int",
|
|
"description": "DiT estimator host graph-metadata arena size in MiB, not device workspace.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 1024
|
|
},
|
|
{
|
|
"name": "audiovae_weight_context_mb",
|
|
"type": "int",
|
|
"description": "Context or graph arena size in MiB.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 768
|
|
},
|
|
{
|
|
"name": "audiovae_graph_arena_mb",
|
|
"type": "int",
|
|
"description": "AudioVAE decoder host graph-metadata arena size in MiB, not device workspace.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 1024
|
|
},
|
|
{
|
|
"name": "audiovae_encoder_graph_arena_mb",
|
|
"type": "int",
|
|
"description": "AudioVAE encoder host graph-metadata arena size in MiB, not device workspace.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 1024
|
|
},
|
|
{
|
|
"name": "audiovae_latent_capacity",
|
|
"type": "int",
|
|
"description": "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.",
|
|
"required": false,
|
|
"min": 1
|
|
},
|
|
{
|
|
"name": "exec_plan",
|
|
"type": "string",
|
|
"description": "JSON component execution plans. audiovae: impl=default/ggml; backend must match the session; no artifacts. params.threads is a nonnegative int: positive values require a CPU session and enable a dedicated AudioVAE backend with streaming decode overlap; also controls offline decoding and prompt encoding threads. Omitted/0 shares the session backend.",
|
|
"required": false,
|
|
"default": "{}"
|
|
},
|
|
{
|
|
"name": "audiovae_encoder_sample_capacity",
|
|
"type": "int",
|
|
"description": "Reserved encoder sample capacity.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 240000
|
|
}
|
|
],
|
|
"load": []
|
|
},
|
|
"capabilities": {
|
|
"clone": [
|
|
"speaker_reference"
|
|
],
|
|
"design": [
|
|
"voice_design"
|
|
]
|
|
},
|
|
"runtime": {
|
|
"tags": [
|
|
"gguf",
|
|
"stream"
|
|
]
|
|
},
|
|
"ui": {
|
|
"recommended_package": "voxcpm2_q8_0",
|
|
"tags": [
|
|
"TTS",
|
|
"Clone",
|
|
"Design",
|
|
"GGUF",
|
|
"Stream"
|
|
],
|
|
"docs": [
|
|
"docs/tts.md",
|
|
"docs/gguf.md",
|
|
"docs/models/vocalrender.md"
|
|
]
|
|
},
|
|
"package_defaults": {
|
|
"download": {
|
|
"kind": "huggingface_snapshot",
|
|
"repo": "audio-cpp/audio.cpp-gguf",
|
|
"revision": "main",
|
|
"gated": false
|
|
}
|
|
},
|
|
"packages": [
|
|
{
|
|
"id": "voxcpm2_q8_0",
|
|
"display_name": "VoxCPM2 Q8_0 GGUF",
|
|
"default": true,
|
|
"format": "gguf",
|
|
"precision": "q8_0",
|
|
"target_directory": "VoxCPM2-GGUF",
|
|
"files": [
|
|
"VoxCPM2-GGUF/voxcpm2-q8_0.gguf"
|
|
],
|
|
"strip_prefix": "VoxCPM2-GGUF"
|
|
},
|
|
{
|
|
"id": "voxcpm2_bf16",
|
|
"display_name": "VoxCPM2 BF16 GGUF",
|
|
"format": "gguf",
|
|
"precision": "bf16",
|
|
"target_directory": "VoxCPM2-GGUF",
|
|
"files": [
|
|
"VoxCPM2-GGUF/voxcpm2-bf16.gguf"
|
|
],
|
|
"strip_prefix": "VoxCPM2-GGUF"
|
|
},
|
|
{
|
|
"id": "voxcpm2_orig",
|
|
"display_name": "VoxCPM2 Original-Dtype GGUF",
|
|
"format": "gguf",
|
|
"precision": "orig",
|
|
"target_directory": "VoxCPM2-GGUF",
|
|
"files": [
|
|
"VoxCPM2-GGUF/voxcpm2-orig.gguf"
|
|
],
|
|
"strip_prefix": "VoxCPM2-GGUF"
|
|
},
|
|
{
|
|
"id": "voxcpm2_vocalrender_pro",
|
|
"display_name": "VocalRender-Pro (VoxCPM2) Original-Dtype GGUF",
|
|
"format": "gguf",
|
|
"precision": "orig",
|
|
"target_directory": "VoxCPM2-GGUF",
|
|
"files": [
|
|
"VoxCPM2-GGUF/finetune/vocalrender-pro-orig.gguf"
|
|
],
|
|
"strip_prefix": "VoxCPM2-GGUF"
|
|
},
|
|
{
|
|
"id": "voxcpm2_safetensors",
|
|
"display_name": "VoxCPM2 Safetensors",
|
|
"format": "safetensors",
|
|
"precision": "native",
|
|
"target_directory": "VoxCPM2",
|
|
"files": [
|
|
"config.json",
|
|
"model.safetensors",
|
|
"tokenizer.json",
|
|
"tokenizer_config.json"
|
|
],
|
|
"download": {
|
|
"kind": "huggingface_snapshot",
|
|
"repo": "OpenBMB/VoxCPM2"
|
|
}
|
|
}
|
|
],
|
|
"sources": [
|
|
{
|
|
"format": "gguf",
|
|
"roots": {
|
|
"model": ".",
|
|
"weights": "$gguf"
|
|
},
|
|
"files": {
|
|
"config": "model:config.json",
|
|
"tokenizer_config": "model:tokenizer_config.json",
|
|
"tokenizer_json": "model:tokenizer.json",
|
|
"special_tokens_map": "model:special_tokens_map.json"
|
|
},
|
|
"tensors": {
|
|
"weights": {
|
|
"source": "weights:",
|
|
"prefix": "weights"
|
|
},
|
|
"audiovae_weights": {
|
|
"source": "weights:",
|
|
"prefix": "audiovae_weights"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"format": "safetensors",
|
|
"roots": {
|
|
"model": "."
|
|
},
|
|
"files": {
|
|
"config": "model:config.json",
|
|
"tokenizer_config": "model:tokenizer_config.json",
|
|
"tokenizer_json": "model:tokenizer.json",
|
|
"special_tokens_map": "model:special_tokens_map.json"
|
|
},
|
|
"tensors": {
|
|
"weights": "model:model.safetensors",
|
|
"audiovae_weights": "model:audiovae.safetensors"
|
|
}
|
|
}
|
|
]
|
|
}
|