How to Use Mistral Voxtral for Speech-to-Text Transcription
Mistral Voxtral is an open-weight audio model from Mistral AI that turns speech into text and reasons about what it hears. It accepts up to 30 minutes of audio per call, supports English, French, Spanish and Italian, and ships in two sizes: a 3B and a 24B variant. This guide walks you through getting your first transcription running in about 15 minutes.
Direct answer: Mistral Voxtral transcribes and understands up to 30 minutes of audio per request; you call it through the Mistral API by sending a base64 audio file to voxtral-mini-latest, and it returns text plus optional answers about the audio.
What is Mistral Voxtral, exactly?
Voxtral is Mistral’s speech model that does two jobs at once: transcription (audio to text) and audio understanding (answering questions about a recording). The 24B version beats Whisper large-v3 on several benchmarks while staying small enough to self-host. You get a hosted API or downloadable weights under Apache 2.0 for the small model.
How do I get an API key?
Sign in at Mistral’s console and create a key under the API Keys section. The free tier is rate-limited but enough for testing. Paid pricing for Voxtral starts at roughly $0.001 per minute of audio, billed on the transcript length, so a one-hour podcast costs a few cents.
How do I send my first audio file?
Install the client and run one call. The API expects either a URL or base64-encoded audio.
- Run
pip install mistralai. - Set your key:
export MISTRAL_API_KEY=your_key. - Send audio to the model:
from mistralai import Mistral
import base64
c = Mistral(api_key="your_key")
with open("meeting.mp3","rb") as f:
b64 = base64.b64encode(f.read()).decode()
r = c.chat.complete(model="voxtral-mini-latest", messages=[
{"role":"user","content":[
{"type":"text","text":"Transcribe this meeting."},
{"type":"audio_url","audio_url":{"url":"data:audio/mp3;base64,"+b64}}
]}])
print(r.choices[0].message.content)
The response is plain text. If you want a summary instead of a transcript, change the text prompt to “Summarize the decisions made.” The model reads the audio directly.
Can I self-host it?
Yes. The 3B weights run on a single 16GB GPU, which is useful when audio can’t leave your network. You lose the managed scaling and pay in setup time instead. For most teams the hosted endpoint is cheaper until volume gets serious.
Where does it fall short?
The 30-minute cap forces you to chunk longer recordings, and chunk boundaries can split a speaker’s sentence. Overlapping speakers in a noisy room degrade accuracy noticeably, and there’s no built-in speaker diarization, so you’ll bolt on something like pyannote if you need “who said what.” Language coverage is four languages, well below Whisper’s 90-plus.
Who is Mistral Voxtral for?
It fits teams already in the Mistral ecosystem that want transcription with light reasoning attached. Skip it if you need 100 languages, live streaming, or diarization out of the box.
Key Takeaways
- Mistral Voxtral handles up to 30 minutes of audio per API call.
- Hosted pricing starts around $0.001 per minute; the 3B weights are self-hostable on a 16GB GPU.
- Supported languages: English, French, Spanish, Italian — not the 90+ Whisper covers.
- No speaker diarization; plan a third-party tool if you need it.
