Multilingual Transcription: Transcribing Conversations Spoken in Multiple Languages
Configure multilingual transcription (code-switching and language detection) conversations so Recall can transcribe meetings accurately when speakers switch languages.
Overview
In some meetings, participants may speak in more than one language during the same conversation, and you may not know ahead of time which language or languages will be used. In those cases, you can enable multilingual transcription. This generally falls into two categories:
- Language detection: identifies the primary spoken language in a recording without requiring you to set it explicitly.
- Code-switching: handles conversations where speakers switch between two or more languages within the same meeting or utterance.
Multilingual transcription does not natively support translations
In order to get translated transcripts in a specific language, you will need to use a translation feature from the third party transcription provider
Requirements
To get started with using any of the Third-Party Transcription Providers, a human needs to sign up for an account from the third party transcription provider's app, get an API key, and add it to the Recall transcription dashboard.
View the Transcription Dashboard
Multilingual transcription for async transcription
The table below shows the provider-specific parameters you can add to a Create Async Transcript request to enable async multilingual transcription.
Provider | Supported Languages | Language Detection | Code Switching | Notes |
|---|---|---|---|---|
| Docs | ✅ Supported | ✅ Supported | |
| Docs | ✅ Supported | ✅ Supported | |
| Docs | ✅ Supported | ✅ Supported | |
| Docs | ✅ Supported | ✅ Supported | |
| Docs | ✅ Supported | ✅ Supported | |
| Docs | ✅ Supported | 🚧 Limited language options | Code switching is only supported for specific language pairs, must be specified ahead of time (docs) Can only use either language detection or code switching. |
Async transcription multilingual configs
This guide only outlines how to configure a transcription provider to use multilingual transcriptionFor details on how to implement async transcription (which goes beyond the configs listed in this doc), see the Async Transcription guide.
Multilingual configs for async transcription using Recall.ai Transcription
Below is an example of how to configure multilingual transcription with Recall.ai Transcription using the Create Async Transcript endpoint:
{
// ... other Create Async Transcript request configs
"provider": {
"recallai_async": {
"language_code": "auto"
}
}
}Multilingual configs for async transcription using ElevenLabs
Below is an example of how to configure multilingual transcription with ElevenLabs using the Create Async Transcript endpoint:
{
// ... other Create Async Transcript request configs
"provider": {
"elevenlabs_async": {
"model_id": "scribe_v2"
// If `language_code` is unset, the model will detect the language automatically
}
}
}Multilingual configs for async transcription using Deepgram
Below is an example of how to configure multilingual transcription with Deepgram using the Create Async Transcript endpoint:
{
// ... other Create Async Transcript request configs
"provider": {
"deepgram_async": {
"model": "nova-3",
"language": "multi"
}
}
}Multilingual configs for async transcription using Assembly AI
Below is an example of how to configure multilingual transcription with Assembly AI using the Create Async Transcript endpoint:
{
// ... other Create Async Transcript request configs
"provider": {
"assembly_ai_async": {
speech_models: ["universal-2"],
language_detection: true,
language_detection_options: {
code_switching: true,
},
}
}
}Multilingual configs for async transcription using AWS Transcribe
Below is an example of how to configure multilingual transcription with AWS Transcribe using the Create Async Transcript endpoint:
{
// ... other Create Async Transcript request configs
"provider": {
"aws_transcribe_async": {
"identify_language": true
}
}
}Multilingual configs for async transcription using Speechmatics
Below is an example of how to configure multilingual transcription with Speechmatics using the Create Async Transcript endpoint:
{
// ... other Create Async Transcript request configs
"provider": {
"speechmatics_async": {
"language": "cmn_en" // Set language to a specific pair for code switching or to "auto" for language detection
}
}
}Multilingual transcription for real-time transcription
This guide only outlines how to configure a transcription provider to use multilingual transcriptionFor details on how to implement real-time transcription (which goes beyond the configs listed in this doc), see the following guides:
The table below shows which transcription provider configurations support language detection and code-switching, along with the provider-specific fields used to enable them.
Provider | Supported languages | Language detection | Code-switching | Notes |
|---|---|---|---|---|
| Docs | ✅ Supported when | ✅ Supported when |
|
| ✅ Supported | ✅ Supported | ||
| Docs | ✅ Supported | ✅ Supported | |
| Docs | 🚧 Provide language options | ✅ Provide language options | You must provide a list of possible languages ahead of time (docs) |
| Docs | ❌ Not supported | ❌ Not supported | |
| Docs | 🚧 Limited language options | 🚧 Limited language options | See docs for supported languages (docs) |
| Docs | ✅ Supported | ✅ Supported | Sends transcripts every 3-10 minutes for |
These provider configurations are set in the recording_config.transcript.provider object when creating a meeting bot or Desktop SDK upload.
Real-time transcription multilingual configs
Multilingual configs for real-time transcription using Recall.ai Transcription
Important: Using Recall.ai transcription for real-time transcriptionFor
recallai_streaming, multilingual transcription currently requiresmode: "prioritize_accuracy"withlanguage_code: "auto".
mode: "prioritize_accuracy"sendstranscript.dataandtranscript.partial_dataevents every 3 to 10 minutes.mode: "prioritize_low_latency"currently supports English only.
Below is an example of how to configure multilingual transcription with Recall.ai Transcription using either the Create Bot or Create Desktop SDK Uploadendpoints:
{
// ... other request configs
"recording_config": {
// ... other recording configs
"transcript": {
// ... other transcript configs
"provider": {
"recallai_streaming": {
"mode": "prioritize_accuracy",
"language_code": "auto"
}
}
}
}
}Multilingual configs for real-time transcription using ElevenLabs
Below is an example of how to configure multilingual transcription with ElevenLabs using either the Create Bot or Create Desktop SDK Uploadendpoints:
{
// ... other request configs
"recording_config": {
// ... other recording configs
"transcript": {
// ... other transcript configs
"provider": {
"elevenlabs_streaming": {
"model_id": "scribe_v2_realtime"
// If `language_code` is unset, the model will detect the language automatically
}
}
}
}
}Multilingual configs for real-time transcription using Deepgram
Below is an example of how to configure multilingual transcription with Deepgram using either the Create Bot or Create Desktop SDK Uploadendpoints:
{
// ... other request configs
"recording_config": {
// ... other recording configs
"transcript": {
// ... other transcript configs
"provider": {
"deepgram_streaming": {
"model": "nova-3",
"language": "multi"
}
}
}
}
}Multilingual configs for real-time transcription using AWS Transcribe
Below is an example of how to configure multilingual transcription with AWS Transcribe using either the Create Bot or Create Desktop SDK Uploadendpoints:
{
// ... other request configs
"recording_config": {
// ... other recording configs
"transcript": {
// ... other transcript configs
"provider": {
"aws_transcribe_streaming": {
"language_identification": true,
"language_options": ["en-US", "es-US"],
"preferred_language": "en-US"
}
}
}
}
}
Multilingual configs for real-time transcription using Assembly AI streaming
Important: Using Assembly AI Streaming for real-time transcriptionAssembly AI's
universal-streaming-multilingualmodel has limited language support at this time.
Below is an example of how to configure multilingual transcription with Assembly AI streaming using either the Create Bot or Create Desktop SDK Uploadendpoints:
{
// ... other request configs
"recording_config": {
// ... other recording configs
"transcript": {
// ... other transcript configs
"provider": {
"assembly_ai_streaming": {
"speech_model": "universal-streaming-multilingual",
"language_detection": true
}
}
}
}
}
Multilingual configs for real-time transcription using Assembly AI Async Chunked
Important: Using Assembly AI Async Chunked for real-time transcriptionFor
assembly_ai_async_chunked, the bot will send thetranscript.dataandtranscript.partial_dataevents every 3 to 10 minutes.
Below is an example of how to configure multilingual transcription with Assembly AI async chunked using either the Create Bot or Create Desktop SDK Uploadendpoints:
{
// ... other request configs
"recording_config": {
// ... other recording configs
"transcript": {
// ... other transcript configs
"provider": {
"assembly_ai_async_chunked": {
speech_models: ["universal-2"],
language_detection: true,
language_detection_options: {
code_switching: true
}
}
}
}
}
}
FAQ
Why is my recording transcribed in the wrong language?
If your transcript is coming back in the wrong language, it’s usually due to one of the following:
- The transcription language was set incorrectly - Check your transcription configuration and confirm the language code/setting matches the language spoken in the recording.
- The audio quality made language detection unreliable - Background noise, echo, low volume, overlapping speakers, or audio coming from a mobile-device can cause the model to misidentify the language.
- Speech characteristics reduced language recognition accuracy - Very heavy accents, unclear speech, or fast/colloquial speech can increase the chance of the model selecting the wrong language.
- Your transcription provider may have weaker support for that language - Some providers perform better in certain languages so you should see their documentation for which languages are supported.
If the configuration and audio quality look correct, you can try using a different transcription provider. Transcription quality differs between providers and use cases so it's best to test a few to find one that works best for you!
What languages are supported by each provider?
Transcription providers are constantly updating and adding support for more languages, so the most reliable source of information is their own documentation.
Updated 6 days ago