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

463 lines
14 KiB
JSON

{
"family": "qwen3_asr",
"display_name": "Qwen3-ASR",
"description": "Qwen ASR model family for language identification and speech recognition across 30 languages, 22 Chinese dialects, and multiple English accents, with robustness for noisy, long-form, and singing audio.",
"category": "asr",
"status": "supported",
"tasks": [
"asr"
],
"modes": [
"offline",
"streaming"
],
"languages": [
"zh",
"en",
"yue",
"ar",
"de",
"fr",
"es",
"pt",
"id",
"it",
"ko",
"ru",
"th",
"vi",
"ja",
"tr",
"hi",
"ms",
"nl",
"sv",
"da",
"fi",
"pl",
"cs",
"fil",
"fa",
"el",
"hu",
"mk",
"ro",
"zh dialects"
],
"capabilities": {
"asr": [
"word_timestamps",
"vad_chunking",
"partial_results"
]
},
"options": {
"request": [
{
"name": "language",
"type": "string",
"description": "Recognition language code or label. Omit to detect language automatically; Auto also selects automatic detection.",
"required": false
},
{
"name": "max_tokens",
"type": "int",
"description": "Maximum generated transcript tokens; omitted uses the checkpoint generation_config.json (512 when absent).",
"required": false,
"min": 1
},
{
"name": "return_timestamps",
"type": "bool",
"description": "Return word-level timestamps by running Qwen3 ForcedAligner after ASR; default false and requires forced_aligner_path when enabled. Offline only; streaming rejects true even when an aligner is configured.",
"required": false,
"default": false
},
{
"name": "audio_chunk_mode",
"type": "enum",
"description": "Audio chunking mode; default auto uses fixed chunks normally and VAD chunks when timestamps are requested. Offline only; streaming uses fixed-duration windows regardless of this selection.",
"values": [
"auto",
"fixed",
"vad",
"none"
],
"required": false,
"default": "auto"
},
{
"name": "audio_chunk_duration_sec",
"type": "float",
"description": "Maximum audio chunk duration in seconds; must be > 0 when chunking or streaming. Ignored with audio_chunk_mode=none offline. Default 30 for streaming and offline transcription, or 15 for offline timestamps/VAD chunking.",
"required": false,
"min": 0
},
{
"name": "clamp_timestamps_to_audio",
"type": "bool",
"description": "Opt-in guard for word timestamp output: keep repaired forced-aligner word spans inside the local audio chunk. Defaults to false to preserve existing timestamp repair behavior.",
"required": false,
"default": false
},
{
"name": "preserve_punctuation",
"type": "bool",
"description": "Opt-in text output mode for timestamped chunked ASR: preserve ASR punctuation in text_output instead of rebuilding text from aligned words.",
"required": false,
"default": false
}
],
"session": [
{
"name": "perf_mode",
"type": "enum",
"values": [
"off",
"cuda_perf"
],
"description": "Performance preset. cuda_perf selects flash attention, packed projections, f16 KV, 256-token attention alignment and two independent offline chunks per decode batch. Explicit session options override the preset.",
"required": false,
"default": "off"
},
{
"name": "attention",
"type": "enum",
"values": [
"mixed",
"auto",
"eager",
"flash"
],
"description": "Decoder attention preference. Default mixed preserves manual prefill and flash cached decoding; cuda_perf selects flash for both. auto uses the shared backend policy. Explicit values override the preset.",
"required": false
},
{
"name": "packed_projections",
"type": "bool",
"description": "Pack decoder QKV and gate/up projections without changing weight dtype. Default false, true with cuda_perf. Explicit values override the preset.",
"required": false
},
{
"name": "kv_cache_type",
"type": "enum",
"values": [
"f32",
"f16"
],
"description": "Decoder KV storage. Default f32, f16 with cuda_perf. Explicit values override the preset.",
"required": false
},
{
"name": "kv_cache_alignment",
"type": "int",
"min": 1,
"description": "Cached decoder attention prefix alignment in tokens. Default 1 attends over full cache capacity; cuda_perf uses cached 256-token prefix windows. Explicit values override the preset.",
"required": false
},
{
"name": "offline_batch_size",
"type": "int",
"min": 1,
"max": 2,
"description": "Independent offline chunks decoded together. Default 1, 2 with cuda_perf. Does not change chunk boundaries or streaming scheduling. Explicit values override the preset.",
"required": false
},
{
"name": "lora",
"type": "path",
"description": "PEFT LoRA adapter directory or checkpoint file; merged into matching encoder/decoder weights at session creation.",
"required": false
},
{
"name": "lora_scale",
"type": "float",
"description": "Multiplier for the adapter's alpha/r scaling; default 1.",
"required": false,
"default": 1.0
},
{
"name": "forced_aligner_path",
"type": "path",
"description": "Optional Qwen3 ForcedAligner model path required for return_timestamps.",
"required": false
},
{
"name": "vad_model_path",
"type": "path",
"description": "Optional VAD model path for VAD chunking (any built-in VAD family); default assets/framework/models/silero_vad.",
"required": false,
"default": "assets/framework/models/silero_vad"
},
{
"name": "weight_type",
"type": "enum",
"description": "Shared text decoder weight storage fallback; default native.",
"required": false,
"default": "native",
"preset": "weight_type_full"
},
{
"name": "audio_encoder_weight_type",
"type": "enum",
"description": "Audio encoder weight storage type; default native.",
"required": false,
"default": "native",
"preset": "weight_type_conv"
},
{
"name": "text_decoder_weight_type",
"type": "enum",
"description": "Text decoder matmul weight storage type; defaults to weight_type when set, otherwise native.",
"required": false,
"preset": "weight_type_full"
},
{
"name": "audio_encoder_graph_arena_mb",
"type": "int",
"description": "Audio encoder graph arena size in MiB; default 128.",
"required": false,
"min": 1,
"default": 128
},
{
"name": "text_decoder_prefill_graph_arena_mb",
"type": "int",
"description": "Text decoder prefill graph arena size in MiB; default 256.",
"required": false,
"min": 1,
"default": 256
},
{
"name": "text_decoder_decode_graph_arena_mb",
"type": "int",
"description": "Text decoder cached-step graph arena size in MiB; default 256.",
"required": false,
"min": 1,
"default": 256
},
{
"name": "text_decoder_weight_context_mb",
"type": "int",
"description": "Text decoder weight context size in MiB; default 64.",
"required": false,
"min": 1,
"default": 64
}
],
"load": []
},
"runtime": {
"tags": [
"gguf",
"stream"
]
},
"ui": {
"recommended_package": "qwen3_asr_1_7b_q8_0",
"tags": [
"ASR",
"GGUF",
"Stream"
],
"docs": [
"docs/models/qwen3_asr.md",
"docs/asr.md",
"docs/gguf.md"
]
},
"package_defaults": {
"download": {
"kind": "huggingface_snapshot",
"repo": "audio-cpp/audio.cpp-gguf",
"revision": "main",
"gated": false
}
},
"packages": [
{
"id": "qwen3_asr_1_7b_q8_0",
"display_name": "Qwen3-ASR 1.7B Q8_0 GGUF",
"default": true,
"format": "gguf",
"precision": "q8_0",
"target_directory": "Qwen3-ASR-1.7B-GGUF",
"files": [
"Qwen3-ASR-1.7B-GGUF/qwen3-asr-1.7b-q8_0.gguf"
],
"strip_prefix": "Qwen3-ASR-1.7B-GGUF"
},
{
"id": "qwen3_asr_1_7b_f16",
"display_name": "Qwen3-ASR 1.7B F16 GGUF",
"format": "gguf",
"precision": "f16",
"target_directory": "Qwen3-ASR-1.7B-GGUF",
"files": [
"Qwen3-ASR-1.7B-GGUF/qwen3-asr-1.7b-f16.gguf"
],
"strip_prefix": "Qwen3-ASR-1.7B-GGUF"
},
{
"id": "qwen3_asr_0_6b_q8_0",
"display_name": "Qwen3-ASR 0.6B Q8_0 GGUF",
"format": "gguf",
"precision": "q8_0",
"target_directory": "Qwen3-ASR-0.6B-GGUF",
"files": [
"Qwen3-ASR-0.6B-GGUF/qwen3-asr-0.6b-q8_0.gguf"
],
"strip_prefix": "Qwen3-ASR-0.6B-GGUF"
},
{
"id": "qwen3_asr_0_6b_f16",
"display_name": "Qwen3-ASR 0.6B F16 GGUF",
"format": "gguf",
"precision": "f16",
"target_directory": "Qwen3-ASR-0.6B-GGUF",
"files": [
"Qwen3-ASR-0.6B-GGUF/qwen3-asr-0.6b-f16.gguf"
],
"strip_prefix": "Qwen3-ASR-0.6B-GGUF"
},
{
"id": "qwen3_asr_1_7b_safetensors",
"display_name": "Qwen3-ASR 1.7B HF Safetensors",
"format": "safetensors",
"precision": "native",
"target_directory": "Qwen3-ASR-1.7B-hf",
"files": [
"config.json",
"generation_config.json",
"model.safetensors",
"processor_config.json",
"tokenizer_config.json",
"tokenizer.json"
],
"download": {
"kind": "huggingface_snapshot",
"repo": "Qwen/Qwen3-ASR-1.7B-hf"
}
},
{
"id": "qwen3_asr_0_6b_safetensors",
"display_name": "Qwen3-ASR 0.6B Safetensors",
"format": "safetensors",
"precision": "native",
"target_directory": "Qwen3-ASR-0.6B",
"files": [
"config.json",
"generation_config.json",
"model.safetensors",
"preprocessor_config.json",
"tokenizer_config.json"
],
"download": {
"kind": "huggingface_snapshot",
"repo": "Qwen/Qwen3-ASR-0.6B"
}
},
{
"id": "qwencleo_asr_q8_0",
"display_name": "QwenCleo-ASR Egyptian Arabic Q8_0 GGUF",
"description": "Egyptian Arabic and Arabic-English code-switching fine-tune of Qwen3-ASR-1.7B from mohammedaly22/QwenCleo-ASR. Use language=Arabic.",
"format": "gguf",
"precision": "q8_0",
"target_directory": "QwenCleo-ASR-GGUF",
"files": [
"qwencleo-asr-q8_0.gguf"
],
"download": {
"kind": "huggingface_snapshot",
"repo": "mohammedaly22/QwenCleo-ASR-GGUF"
}
},
{
"id": "qwencleo_asr_f16",
"display_name": "QwenCleo-ASR Egyptian Arabic F16 GGUF",
"description": "Egyptian Arabic and Arabic-English code-switching fine-tune of Qwen3-ASR-1.7B from mohammedaly22/QwenCleo-ASR. Use language=Arabic.",
"format": "gguf",
"precision": "f16",
"target_directory": "QwenCleo-ASR-GGUF",
"files": [
"qwencleo-asr-f16.gguf"
],
"download": {
"kind": "huggingface_snapshot",
"repo": "mohammedaly22/QwenCleo-ASR-GGUF"
}
},
{
"id": "qwencleo_asr_safetensors",
"display_name": "QwenCleo-ASR Egyptian Arabic Safetensors",
"description": "Egyptian Arabic and Arabic-English code-switching fine-tune of Qwen3-ASR-1.7B from mohammedaly22/QwenCleo-ASR. Use language=Arabic.",
"format": "safetensors",
"precision": "native",
"target_directory": "QwenCleo-ASR",
"files": [
"config.json",
"generation_config.json",
"model.safetensors",
"preprocessor_config.json",
"tokenizer_config.json",
"tokenizer.json",
"vocab.json",
"merges.txt",
"chat_template.json"
],
"download": {
"kind": "huggingface_snapshot",
"repo": "mohammedaly22/QwenCleo-ASR"
}
}
],
"sources": [
{
"format": "gguf",
"roots": {
"model": ".",
"weights": "$gguf"
},
"files": {
"config": "model:config.json",
"generation_config": "model:generation_config.json",
"tokenizer_config": "model:tokenizer_config.json"
},
"optional_files": {
"preprocessor_config": "model:preprocessor_config.json",
"processor_config": "model:processor_config.json",
"chat_template": "model:chat_template.json",
"chat_template_jinja": "model:chat_template.jinja",
"vocab": "model:vocab.json",
"merges": "model:merges.txt",
"tokenizer_json": "model:tokenizer.json"
},
"tensors": {
"weights": "weights:"
}
},
{
"format": "safetensors",
"roots": {
"model": "."
},
"files": {
"config": "model:config.json",
"generation_config": "model:generation_config.json",
"tokenizer_config": "model:tokenizer_config.json"
},
"optional_files": {
"preprocessor_config": "model:preprocessor_config.json",
"processor_config": "model:processor_config.json",
"chat_template": "model:chat_template.json",
"chat_template_jinja": "model:chat_template.jinja",
"vocab": "model:vocab.json",
"merges": "model:merges.txt",
"tokenizer_json": "model:tokenizer.json"
},
"tensors": {
"weights": "model:model.safetensors"
}
}
]
}