Expose experimental Voxtral Realtime STT backend selection - #312
Merged
Conversation
rgbkrk
marked this pull request as ready for review
July 7, 2026 15:27
|
This run was cancelled 🛑 The workflow was cancelled before completion. Please check the link below for details. |
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.

Summary
This is a focused Voxtral Realtime STT routing slice. The workspace already had native Rust/Candle Voxtral Realtime model code in
voice-voxtral; this PR makes it reachable through the shared STT model abstraction and the existing user-facing STT surfaces without changing the default Whisper path.Changes:
voice-stt, includingvoxtral-realtimeparsing and Voxtral model-name inference formistralai/Voxtral-Mini-4B-Realtime-2602.--stt-backend,--stt-model, and--stt-max-new-tokenstovoice listenandvoice transcribe.WhisperModelusage to backend-neutralvoice_stt::SttModel.voice listenstill prefers the daemon.What runs today
The following route now selects the native Voxtral Realtime STT backend, loads the full model on Metal, and transcribes a real audio file:
Observed output:
Total command timing from
/usr/bin/time -p:real 7.80,user 4.57,sys 1.31.The native Realtime implementation is not a stub:
voice-voxtralhas tests covering realtime config parsing, tensor contract metadata, audio padding, mel generation, causal audio transformer modules, projector modules, sliding causal masks, tiny text decode, and tiny end-to-end transcriber paths over audio embeddings and 16 kHz samples.Real audio smoke status
Generated real speech input:
say -v Samantha -o /tmp/voxtral-realtime-stt-smoke.aiff "The quick brown fox jumps over the lazy dog." afconvert -f WAVE -d LEI16@16000 -c 1 /tmp/voxtral-realtime-stt-smoke.aiff /tmp/voxtral-realtime-stt-smoke.wav afinfo /tmp/voxtral-realtime-stt-smoke.wavInput:
/tmp/voxtral-realtime-stt-smoke.wavAttempt:
Result:
metal:02.09sThe quick brown fox jumps over the lazy dog.437.80sCache state:
/Users/kylekelley/.cache/huggingface/hub/models--mistralai--Voxtral-Mini-4B-Realtime-2602/Users/kylekelley/.cache/huggingface/hub/models--mistralai--Voxtral-Mini-4B-Realtime-2602/snapshots/2769294da9567371363522aac9bbcfdd19447addconfig.json,params.json,processor_config.json,tekken.jsonconsolidated.safetensors, 8,859,462,744 bytes/Users/kylekelley/.cache/huggingface/hub/models--mistralai--Voxtral-Mini-4B-Realtime-2602/blobs/263f178fe752c90a2ae58f037a95ed092db8b14768b0978b8c48f66979c8345d/Users/kylekelley/.cache/huggingface/hub/models--mistralai--Voxtral-Mini-4B-Realtime-2602/snapshots/2769294da9567371363522aac9bbcfdd19447add/consolidated.safetensorsDownload note: the completed path used resumable single-stream
curl -L --fail --continue-at -against the Hugging Face resolve URL. Earlier multi-rangearia2cproduced sparse partial state and Xet 403s; that state was removed before completion.Verification
Passed:
scripts/verify_pre_pullfrog_local_review.sh --base origin/maincovered:cargo fmt --checkgit diff --checkgit diff --cached --checkgit diff --check 817af92020fc3eeea10b3833afd4c70dbbad42d5...HEADcargo test -p voicecargo test -p voice-daemoncargo test -p voice-sttcargo clippy -p voice -p voice-daemon -p voice-stt --all-targets -- -D warningsKnown blockers and risks
max_new_tokens.Primary sources checked
mistralai/Voxtral-Mini-4B-Realtime-26022769294da9567371363522aac9bbcfdd19447addconfiguration_voxtral_realtime.pymodeling_voxtral_realtime.py