voice_audio_multi/docs/archive/model_option_normalization.md
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

40 KiB

Model Option / area Before After
ACE-Step Duration / LM guidance / thinking duration_seconds, lm_cfg_scale, thinking duration_sec, lm_guidance_scale, enable_thinking
All renamed options below Compatibility Existing spellings Legacy spellings remain accepted; discovery uses canonical names.
BreezeTTS, CosyVoice3, FireRed Audio, FireRedTTS3 Instruction instruction Advertise instruct; retain instruction as a model-local alias with existing embedded specs.
Canary ASR, Cohere ASR Punctuation and casing pnc punc; still controls both punctuation and capitalization.
Chatterbox Flow guidance s3gen_cfg_rate flow_guidance_scale; separate from T3 guidance_scale.
Chatterbox Sampling discovery Both greedy and do_sample Advertise do_sample; legacy greedy=true still overrides sampling.
Chatterbox Turbo, VibeASR Generated-token limit max_new_tokens max_tokens
CLI --audio-chunk-seconds request mapping Emits audio_chunk_seconds Emits audio_chunk_duration_sec; flag spelling unchanged
ControlFoley Video conditioning file video video_file
CosyVoice3 Convolution storage discovery Advertised cosyvoice3.conv_weight_type without a consumer Remove from discovery; legacy setting remains accepted and ineffective. Existing shared storage selection unchanged.
F5-TTS Guidance discovery Both cfg_strength and guidance_scale Advertise only guidance_scale.
FireRed Audio Understanding-token limit max_new_tokens max_tokens
FireRed Audio Generation limits max_new_text_tokens, max_new_audio_steps, min_new_audio_steps max_text_tokens, max_audio_steps, min_audio_steps; independent limits retained.
FireRed Audio Helper graph-arena discovery Advertised firered_audio.helper_graph_arena_mb without a consumer Remove from discovery; legacy setting remains accepted and ineffective.
FireRed Audio Template default / instruction description Unconditional tts_clone metadata default; unclear task applicability Document asr for ASR and tts_clone for generation. instruction conditions generation; ASR/understanding uses text input as its prompt.
Fish Audio, Voxtral Realtime Token-limit help max_new_tokens Advertise existing canonical max_tokens.
FunASR Nano, LFM2 Audio ASR chunk duration audio_chunk_seconds audio_chunk_duration_sec
GigaAM Session VAD location Consumer read only vad_model_path Also consume canonical gigaam_asr.vad_model_path.
GLM-TTS Noise-file discovery flow_noise_path, hift_source_random_path flow_noise_file, hift_source_random_file
Hviske ASR Punctuation and casing punctuation punc; still controls both punctuation and capitalization.
Hviske v6 Punctuation punctuated punc; casing remains separate. Supply both punc and cased to override automatic formatting.
Index Echo Transcript-token limit max_text_tokens max_tokens
IndexTTS2.5 Duration multiplier duration_factor duration_scale; larger values still mean longer audio.
Inflect v2 Speaking speed speaking_rate speed; larger values remain faster.
Irodori TTS Instruction instruction, legacy caption Advertise instruct; retain both existing spellings.
Irodori TTS Reference trim max_ref_sec reference_duration_sec; zero still selects the full reference.
Irodori TTS Speaker embedding file speaker_embedding_path speaker_embedding_file
Kokoro Session predictor graph arenas kokoro_tts.predictor_{duration,text,tail}_graph_mb Corresponding *_graph_arena_mb; same host metadata allocations and defaults.
LFM2 Audio Session one-pass audio limit lfm2_audio.max_pass_seconds lfm2_audio.max_pass_duration_sec; unchanged 120-second default.
LiveAvatar Request memory policy memory_saver mem_saver
LiveAvatar Reference image file reference_image_path reference_image_file; existing ref_image alias retained.
MiniMax Music3 Session graph arena minimax_music3.graph_context_mb minimax_music3.graph_arena_mb; size unchanged.
MiniMax Music3 Depth-decoder default in specs rvq_depth_decoder_bf16.gguf rvq_depth_decoder_q8_0.gguf, matching the existing runtime default.
MioTTS Request selection help miotts.best_of_n, miotts.best_of_n_enabled, miotts.best_of_n_language Advertise unprefixed request names; session defaults remain family-prefixed.
MiraTTS Session weight selection Specs classified weights as load options; consumers read bare names Consume mira_tts.{backbone,linear,conv}_weight_type; classify as session options, retaining bare aliases and Native/Native/F32 defaults.
MOSS-TTS v1.5 Requested duration in codec frames tokens duration_frames; separate from the max_frames ceiling.
MOSS-TTS v1.5, MOSS-TTSD, MOSS-VoiceGen Request text temperature Family-prefixed text_temperature Unprefixed text_temperature; prefixed aliases retained.
OuteTTS Session aligner location outetts.aligner_path outetts.forced_aligner_path
OWSM Beam width beam_size num_beams
PocketTTS Input tokens per text chunk max_tokens text_chunk_tokens; legacy max_tokens remains an input-token budget, not a generation limit.
PocketTTS Generated audio-frame limit max_steps max_frames; zero still selects an estimated cap.
PocketTTS Session FlowLM/Mimi graph arenas Component *_graph_context_mb Corresponding *_graph_arena_mb; sizes unchanged.
PocketTTS Voice-state files voice_embedding_path, export_voice_state_path voice_embedding_file, export_voice_state_file
PocketTTS Clone transcript discovery Advertised voice_clone_text, unused by voice encoding Remove from discovery; legacy input remains accepted with clone audio but does not condition the voice.
Qwen3 ASR Session VAD discovery qwen3_asr.vad_path qwen3_asr.vad_model_path
Qwen3 TTS CustomVoice preset speaker voice_id
Qwen3 TTS, OmniVoice, DotTTS, MOSS-TTS v1.5, MOSS-TTSD, MOSS-VoiceGen Instruction discovery Legacy or duplicate instruction names Advertise only instruct; existing parser aliases remain accepted.
RVC Pitch / retrieval files pitch_path, retrieval_index_path pitch_file, retrieval_index_file
SAM Audio Visual reference files reference_image_path, reference_video_path reference_image_file, reference_video_file
sanoTTS Speaking speed speaking_rate multiplies duration speed uses the reciprocal: speed=2 equals legacy speaking_rate=0.5. Legacy behavior unchanged.
Seed-VC Duration multiplier length_adjust duration_scale; not inverted into speed.
Seed-VC Noise file discovery noise_path noise_file
Silero VAD Speech duration limit max_speech_duration_s max_speech_duration_sec
Soprano TTS Session weight selection Specs classified weights as load options; consumers read bare names Consume soprano_tts.backbone_weight_type and soprano_tts.decoder_weight_type; classify as session options and retain bare aliases.
Soprano TTS Weight defaults in specs native despite F32 runtime defaults Publish f32; runtime defaults unchanged.
Soprano TTS Session text chunk size Consumer read bare text_chunk_size Also consume soprano_tts.text_chunk_size in offline and streaming paths.
Sopro TTS Generation duration / reference crop min_seconds, max_seconds, ref_seconds min_duration_sec, max_duration_sec, reference_duration_sec
Stable Audio Duration and inpainting help duration_seconds, duration_padding_seconds, inpaint_mask_*_seconds Advertise existing corresponding *_sec names.
Stable Audio, MiniMax H3 Sampler selection sampler sampler_mode; supported algorithms unchanged.
Supertonic Speed help Both speaking_rate and speed Advertise only speed; legacy input retained.
Vevo2 Target duration / reference trim target_duration_seconds, reference_duration_seconds duration_sec, reference_duration_sec
Vevo2 Session graph arenas vevo2.{ar_prefill,ar_decode,whisper,tokenizer,fm,vocoder}_graph_context_mb Corresponding *_graph_arena_mb; sizes unchanged.
VieNeu v3 Turbo Automatic frame cap / minimum text chunk frame_cap, text_chunk_min auto_frame_cap, text_chunk_min_size; the frame-cap switch remains boolean.
VieNeu v3 Turbo Session G2P dictionary file vieneu_v3_turbo.g2p_dict / bare g2p_dict vieneu_v3_turbo.g2p_dict_file
VoxCPM1, VoxCPM2 Session generation/AudioVAE graph arenas Component *_graph_context_mb Corresponding *_graph_arena_mb; sizes unchanged.
VoxCPM2 Request chunk-strategy help voxcpm2.chunk_strategy Advertise chunk_strategy; prefixed alias retained.
ZipVoice Language / timestep shift lang, t_shift language, shift; session shift remains family-prefixed.

