Voxtral Mini is Mistral's
3B-parameter speech-LLM
— an enhancement of
Ministral 3B
with state-of-the-art audio input capabilities while retaining best-in-class text performance. It excels at speech transcription, translation, and audio understanding.
8 languages
(English, French, German, Spanish, Italian, Portuguese, Dutch, Hindi) with automatic language detection
Built-in audio Q&A and summarization
— ask questions about audio content directly
Function calling from voice
— trigger backend functions based on spoken intents
Long-form context
— up to 30 minutes of audio for transcription, 40 minutes for understanding
Natively multilingual
with state-of-the-art WER across the world's most widely used languages
Highly capable at text
— retains the text understanding capabilities of its Ministral 3B backbone
Apache-2.0
licence
Files
File
Size
Notes
voxtral-mini-3b-2507-q4_k.gguf
2.5 GB
Q4_K — recommended default
voxtral-mini-3b-2507-q8_0.gguf
5.0 GB
Q8_0, near-lossless
Both quantisations produce the correct transcript on
samples/jfk.wav
:
And so, my fellow Americans, ask not what your country can do for you, ask what you can do for your country.
The mel filterbank from
WhisperFeatureExtractor
and the Tekken tokenizer vocab are
baked into the GGUF
, so the C++ runtime computes everything natively — no Python/torch/librosa at inference time.
Measured on
samples/jfk.wav
(11 seconds), 4-core CPU:
Variant
Mel
Encoder
Prefill
Decode/tok
Total
F16 (8.8 GB)
264 ms
48.7 s
78.4 s
1134 ms
157 s
Q4_K (2.5 GB)
246 ms
32.7 s
30.8 s
242 ms
70 s
Q4_K gives a
2.2× speedup
over F16 while producing identical transcripts. The 3B model is larger than the Qwen3-ASR 0.6B — for fastest CPU inference on short clips, Qwen3-ASR Q4_K (6.6s for 11s audio) is faster; Voxtral's advantage is the richer capabilities (audio understanding, function calling, text Q&A) and superior multilingual WER.
Architecture
Voxtral-Mini-3B is a three-module speech-LLM:
Component
Details
Audio encoder
32-layer Whisper-large-v3 encoder: d=1280, 20 heads, head_dim=64, FFN=5120, 128 mels,
learned absolute positional embedding
(1500, 1280). Conv1d front-end: conv1(128→1280, k=3,
stride=1
, pad=1) + GELU → conv2(1280→1280, k=3, stride=2, pad=1) + GELU. Note: conv1 stride is 1 (not 2 like standard Whisper), so only conv2 does temporal downsampling (2×). 3000 mel frames → 3000 → 1500 encoder frames.
Conv1 stride is 1
(Whisper uses stride 2). This means the conv front-end only does 2× temporal reduction (just conv2), not 4×. 3000 mel frames → 1500 encoder frames (vs Whisper's 750).
K-proj has no bias
in the encoder's self-attention (Whisper quirk preserved from the Whisper-large-v3 weights).
The encoder output is
not
consumed by a Whisper decoder — it's fed through a 4-frame-stack projector into a general-purpose Llama 3 LLM that generates the transcript (or any other text response) autoregressively.
Implementation notes
The C++ runtime is verified against the PyTorch reference (bf16) at every architectural boundary:
Stage
Diff metric
Result
LLM forward (30 layers, text-only)
cosine sim at last position
0.999973,
top-5 5/5 match
Audio encoder + projector (32 layers + stack-4)
per-row cosine sim vs
proj2_out.npy
mean 0.998, min 0.870 (bf16 ref precision)
End-to-end transcription on jfk.wav
generated token sequence
Correct transcript
The 0.87 min cosine sim on the encoder is from the bf16 reference precision (7-bit mantissa) vs F16 GGUF weights (10-bit) with F32 compute in C++. An F32 reference would give tighter numbers — the end-to-end transcript is the real correctness test and it passes.
Bugs found during the port
ggml_conv_1d
output layout
: returns
(OL, OC, N)
not
(OC, OL)
. Bias needs
(1, OC, 1)
reshape to broadcast over time+batch.
Post-conv transpose
:
ggml_conv_1d
puts time on
ne[0]
, but LayerNorm needs feature dim on
ne[0]
. Fixed by reshape+transpose to
(d, T_enc)
.
Tekken vocab blob storage
: gguf-py's
add_array
with Python int lists stores as INT32, corrupting the uint8 byte stream. Fixed by storing as a 1D F32 tensor.
How this was made
HF safetensors converted to GGUF F16 by
models/convert-voxtral-to-gguf.py
. All 765 tensors (762 model + mel_filters + mel_window + Tekken vocab blob) map cleanly.
Quantised variants produced by
cohere-quantize
with the Q4_0 fallback for 1280-wide audio encoder tensors (1280 % 256 ≠ 0 for Q4_K, same situation as Qwen3-ASR).
Inference implemented in
src/voxtral.{h,cpp}
(~1300 LOC): encoder and LLM each run as one ggml graph, with a persistent F16 KV cache
(head_dim, max_ctx, n_kv_heads, n_layers)
shared between prefill and per-token decode steps. Flash attention (
ggml_flash_attn_ext
) used on both prefill (F16 causal mask) and decode (no mask) paths.
voxtral-mini-3b-2507-GGUF huggingface.co is an AI model on huggingface.co that provides voxtral-mini-3b-2507-GGUF's model effect (), which can be used instantly with this cstr voxtral-mini-3b-2507-GGUF model. huggingface.co supports a free trial of the voxtral-mini-3b-2507-GGUF model, and also provides paid use of the voxtral-mini-3b-2507-GGUF. Support call voxtral-mini-3b-2507-GGUF model through api, including Node.js, Python, http.
voxtral-mini-3b-2507-GGUF huggingface.co is an online trial and call api platform, which integrates voxtral-mini-3b-2507-GGUF's modeling effects, including api services, and provides a free online trial of voxtral-mini-3b-2507-GGUF, you can try voxtral-mini-3b-2507-GGUF online for free by clicking the link below.
cstr voxtral-mini-3b-2507-GGUF online free url in huggingface.co:
voxtral-mini-3b-2507-GGUF is an open source model from GitHub that offers a free installation service, and any user can find voxtral-mini-3b-2507-GGUF on GitHub to install. At the same time, huggingface.co provides the effect of voxtral-mini-3b-2507-GGUF install, users can directly use voxtral-mini-3b-2507-GGUF installed effect in huggingface.co for debugging and trial. It also supports api for free installation.
voxtral-mini-3b-2507-GGUF install url in huggingface.co: