#11334: feat: add Mistral/Voxtral audio transcription provider
stale
size: S
Cluster:
Voice Transcription Enhancements
## Summary
Add Mistral as a new audio transcription provider, enabling users to transcribe audio using Mistral's Voxtral model via their OpenAI-compatible API.
## Changes
- **New provider:** `src/media-understanding/providers/mistral/index.ts` — wraps `transcribeOpenAiCompatibleAudio` with Mistral's base URL (`https://api.mistral.ai/v1`), following the same pattern as the existing Groq provider.
- **Provider registry:** Registered `mistralProvider` in the PROVIDERS array.
- **Default model:** Added `mistral: "voxtral-mini-latest"` to `DEFAULT_AUDIO_MODELS`.
- **Tests:** Unit tests covering provider metadata, default URL routing, and custom base URL override.
## Details
Mistral's audio transcription API ([docs](https://docs.mistral.ai/capabilities/audio_transcription)) uses the same `multipart/form-data` format as OpenAI Whisper (`file` + `model` fields, Bearer auth), so no new transcription function was needed — we reuse `transcribeOpenAiCompatibleAudio` exactly like Groq does.
Users can configure it via:
```yaml
media_understanding:
audio:
provider: mistral
# optional: model defaults to voxtral-mini-latest
```
Requires a Mistral API key configured in the provider backends.
<!-- greptile_comment -->
<h2>Greptile Overview</h2>
<h3>Greptile Summary</h3>
This PR adds a new `mistral` media-understanding provider that reuses the existing OpenAI-compatible multipart audio transcription implementation (`transcribeOpenAiCompatibleAudio`) with Mistral’s default base URL (`https://api.mistral.ai/v1`). It registers the provider in the provider registry and introduces a default audio model mapping (`mistral: voxtral-mini-latest`), along with unit tests validating default URL routing and baseUrl override behavior.
<h3>Confidence Score: 5/5</h3>
- This PR is safe to merge with minimal risk.
- Changes are small, follow an existing provider pattern (OpenAI-compatible wrapper), and are covered by unit tests for default/override URL behavior. No functional issues were found in the added provider wiring or defaults.
- No files require special attention
<!-- greptile_other_comments_section -->
<sub>(2/5) Greptile learns from your feedback when you react with thumbs up/down!</sub>
<!-- /greptile_comment -->
Most Similar PRs
#16258: feat(models): add Mistral AI provider support
by joeVenner · 2026-02-14
84.8%
#14730: Add Mistral AI as a model provider
by jaimegh-es · 2026-02-12
80.9%
#12717: fix: add "audio" to openai provider capabilities
by openjay · 2026-02-09
76.8%
#14208: feat(media): add AssemblyAI audio transcription provider
by jmoraispk · 2026-02-11
76.6%
#8848: feat(stt): Add Whisper as first-class audio transcription provider
by emadomedher · 2026-02-04
76.5%
#19427: feat: add Soniox speech-to-text provider
by matjaz · 2026-02-17
74.6%
#20965: feat: Add comprehensive model configuration and discovery for various…
by rodeok · 2026-02-19
73.1%
#8135: Adding Groq as a model provider
by FameDied · 2026-02-03
72.6%
#7965: feat(tts): add Speechify as TTS provider
by chaerla · 2026-02-03
72.6%
#8388: fix(media): auto-skip tiny/empty audio files before transcription (...
by Glucksberg · 2026-02-04
71.0%