Numeric Metadata Correction Checklist

Specs and existing handwritten inspection entries were updated together where those entries exist. Spec-backed inspection continues using spec metadata. Useful local descriptions and additional options are retained; no new runtime spec reads were introduced.

Numeric min/max boundaries are retained for discovery. Descriptions state whether each endpoint is included: > 0 excludes zero, (0, 2) excludes both endpoints, and (0, 1] includes only the upper endpoint. Conditional descriptions identify the mode in which a stricter bound applies; zero-valid greedy, disabled, and whole-file behavior is preserved.

The current CLI metadata and spec conversion only carry inclusive scalar bounds. Those fields alone therefore do not encode the complete acceptance predicate: clients must not treat a displayed minimum of 0 as a promise that zero is accepted in every mode. Runtime checks remain authoritative. No positive type, exclusive-bound fields, arbitrary epsilon, or conditional schema extension was added. Integer bounds were corrected directly.

Scalar Boundary Clarifications

Scope is request unless marked session. > 0 below means finite and positive where the consumer uses the positive-finite parser. Grouped options share the stated issue, not necessarily their defaults or upper bounds.

Done Model / option Previous metadata / spec Runtime consumer / actual constraint Fix
[x] Qwen3 TTS repetition_penalty Minimum 0 (spec) Must be positive (session). Retained minimum 0 as a boundary; explicitly described > 0 (zero excluded), with default unchanged.
[x] Qwen3 TTS temperature, subtalker_temperature Minimum 0; prose already describes sampling conditions (spec, subtalker) Positive when the corresponding do_sample/subtalker_do_sample is true (session). Retained minimum 0; named do_sample / subtalker_do_sample in the > 0 conditions and documented greedy-mode behavior.
[x] Qwen3 ASR audio_chunk_duration_sec Minimum 0 (spec) Positive in chunking and streaming paths (offline, streaming). Retained minimum 0; documented > 0 when chunking/streaming, offline none behavior, and mode-specific defaults.
[x] Audio8 TTS top_p, temperature [0,1], [0,2] (spec) (0,1], (0,2) (session). Retained numeric boundaries and existing exact (0,1] / (0,2) descriptions. No scalar spec change needed; zero and temperature 2 are explicitly excluded in prose.
[x] Fish Audio top_p, temperature [0,1], [0,2] (spec) (0,1], (0,2) (session). Retained numeric boundaries and exact (0,1] / (0,2) descriptions; copied those intervals into local help.
[x] BreezeTTS temperature, depth_temperature, top_p Minimum 0 (spec) Positive-finite parser (session). Retained bounds; documented temperatures > 0 and top-p (0,1].
[x] Confucius4 TTS temperature, top_p, repetition_penalty Minimum 0 (spec) Temperature > 0, top-p (0,1] (request); penalty > 0 (T2S). Retained bounds; made temperature/penalty > 0 explicit and retained top-p (0,1].
[x] ControlFoley guidance_scale Minimum 0 (spec) Positive parser (pipeline). Retained bounds; documented guidance > 0.
[x] DramaBox reference_duration_sec, audio_chunk_threshold_sec, audio_chunk_duration_sec Minimum 0 (spec) All must be positive (session). Retained bounds; documented all three as > 0, leaving crossfade unchanged.
[x] FireRed Audio guidance_scale Minimum 0 (spec) Positive parser (session). Retained minimum 0; documented guidance > 0.
[x] FireRedTTS3 guidance_scale Minimum 0 (spec) Positive parser in base and instruct paths (session). Retained minimum 0; documented guidance > 0 for the shared option.
[x] HeartMuLa duration_sec, temperature, guidance_scale, codec_duration_sec, codec_guidance_scale Minimum 0 (spec) Positive parsers (session). Retained bounds; explicitly described all five values as > 0.
[x] Higgs Audio STT audio_chunk_duration_sec Minimum 0 (spec) Must be positive (session). Retained minimum 0; explicitly described duration > 0.
[x] Irodori TTS duration_scale, min_duration_sec, max_duration_sec Minimum 0 (spec) Scale and minimum duration positive; maximum at least minimum (session). Retained bounds; explicitly described scale/minimum > 0 and retained max_duration_sec >= min_duration_sec. Reference duration unchanged.
[x] LiveAvatar shift Minimum 0 (spec) Must be positive (pipeline state). Retained minimum 0; documented shift > 0.
[x] Maya1 temperature, top_p, repetition_penalty Minimum 0 (spec) Positive; top-p also at most 1 (session). Retained bounds; documented temperature/penalty > 0 and top-p (0,1].
[x] MiniMax Music3 guidance_scale, ar_guidance_scale Minimum 0 (spec) Both must be positive (pipeline). Retained both minima; documented both guidance scales > 0.
[x] NeuTTS temperature Minimum 0 (spec) Positive parser (session). Retained minimum 0; explicitly described temperature > 0.
[x] OuteTTS repetition_penalty Minimum 0 (spec) Nonpositive values throw (decoder). Retained minimum 0; explicitly described penalty > 0; greedy temperature unchanged.
[x] PersonaPlex temperature, text_temperature Minimum 0 (spec) Positive when do_sample=true (request). Retained minimum 0; documented nonnegativity, sampling-only > 0, and greedy behavior.
[x] Seed-VC duration_scale Minimum 0 (spec) Must be positive (session). Retained minimum 0; explicitly described scale > 0; V2 behavior unchanged.
[x] Sortformer session session_len_sec Minimum 0 (spec) Must be positive (postprocess). Retained minimum 0; explicitly described session length > 0; Sortformer v2 unchanged.
[x] Soprano TTS temperature Minimum 0; prose claims zero selects a default (spec) Explicitly rejects <= 0 (session). Retained minimum 0; removed the false zero/default claim and documented temperature > 0.
[x] Voxtral Realtime temperature, top_p Minimum 0 (spec) Temperature > 0, top-p (0,1] (session). Retained bounds; explicitly described temperature > 0 and retained top-p (0,1], including local help.
[x] MOSS-TTSD temperature, repetition_penalty Minimum 0 (spec) Passed to HF sampling (decoder); sampled temperature must be positive (sampler), penalty must be positive when history is present (sampler). Retained bounds; documented temperature/penalty > 0 and history-dependent penalty checking.
[x] MiDashengLM min_stop_step Minimum 0 (spec) Positive integer parser (session). Changed integer minimum to 1.

