model_specs: declare the ASR, forced-aligner and codec options the sessions read - #406
Closed
CryptVenture wants to merge 1 commit into
Closed
model_specs: declare the ASR, forced-aligner and codec options the sessions read#406CryptVenture wants to merge 1 commit into
CryptVenture wants to merge 1 commit into
Conversation
…ssions 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.
CryptVenture
force-pushed
the
pr/spec-asr-aligner-options
branch
from
September 3, 2026 00:26
20eb0d2 to
5240265
Compare
Contributor
Author
|
Closing for now to stay inside the 3-concurrent-PR policy (see the discussion on #422). Nothing is wrong with the change and CI is green on it; I will reopen it as review slots free. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Split out of #372 as requested. This PR declares options the ASR, forced-aligner and codec sessions already read; the description-only fixes, the VoxCPM1 defaults, the strict contract fixes and the MiniMax declarations are separate PRs.
Additive throughout: no existing declaration changes, so nothing that validated before fails now.
The changes
parakeet_tdtlanguage, accepted and ignoredlanguageis part 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 onlykeep_language_tags(src/community_models/parakeet_tdt/session.cpp:285-286), which the description now statessense_asr"vad"in theaudio_chunk_modeenumsrc/community_models/sense_asr/session.cpp:512-524throws only forQuietEnergyand implements theVadbranch — the mode worked and could not be requestedqwen3_forced_alignersrc/models/qwen3_forced_aligner/session.cpp: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_mbmiocodecsrc/models/miocodec/session.cpp:weight_type,weight_context_mb,constant_context_mb,content_graph_arena_mb,global_graph_arena_mb,wave_graph_arena_mbmms_forced_alignerreturn_timestamps--words-outinjects the key, so removing it would break forced alignment from the command line. It is now documented as accepted and ignoredValidation
Backend: Metal, Apple M4 Max, macOS 15. Parakeet-TDT (
parakeet-tdt-0.6b-v3-q8_0.gguf) loaded withmodel_spec_overridepointing at the repository spec, becausedefault_contract_spec_path(src/framework/model_spec/package.cpp:504+) prefers the spec embedded in the GGUF over the on-disk one:Worth noting for release planning: because published GGUFs embed their own contract, this declaration reaches users of existing packages only when those packages are regenerated. It is correct in the repository either way, and it is what a freshly converted package will carry.
Scope
Five spec files, +120/-2. The generated WebUI bundle is deliberately excluded —
catalog.tsinlinesmodel_specs/*.jsonat frontend build time and the bundle is not byte-reproducible, so regenerating it in every PR of this split would make the PRs conflict with each other. Happy to send one bundle-regeneration PR once the series lands.