{ "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" } } ] }