Session Allocation Bounds

All entries below previously advertised minimum 0 but use parse_size_mb_option, which rejects nonpositive sizes (shared parser). Names omit their canonical session family prefix for readability.

Done Model Options Spec Consumer Fix
[x] Audio8 TTS ar_graph_arena_mb, ar_weight_context_mb, codec_graph_arena_mb, codec_weight_context_mb spec session Changed integer minimum to 1 MiB for every listed option; retained defaults.
[x] Fish Audio ar_graph_arena_mb, ar_weight_context_mb, codec_graph_arena_mb, codec_weight_context_mb spec session Changed integer minimum to 1 MiB for every listed option; retained defaults.
[x] Higgs Audio STT audio_encoder_graph_arena_mb, text_decoder_prefill_graph_arena_mb, text_decoder_decode_graph_arena_mb, text_decoder_weight_context_mb spec session Changed integer minimum to 1 MiB for every listed option; retained defaults.
[x] Irodori TTS condition_graph_arena_mb, rf_graph_arena_mb, codec_graph_arena_mb, condition_weight_context_mb, rf_weight_context_mb, codec_weight_context_mb arenas, weight contexts session Changed integer minimum to 1 MiB for every listed option; retained defaults.

Sentinels And Coupled Constraints

The first three rows are direct advertised-behavior mismatches. Remaining rows are missing conditional, divisibility, or cross-option constraints, not evidence that every advertised scalar zero is invalid.

