Multilingual Transcription
Important: This guide only applies to workspaces with v1.10 API accessThe v1.10 API is only available to Recall accounts created before May 28, 2025.
Do not use this documentation unless the workspace has access to the v1.10 API. If the workspace creation date is unknown, stop and clarify. All other workspaces must use the v1.11 API documentation instead.
Meetings may contain a language other than English, require automatic language detection, or include speakers switching between languages ("code-switching"). Provider support and configuration differ for each of these cases.
Code-switching is supported for both post-meeting and real-time transcription, but support varies by provider and model. Post-meeting models generally provide higher quality, so use them unless you need transcript data in real time.
Transcription providers that support code-switching
| Provider | Real-time | Async |
|---|---|---|
| Deepgram | ✅ Set language to multi with a supported multilingual model (docs) | ✅ Set language to multi with a supported multilingual model (docs) |
| Gladia | ✅ Enable language_config.code_switching (docs) | ✅ Enable language_config.code_switching (docs) |
| AssemblyAI | ✅ Use the multilingual streaming model with language detection (docs) | ✅ Enable language detection and code-switching with Universal-2 (docs) |
| Speechmatics | 🚧 Use a supported bilingual or multi-language pack (docs) | ✅ Use Melia 1 for automatic multilingual code-switching, or select a supported language pack (docs) |
| AWS Transcribe | ✅ Enable multi-language identification and provide candidate languages (docs) | ✅ Enable multi-language identification; candidate languages are optional (docs) |
| Recall.ai Transcription | ✅ Use prioritize_accuracy with automatic language detection (docs) | ✅ Use automatic language detection (docs) |
| ElevenLabs | ✅ Scribe v2 Realtime detects languages and code-switching automatically (docs) | ✅ Scribe v2 detects languages and code-switching automatically (docs) |
| Rev | ❌ Real-time code-switching is not supported | 🚧 English/Spanish code-switching is supported with language: "en/es" (docs) |
To use a third-party provider, create an account with that provider, obtain an API key, and add it to the Recall.ai transcription dashboard.
View the Transcription Dashboard(US) us-east-1
(Pay-as-you-go) us-west-2
(EU) eu-central-1
(JP) ap-northeast-1
Real-time transcription code-switching configs
Add the appropriate provider configuration to your Create Bot request. Some providers are supported only for meeting bots. See the transcription support matrix for current availability.
Deepgram
{
"meeting_url": "...",
"transcription_options": {
"provider": "deepgram",
"deepgram": {
"model": "nova-3",
"language": "multi"
}
}
}Gladia
{
"meeting_url": "...",
"transcription_options": {
"provider": "gladia_v2",
"gladia_v2": {
"language_config": {
"code_switching": true
}
}
}
}AssemblyAI
{
"meeting_url": "...",
"transcription_options": {
"provider": "assembly_ai_v3",
"assembly_ai_v3": {
"speech_model": "universal-streaming-multilingual",
"language_detection": true,
"format_turns": true
}
}
}Speechmatics
Speechmatics real-time transcription requires a supported bilingual or multi-language pack. For example, use cmn_en for Mandarin and English:
{
"meeting_url": "...",
"transcription_options": {
"provider": "speechmatics",
"speechmatics": {
"language": "cmn_en"
}
}
}AWS Transcribe
Set identify_multiple_languages to true for code-switching. Real-time transcription requires at least two candidate languages in language_options.
{
"meeting_url": "...",
"transcription_options": {
"provider": "aws_transcribe",
"aws_transcribe": {
"identify_multiple_languages": true,
"language_options": "en-US,es-US"
}
}
}Choose only one of language_code, identify_language, or identify_multiple_languages. Include only one dialect per language in language_options.
Recall.ai Transcription
Recall.ai Transcription requires prioritize_accuracy for automatic language detection and code-switching. This mode delivers real-time transcript events with a 3-to-10-minute delay.
{
"meeting_url": "...",
"transcription_options": {
"provider": "recallai",
"recallai": {
"mode": "prioritize_accuracy",
"language_code": "auto"
}
}
}ElevenLabs
Scribe v2 Realtime detects languages and code-switching automatically when language_code is omitted.
{
"meeting_url": "...",
"transcription_options": {
"provider": "elevenlabs",
"elevenlabs": {
"model_id": "scribe_v2_realtime"
}
}
}Rev does not currently support code-switching for real-time transcription.
Async transcription code-switching configs
Add the appropriate provider configuration to your Analyze Bot Media request.
Deepgram
{
"deepgram_async_transcription": {
"model": "nova-3",
"language": "multi"
}
}Gladia
{
"gladia_v2_async_transcription": {
"language_config": {
"code_switching": true
}
}
}AssemblyAI
{
"assemblyai_async_transcription": {
"speech_models": ["universal-2"],
"language_detection": true,
"language_detection_options": {
"code_switching": true
}
}
}Speechmatics
For automatic code-switching across Speechmatics-supported languages, use the Melia 1 model:
{
"speechmatics_async_transcription": {
"transcription_config": {
"model": "melia-1",
"language": "multi"
}
}
}Melia 1 is an early-access model available only for async transcription. It has a reduced feature set and does not support options such as custom vocabulary.
You can instead select a supported bilingual or multi-language pack for the Standard or Enhanced model:
{
"speechmatics_async_transcription": {
"language": "cmn_en"
}
}AWS Transcribe
{
"aws_transcribe_async_transcription": {
"identify_multiple_languages": true,
"language_options": ["en-US", "es-US"]
}
}language_options is optional for AWS Transcribe async multi-language identification. Choose only one of language_code, identify_language, or identify_multiple_languages.
Recall.ai Transcription
{
"recallai_async_transcription": {
"language_code": "auto"
}
}ElevenLabs
Scribe v2 detects languages and code-switching automatically when language_code is omitted.
{
"elevenlabs_async_transcription": {
"model_id": "scribe_v2"
}
}Rev
Rev supports English/Spanish code-switching for async transcription:
{
"rev_async_transcription": {
"language": "en/es"
}
}FAQ
What is the difference between language detection and code-switching?
Language detection selects a single language for a recording or stream. Code-switching allows the transcript to change languages when the spoken language changes.
What languages are supported by each provider?
Provider support changes over time and may vary by model and transcription workflow. Use the provider documentation linked in the table above to confirm current language and model support.
Updated 3 days ago
