From 5240265113208d46aec5fb3bffefbd32eda54427 Mon Sep 17 00:00:00 2001 From: Warren B Date: Thu, 3 Sep 2026 01:26:51 +0100 Subject: [PATCH] model_specs: declare the ASR, forced-aligner and codec options the sessions read Additive: every option below is already read by the session and was undeclared or misdescribed, so a client had no supported way to send it. - parakeet_tdt.language: accepted and ignored. `language` is a field of the OpenAI-compatible transcription contract and every other strict ASR family declares it, so a per-model rejection was a protocol violation. Parakeet reads only keep_language_tags (parakeet_tdt/session.cpp:285-286), which the description now says. - sense_asr.audio_chunk_mode: "vad" added to the enum. The session throws only for QuietEnergy and implements the Vad branch (sense_asr/session.cpp: 512-524), so the mode worked and could not be requested. - qwen3_forced_aligner: the seven prefixed session options its session reads (weight_type, thinker_weight_type, audio_encoder_weight_type, audio_encoder_graph_arena_mb, thinker_prefill_graph_arena_mb, thinker_decode_graph_arena_mb, thinker_weight_context_mb), per qwen3_forced_aligner/session.cpp. - miocodec: the six prefixed session options its session reads (weight_type, weight_context_mb, constant_context_mb, content_graph_arena_mb, global_graph_arena_mb, wave_graph_arena_mb), per miocodec/session.cpp. - mms_forced_aligner.return_timestamps: description only. The option is never read, but the family validates strictly and the CLI's --words-out injects the key, so removing it would break forced alignment from the command line. The description now says it is accepted and ignored. --- model_specs/miocodec.json | 54 +++++++++++++++++++++++++ model_specs/mms_forced_aligner.json | 2 +- model_specs/parakeet_tdt.json | 6 +++ model_specs/qwen3_forced_aligner.json | 57 +++++++++++++++++++++++++++ model_specs/sense_asr.json | 3 +- 5 files changed, 120 insertions(+), 2 deletions(-) diff --git a/model_specs/miocodec.json b/model_specs/miocodec.json index 8cb71e543..c94907a99 100644 --- a/model_specs/miocodec.json +++ b/model_specs/miocodec.json @@ -26,6 +26,60 @@ "speaker_reference" ] }, + "options": { + "request": [], + "session": [ + { + "name": "weight_type", + "type": "enum", + "description": "Codec weight storage type; default f32.", + "preset": "weight_type_full", + "required": false, + "default": "f32" + }, + { + "name": "weight_context_mb", + "type": "int", + "description": "Codec weight descriptor context size in MiB; default 256.", + "required": false, + "min": 1, + "default": 256 + }, + { + "name": "constant_context_mb", + "type": "int", + "description": "Reusable constant context size in MiB; default 256.", + "required": false, + "min": 1, + "default": 256 + }, + { + "name": "content_graph_arena_mb", + "type": "int", + "description": "Content encoder graph arena size in MiB; default 512.", + "required": false, + "min": 1, + "default": 512 + }, + { + "name": "global_graph_arena_mb", + "type": "int", + "description": "Global encoder graph arena size in MiB; default 256.", + "required": false, + "min": 1, + "default": 256 + }, + { + "name": "wave_graph_arena_mb", + "type": "int", + "description": "Wave decoder graph arena size in MiB; default 512.", + "required": false, + "min": 1, + "default": 512 + } + ], + "load": [] + }, "runtime": { "tags": [ "gguf" diff --git a/model_specs/mms_forced_aligner.json b/model_specs/mms_forced_aligner.json index 9862dee61..793ad37b7 100644 --- a/model_specs/mms_forced_aligner.json +++ b/model_specs/mms_forced_aligner.json @@ -61,7 +61,7 @@ { "name": "return_timestamps", "type": "bool", - "description": "Request word timestamps in the result; set automatically by --words-out.", + "description": "Accepted for cross-model compatibility (--words-out sets it) and ignored: the forced aligner always returns word timestamps.", "required": false, "default": true } diff --git a/model_specs/parakeet_tdt.json b/model_specs/parakeet_tdt.json index 7d9910dd8..96be20dfa 100644 --- a/model_specs/parakeet_tdt.json +++ b/model_specs/parakeet_tdt.json @@ -54,6 +54,12 @@ }, "options": { "request": [ + { + "name": "language", + "type": "string", + "description": "Transcription language from the OpenAI-compatible request field. Accepted for API compatibility; Parakeet TDT detects the language itself and does not use this value (see keep_language_tags).", + "required": false + }, { "name": "max_tokens", "type": "int", diff --git a/model_specs/qwen3_forced_aligner.json b/model_specs/qwen3_forced_aligner.json index 060d45db8..a5083531e 100644 --- a/model_specs/qwen3_forced_aligner.json +++ b/model_specs/qwen3_forced_aligner.json @@ -37,6 +37,63 @@ "required": false, "default": false } + ], + "session": [ + { + "name": "weight_type", + "type": "enum", + "description": "Fallback weight storage type for the thinker; default native.", + "preset": "weight_type_full", + "required": false, + "default": "native" + }, + { + "name": "thinker_weight_type", + "type": "enum", + "description": "Thinker matmul weight storage type; defaults to weight_type when set, otherwise native.", + "preset": "weight_type_full", + "required": false + }, + { + "name": "audio_encoder_weight_type", + "type": "enum", + "description": "Audio encoder weight storage type; default native.", + "preset": "weight_type_conv", + "required": false, + "default": "native" + }, + { + "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": "thinker_prefill_graph_arena_mb", + "type": "int", + "description": "Thinker prefill graph arena size in MiB; default 256.", + "required": false, + "min": 1, + "default": 256 + }, + { + "name": "thinker_decode_graph_arena_mb", + "type": "int", + "description": "Thinker decode graph arena size in MiB; default 256.", + "required": false, + "min": 1, + "default": 256 + }, + { + "name": "thinker_weight_context_mb", + "type": "int", + "description": "Thinker weight descriptor context size in MiB; default 64.", + "required": false, + "min": 1, + "default": 64 + } ] }, "runtime": { diff --git a/model_specs/sense_asr.json b/model_specs/sense_asr.json index 868b896a3..2cc6102e2 100644 --- a/model_specs/sense_asr.json +++ b/model_specs/sense_asr.json @@ -69,10 +69,11 @@ { "name": "audio_chunk_mode", "type": "enum", - "description": "Audio chunking mode: auto, fixed, or none.", + "description": "Audio chunking mode: auto, fixed, vad, or none.", "values": [ "auto", "fixed", + "vad", "none" ], "required": false,