You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Complete production validation for typed Qwen3-ASR speech-to-text #325
This issue now tracks production validation rather than API implementation. Live/stateful input modes are tracked in #327; Web hardware/WebGPU validation is tracked in #329.
Remaining validation
Linux x64 CPU real-model coverage using exact model, projector and fixture provenance.
Silence, malformed/truncated input, stereo/resampling behavior and audio crossing the 30-second preprocessing boundary.
Cancellation latency, repeated calls, cleanup, peak memory and single-task concurrency.
Old/missing native symbols and unsupported platform/runtime-version behavior.
Platform-specific model behavior and any remaining format constraints.
Upstream marker regression ggml-org/llama.cpp#26749 remains open with no linked repair. llamadart must retain transcript normalization and must not leak unexpected language/asr_text markers into final transcripts.
Acceptance gates
macOS arm64 and Linux x64 representative CPU runs pass with immutable model/projector/fixture checksums.
Silence, malformed, stereo/resampling and long-boundary inputs have explicit tested behavior.
Cancellation and repeated-call cleanup meet documented latency and memory bounds.
Version-skew and unsupported combinations fail with typed actionable errors.
Documentation, examples and the support matrix match the exact validated scope.
The upstream marker issue is either fixed in a consumed release or normalization remains covered by regression tests.
changed the title [-]Add a typed SpeechToTextEngine for native Qwen3-ASR[/-][+]Complete production validation for typed Qwen3-ASR speech-to-text[/+]on Aug 21, 2026
The issue remains open only for the production-validation gaps from the original acceptance list: Linux x64 real-model coverage, silence/malformed/stereo/resampling and long-boundary inputs, real cancellation/cleanup/peak-memory evidence, and any remaining platform-specific model behavior.
Upstream marker regression ggml-org/llama.cpp#26749 is still open with no fixing PR attached, so llamadart must retain its transcript normalization and must not treat the upstream ticket as resolved merely because the public API shipped.
CPU runs with checksums.validation-speech-stt rejects a model, projector or jfk.wav whose size or SHA-256 differs from the lock. With native v0.4.1-1 it passed 20/20 on macOS arm64 CPU (four runs) and on Linux x64 CPU (two runs, AMD EPYC 7B12, at 1584e7d).
Edge inputs.#590 runs silence, a truncated RIFF, 44.1 kHz stereo and a 33 s input in every pack run. Each has a fixed expected outcome and gates the pass.
Cancel and memory bounds.#594 added the 500 ms cancel budgets and the 1.10x memory budget, #600 stops prompt ingest between chunks, and #637 pins all four values. Worst in-flight cancel on Linux was 289.6 ms; memory growth was at most 1.055x.
Typed errors.#638 throws LlamaModelException for a missing or rejected projector and LlamaUnsupportedException for a runtime without mtmd, and the no-audio reason names its cause. The remaining gaps are tracked: #640, #641, #642.
Docs.#639 narrows the guide, support matrix, README and changelogs to what is validated: WAV only, at most 33 s, with long recordings tracked in #636.
Upstream marker.ggml-org/llama.cpp#26749 is still open. Normalization is covered: replacing it with a plain trim fails three VM tests and one Chrome test.
Related, outside this issue: #633 (TTS pack memory baseline), #634 and #635 (LiteRT-LM ASR, under #327).
Activity
[-]Add a typed SpeechToTextEngine for native Qwen3-ASR[/-][+]Complete production validation for typed Qwen3-ASR speech-to-text[/+]leehack commentedon Aug 21, 2026
Implementation and remaining validation — 2026-08-21
The typed STT API requested by this issue is now implemented and released:
SpeechToTextEngine.0.8.20carried the current native/Web runtime pins and representative ASR regression coverage.The issue remains open only for the production-validation gaps from the original acceptance list: Linux x64 real-model coverage, silence/malformed/stereo/resampling and long-boundary inputs, real cancellation/cleanup/peak-memory evidence, and any remaining platform-specific model behavior.
Upstream marker regression ggml-org/llama.cpp#26749 is still open with no fixing PR attached, so llamadart must retain its transcript normalization and must not treat the upstream ticket as resolved merely because the public API shipped.
test: add synthetic speech edge fixtures to the GGUF STT pack (#590)
test: bound speech cancellation latency and peak memory
test: pin the speech pack cancel and memory budget values
fix: type native projector load failures and name the no-audio cause
docs: match speech-to-text docs to the validated scope
leehack commentedon Sep 24, 2026
All six gates are met on
mainata0ac411.validation-speech-sttrejects a model, projector orjfk.wavwhose size or SHA-256 differs from the lock. With nativev0.4.1-1it passed 20/20 on macOS arm64 CPU (four runs) and on Linux x64 CPU (two runs, AMD EPYC 7B12, at1584e7d).LlamaModelExceptionfor a missing or rejected projector andLlamaUnsupportedExceptionfor a runtime without mtmd, and the no-audio reason names its cause. The remaining gaps are tracked: #640, #641, #642.Related, outside this issue: #633 (TTS pack memory baseline), #634 and #635 (LiteRT-LM ASR, under #327).