feat(mistral): add Voxtral audio transcription support - #22801
Merged
Chesars merged 3 commits intoMar 4, 2026
Merged
Conversation
Add MistralAudioTranscriptionConfig for Mistral's /v1/audio/transcriptions endpoint, enabling litellm.transcription() with mistral/voxtral-mini-latest and other Voxtral models. Supports multipart form-data with OpenAI-compatible params (language, temperature, response_format, timestamp_granularities) plus Mistral-specific params like diarize.
Add Mistral to the supported providers list in audio_transcription.md and add Audio Transcription section to the Mistral provider page with SDK usage, optional params, diarize support, and proxy configuration.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
Greptile SummaryAdds Mistral Voxtral audio transcription support via
Confidence Score: 4/5
|
| Filename | Overview |
|---|---|
| litellm/llms/mistral/audio_transcription/transformation.py | New MistralAudioTranscriptionConfig implementing multipart form-data transcription. Clean implementation following the existing OVHCloud pattern. Boolean serialization handled correctly (lowercase). Provider-specific params properly extracted via base class helper. |
| litellm/utils.py | Adds Mistral provider branch to get_provider_audio_transcription_config, following the established pattern for other providers (OVHCloud, WatsonX, etc.). Minimal and correct change. |
| litellm/litellm_core_utils/get_supported_openai_params.py | Adds transcription request_type handling for mistral provider, consistent with existing chat_completion and embeddings branches. |
| tests/test_litellm/llms/mistral/audio_transcription/test_mistral_audio_transcription_transformation.py | Good unit test coverage (9 tests) for URL construction, auth headers, param mapping, request/response transformation, and diarize passthrough. The BaseLLMAudioTranscriptionTest class uses skipif for real API calls, matching OVHCloud convention. |
| docs/my-website/docs/providers/mistral.md | Comprehensive documentation for Mistral audio transcription including SDK usage, optional params, Mistral-specific params (diarize), and proxy config example. |
Sequence Diagram
sequenceDiagram
participant User
participant LiteLLM as litellm.transcription()
participant PCM as ProviderConfigManager
participant Config as MistralAudioTranscriptionConfig
participant Handler as LLM HTTP Handler
participant Mistral as Mistral API
User->>LiteLLM: transcription(model="mistral/voxtral-mini-latest", file=audio)
LiteLLM->>PCM: get_provider_audio_transcription_config(provider=MISTRAL)
PCM-->>LiteLLM: MistralAudioTranscriptionConfig
LiteLLM->>Config: validate_environment(api_key)
Config-->>LiteLLM: Headers (Bearer token)
LiteLLM->>Config: get_complete_url()
Config-->>LiteLLM: https://api.mistral.ai/v1/audio/transcriptions
LiteLLM->>Config: transform_audio_transcription_request(model, file, params)
Config-->>LiteLLM: AudioTranscriptionRequestData(data, files)
LiteLLM->>Handler: POST multipart/form-data
Handler->>Mistral: POST /v1/audio/transcriptions
Mistral-->>Handler: {"text": "..."}
Handler->>Config: transform_audio_transcription_response(raw_response)
Config-->>Handler: TranscriptionResponse(text="...")
Handler-->>User: TranscriptionResponse
Last reviewed commit: 354f44c
str(True) produces "True" but Mistral API expects lowercase "true". Use str(value).lower() for bool params in provider-specific fields.
Chesars
merged commit Mar 4, 2026
424c433
into
BerriAI:litellm_oss_staging_03_04_2026
31 of 38 checks passed
7 tasks
fzowl
pushed a commit
to fzowl/litellm
that referenced
this pull request
Jun 24, 2026
…scription feat(mistral): add Voxtral audio transcription support
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.
Relevant issues
Addresses discussion #12952
Closes #23272
Pre-Submission checklist
tests/test_litellm/directory, Adding at least 1 test is a hard requirementmake test-unit@greptileaiand received a Confidence Score of at least 4/5 before requesting a maintainer reviewType
🆕 New Feature
Changes
Adds Mistral Voxtral audio transcription support via
litellm.transcription().litellm/llms/mistral/audio_transcription/transformation.py—MistralAudioTranscriptionConfigimplementing multipart form-data requests toPOST https://api.mistral.ai/v1/audio/transcriptionslitellm/utils.py— Register Mistral inProviderConfigManager.get_provider_audio_transcription_config()litellm/litellm_core_utils/get_supported_openai_params.py— Add transcription request_type for mistral providerdiarize)audio_transcription.mdand added Audio Transcription section toproviders/mistral.mdUsage
Supports OpenAI-compatible params (
language,temperature,response_format,timestamp_granularities) plus Mistral-specific params likediarize.