Done Model / option Previous metadata / spec Actual consumer behavior Fix
[x] F5-TTS session frame_budget Default/minimum 0; zero described as 2048 (spec) Explicit values must be in [256,8192]; explicit zero throws (session). Set minimum 256, maximum 8192, and effective default 2048; documented that explicit zero is rejected. Internal omitted-value sentinel unchanged.
[x] AudioSR seed -1 described as random (spec) Every negative value maps to fixed seed 42; zero is an ordinary seed (pipeline). Removed the false random claim and minimum -1; documented that all negative inputs and omission use fixed seed 42. Zero remains an ordinary seed.
[x] MiDashengLM seed -1 described as random, minimum -1, maximum 2147483647 (spec) Unsigned 32-bit parsing rejects -1; omitted seed is 0 (session). Set range [0,4294967295]; retained default 0 and documented fixed unsigned seed semantics. Downstream seed is uint32_t, widened to uint64_t for flow sampling.
[x] LiveAvatar height, width, num_frames Independent minimum values (spec) Dimensions must be multiples of 16; blockwise frame count must be a multiple of 4 (pipeline state). Documented multiples of 16 for dimensions and the multiple-of-4 frame constraint only for blockwise generation.
[x] LiveAvatar vae_decoder_tile_size Minimum 0, zero disables tiling (spec) Enabled tiles must be multiples of 8 and larger than overlap (VAE). Documented enabled tiles as multiples of 8 greater than the 64-pixel overlap; retained zero-disable.
[x] MMS forced aligner session emission_window_sec, emission_context_sec Missing upper/alignment constraints (spec) Window positive, context nonnegative, both at most 3600 s; rounded 16 kHz sample counts must be divisible by 320 (emissions). Added maximum 3600 for both; documented rounded 16 kHz sample counts divisible by 320, preserving context zero and the context/window relation.
[x] TFGridNet audio_chunk_duration_sec, audio_chunk_overlap_sec Independent nonnegative bounds (spec) Enabled chunk length must exceed n_fft/2 samples; overlap must be positive and smaller than the chunk (session). Retained numeric bounds; documented nonnegativity, sample-based chunk/overlap constraints, and strictly positive overlap only when chunking. Whole-file duration zero retained.
[x] Apollo audio_chunk_duration_sec, audio_chunk_overlap_sec Independent nonnegative bounds; prose already states the half-chunk overlap limit (spec) Enabled chunk length must exceed n_fft/2 samples; overlap may not exceed half the chunk (session). Added the enabled chunk's sample-based minimum; retained existing half-chunk overlap prose and zero behavior.
[x] RE-USE audio_chunk_duration_sec, audio_chunk_overlap_sec Independent nonnegative bounds; prose already states overlap must be shorter (spec) Enabled chunk length must exceed sample_rate/50 samples; overlap smaller than chunk (session). Added the enabled chunk's sample-based minimum; retained existing overlap relation and zero behavior.
[x] MossFormer2 audio_chunk_duration_sec, audio_chunk_overlap_sec Independent nonnegative bounds (spec) When chunking is enabled, overlap must be smaller than duration (session). Documented overlap smaller than duration when chunking; retained whole-file duration zero.
[x] AudioSR chunk duration/overlap Independent bounds (spec) Overlap must be smaller than duration, including after sample rounding (pipeline). Documented overlap smaller than duration, including after sample rounding.
[x] Stable Audio Foundation init_noise_level [0,1] (spec) With init audio and k-diffusion, this becomes sampler_sigma_max, which must be positive (assignment, check). Documented the Foundation/init-audio/k-diffusion positivity condition; retained [0,1] for the shared option.

Seed semantics remain model-specific. F5-TTS's default and the AudioSR/MiDashengLM seed descriptions now reflect existing behavior; no new zero-default or random sentinel was implemented. Any future runtime semantics change needs separate authorization and validation; the equivalence results below do not cover it.

Usage Documentation

Remaining Discovery Corrections

Done Model / control Fix
[x] Echo-TTS text chunk size Added canonical text_chunk_size to the spec with minimum 1 and default 300, allowing it through request-key validation to the existing consumer. Added a contract regression check and usage documentation.
[x] MMS forced aligner audio chunking Removed standalone audio-chunk flags from this model's alignment help; other alignment families retain their existing help.
[x] MOSS-TTS-v1.5 / VoiceGenerator generation bounds Added min_frames and max_frames to specs, local CLI tables, and usage docs. Documented automatic nonpositive values and the runtime-adjusted ceiling.
[x] MiniMax-H3 cache window Advertised 10%/95% progress controls; removed false literal sigma defaults and documented paired sigma overrides. Updated usage docs.
[x] MOSS-TTS-v1.5 weight format Corrected local help and the usage table to default native, preserving packaged quantization.
[x] VoxCPM1 automatic retries Removed the unconditional metadata default; documented true offline, false streaming, and streaming's warning/ignore behavior for explicit true.
[x] Music3 ensemble takes Added maximum 16 to local CLI metadata and documented the inclusive 1-16 range.

Runtime Validation Checklist

Checked rows state either a runtime option-equivalence pass or an exemption. Existing GGUFs are used where available; supported safetensors and external-spec packages are labeled explicitly. Unchecked rows retain missing coverage. Output quality is separate from this refactor check: a pass means old/new names reach the same consumers and behave consistently, not that generation quality or pre-existing model behavior is correct.

Instruction naming correction: instruct is canonical. The instruction-only runtime changes to Audio Flamingo, AuK, Maya1, MOSS-Transcribe-Diarize, and SAMSONE were reverted to main; their earlier alias runs below describe the superseded implementation. Newly added instruct aliases for BreezeTTS, CosyVoice3, FireRed Audio, FireRedTTS3, and Irodori require fresh runtime validation; earlier checks do not establish coverage for this correction.

Done Model Runtime validation requirement
[x] ACE-Step CUDA Turbo Q8: all three old/new aliases produce identical 12-second WAVs under existing embedded/current specs. Thinking invokes planner code generation, guidance enables CFG, and disabling either changes output; duration yields 60 planner codes and 12 seconds.
[x] Audio Flamingo CUDA Flamingo 3 Q4_K: both instruction names produce identical summaries under embedded and updated specs; the default produces a transcription instead.
[x] AuK Flash Q8 aliases match byte-for-byte across old/current external specs; editing rejects both correctly. Unexpected opening phrase is recorded separately as an output-quality observation, not an alias failure.
[x] Canary ASR CUDA Q8: legacy pnc and canonical punc produce identical transcripts with the existing embedded spec and the updated spec. Disabling the control removes punctuation/capitalization; the default restores them.
[x] Chatterbox Clone flow aliases/greedy override match byte-for-byte across specs. VC aliases match at the same request position with reversed-order controls. Truncation and repeatability observations are separate from option equivalence.
[x] Chatterbox Turbo CUDA Q8: token-limit aliases produce identical complete speech under existing and updated specs. Reducing the cap from 512 to 64 shortens output from 6.00 to 2.68 s.
[x] Cohere ASR CUDA Q8: both punctuation aliases produce identical text with embedded and updated specs; the default restores punctuation/capitalization.
[x] ControlFoley CUDA existing Q8 GGUF, eight-second upstream skateboarding video: legacy video/canonical video_file produce identical WAVs under embedded/current specs. Video decoding and all visual conditioners execute; output differs from text-only control.
[x] CosyVoice3 CUDA Q8: legacy conv_weight_type=f16 remains accepted and produces the same WAV as omitting it, under existing and updated specs. ASR recovers the complete requested text.
[x] DotTTS Edit Q8: old/new instructions perform the requested word replacement with existing/current specs. Reversed-order control gives exact waveform matches at the same request position. Streaming reaches the expected offline-only edit rejection. Repeatability caveat recorded.
[x] F5-TTS Not required: duplicate guidance discovery removed; parser unchanged.
[x] FireRed Audio CUDA Q8: ASR token aliases match under embedded/current specs and a four-token control truncates identically. Generation text/audio aliases produce identical complete speech. Removed helper-arena setting remains an accepted no-op.
[x] Fish Audio Not required: token-limit help only.
[x] FunASR Nano CUDA Q8: both duration spellings produce identical transcripts and two audio chunks with a three-second setting, under embedded and updated specs.
[x] GigaAM CUDA multilingual F16 GGUF: bare/prefixed VAD paths produce identical transcripts and two VAD-derived segment boundaries under existing and updated specs.
[x] GLM-TTS Valid Flow/HiFT noise files: old/new aliases produce identical full-sentence WAVs with the old embedded spec and current override. ASR recovers the full text; controls reach their consumers.
[x] Hviske ASR CUDA Q8, 16-second Danish sample: both punctuation aliases produce identical text under embedded and updated specs; default conditioning restores capitalization.
[x] Hviske v6 CUDA Q8, 16-second Danish sample: punctuated=false and punc=false, with cased=false, give identical text under embedded and updated specs. Enabling punctuation/casing changes formatting as expected.
[x] Index Echo CUDA 2B Q8: max_text_tokens=96 and max_tokens=96 give identical text/timestamps under existing and updated specs. An 8-token control truncates the cue and raises a malformed-subtitle error under both specs.
[x] IndexTTS2.5 CUDA Q8: duration_factor=1.2 and duration_scale=1.2 match under existing and updated specs; output grows from 6.548 to 7.848 s. ASR recovers the complete requested text.
[x] Inflect v2 CUDA original GGUF: speaking_rate=1.25 and speed=1.25 produce identical audio under existing and updated specs; 5.831 s versus default 6.492 s confirms the rate direction. ASR recovers the requested text.
[x] Irodori TTS Both alias pairs match byte-for-byte across old embedded/current specs; reference trimming and embedding loading execute. Embedding-conditioned extra tail is a separate output-quality observation.
[x] Kokoro CUDA Q8 offline: all three legacy/canonical arena names, with nondefault sizes, produce byte-identical WAVs under existing and updated specs. ASR recovers the requested text.
[x] LFM2 Audio CUDA upstream Q8 GGUFs require an explicit spec override (no embedded spec). With it, both chunk/one-pass aliases produce identical two-chunk transcripts; both enforce the limit and remain rejected on TTS/S2S where inapplicable.
[x] LiveAvatar Existing NVFP4/Q4/F16 package: all three image and memory-policy spellings produce byte-identical 45-frame videos. Nondefault false policy is logged in each run; sampled frames are valid and moving. Model-local parsing, not spec-backed validation.
[x] Maya1 CUDA Q8: both instruction names produce byte-identical WAVs under embedded and updated specs; ASR recovers the requested sentence. Missing instruction still raises the required-input error.
[x] MiniMax H3 CUDA existing Q4 component package: sampler=res_multistep and sampler_mode=res_multistep select the same nondefault sampler and produce identical 8.7-second audio. Canonical run also uses current spec override. GGUF has no embedded spec; no embedded-spec coverage claimed.
[x] MiniMax Music3 Existing Q4/Q8/Q4 package: old/new 48 MiB arena names produce identical 20-second WAVs and logged allocations. Lyrics mismatch is recorded separately. Spec overrides do not control this model-local loader.
[x] MiraTTS Native safetensors: bare/prefixed nondefault weights produce identical WAVs and buffers; canonical names also work with the pre-refactor external spec. Omitted defaults match explicit native/native/F32. No legacy-GGUF coverage claimed. Existing session.wall_ms logging gap recorded.
[x] MioTTS Not required: request-option help names only.
[x] MOSS-Transcribe-Diarize Instruction aliases match in offline and streaming with existing/current specs. Custom prompt omits timestamps under both names; default prompt produces a parsed speaker turn.
[ ] MOSS-TTS v1.5 Matching local package not located, nor found in audio-cpp's HF repositories. Configured package is third-party; not downloaded. Available MOSS-TTS-Local-v1.5 is a different family, not a substitute.
[x] MOSS-TTSD Instruction and text-temperature aliases produce byte-identical short dialogue across embedded/current specs; ASR recovers both sentences.
[x] MOSS-VoiceGen Instruction and text-temperature aliases produce byte-identical speech across embedded/current specs; ASR recovers the complete input.
[ ] OuteTTS Aligner-path aliases and file resolution remain unvalidated. No local package or audio-cpp-hosted package located; configured third-party package not downloaded.
[x] OWSM CUDA Q8: beam_size=2 and num_beams=2 produce identical transcripts offline and streaming, under embedded and updated specs.
[x] PocketTTS CUDA English Q8: token/frame limits, voice-state export/import, and five nondefault graph-arena aliases match exactly within offline/streaming modes. Offline old/new options also match across embedded/current specs. Two text chunks; an eight-frame control caps output at 0.64 s. ASR recovers both sentences with minor word differences.
[x] Qwen3 ASR CUDA 0.6B Q8: both VAD-path names load Silero and produce identical two-chunk transcripts under existing and updated specs.
[x] Qwen3 TTS CUDA CustomVoice Q8: speaker=ryan and voice_id=ryan override structured Aiden, matching the Ryan-only control and differing from Aiden. Offline results match across specs; streaming alias WAVs also match. Both modes transcribe to the requested text.
[x] RVC Existing F16 GGUF: valid pitch contour and real FAISS index, retrieval blend 0.25. Old/new names match exactly with packaged loading/current spec; pitch/retrieval consumers execute and ASR preserves the full source sentence.
[x] SAM Audio CUDA Small F32, six-second official office excerpt: image/video aliases produce byte-identical target and residual WAVs under old embedded/current specs. Vision executes and differs from text-only conditioning.
[x] SAMSONE CUDA Q8: old/new instruction names give identical audio descriptions under embedded and updated specs; the default prompt produces a different description.
[x] sanoTTS CUDA F32 Nano and PiperLite: legacy speaking_rate=0.8 equals speed=1.25, byte-for-byte under existing and updated specs. Both shorten audio versus default and preserve the full transcript.
[x] Seed-VC V1/V2 aliases match at corresponding request positions across packaged/current specs and reversed alias order. Noise files reach their reader; V1 duration control works. V2 parses both duration names but retains the pre-existing no-op; metadata correction is separate from alias equivalence.
[x] Silero VAD CUDA bundled safetensors (no model spec/GGUF fixture): both maximum-duration names at 2 s produce identical three-segment boundaries; default produces two segments.
[x] Soprano TTS CUDA Q8: bare/prefixed weight and chunk settings produce byte-identical audio offline and streaming with embedded and updated specs. Nondefault F16 backbone/decoder settings change their weight buffers; chunk size 80 splits the input, unlike the default.
[x] Sopro TTS CUDA F16: all three duration/reference aliases produce identical offline WAVs under existing and updated specs. Legacy-existing versus canonical-updated streaming WAVs also match, emit 11 chunks, and transcribe to the requested text.
[ ] Stable Audio Shared Small-SFX parser passes old/new sampler aliases with packaged/current specs; Euler matches exactly and PingPong changes output. Foundation parser remains untested: no local checkpoint or audio-cpp-hosted Foundation package located.
[x] Supertonic Not required: duplicate speed help removed; parser unchanged.
[x] Vevo2 Six arena aliases and reference/prosody-duration aliases match exactly on Q8 with packaged loading/current override. Prosody explicitly enabled; 9/6 s controls produce 9.04/6.08 s, and ASR recovers the full text.
[x] VibeASR CPU upstream two-GGUF package: old/new token limits match using pre-refactor/current external specs. Full transcript at 96 tokens; four-token control truncates. No embedded-spec coverage claimed.
[x] VieNeu v3 Turbo Existing Q8 GGUF: dictionary, frame-cap, and minimum-chunk aliases give identical 5.2-second WAVs under packaged/current specs. Real SEA-G2P library/dictionary executes. Nondefault cap=false and minimum=60 reach the existing consumers; no frame-ceiling boundary claim.
[x] VoxCPM1 CUDA Q8: all seven arena aliases at nondefault sizes match byte-for-byte under existing/current specs. Reference encoding is exercised; ASR recovers the full input.
[x] VoxCPM2 CUDA Q8: all seven arena aliases at nondefault sizes match byte-for-byte under existing/current specs. Reference encoding is exercised; ASR recovers the full input. Chunk-strategy help is documentation-only.
[x] Voxtral Realtime Not required: token-limit help only.
[ ] ZipVoice Language and timestep-shift aliases remain unvalidated. No local package or audio-cpp-hosted package located; configured third-party package not downloaded.