Third-Party Transcription
Use one of Recall's AI transcription partners to generate meeting transcripts
In addition to Recall's own transcription, Recall also integrates with several AI transcription partners as a solution for producing transcripts, as well as meeting intelligence such as summarization and sentiment analysis.
There are two options for transcription when using one of our AI transcription partners:
- Real-time transcription : Transcript is generated in real-time.
- Async Transcription: Transcript is generated after the call has completed.
Both methods have pros and cons, and which you choose will ultimately depend on your use case.
If you don't have a need for receiving transcripts in real-time, we recommend starting with asynchronous transcription, as it's generally more accurate and cost effective.
Support Matrix
| Transcription Provider | Async Transcription (all) | Realtime Transcription (Bots) | Realtime Transcription (Desktop SDK) |
|---|---|---|---|
| Assembly AI | ✅ | ✅ | ✅ |
| Deepgram | ✅ | ✅ | ✅ |
| Gladia | ✅ | ✅ | ✅ |
| AWS Transcribe | ❌ | ✅ | ❌ |
| Rev | ✅ | ✅ | ❌ |
| Speechmatics | ✅ | ✅ | ❌ |
Important: Concurrency considerationsWhen going to production, make sure that your account with your 3rd party transcription provider is configured with high enough concurrency limit to support your anticipated load.
Certain transcription providers require that you reach out to increase your concurrency limit, and we highly recommend checking this prior to running production workloads.
Third-Party Transcription Providers
To use a given transcription provider, you can add an API key for the provider in the Recall dashboard using their corresponding dashboard link.
| Provider | Provider Information | Regions |
|---|---|---|
| Assembly AI | AssemblyAI Pricing | api.assemblyai.com |
| AWS Transcribe | AWS Transcribe Pricing | Any supported AWS region |
| Deepgram | Deepgram Pricing | Hosted or self-hosted (docs) |
| Rev | Rev Pricing | api.rev.ai |
| Speechmatics | Speechmatics Pricing | eu2.rt.speechmatics.com |
Once your credentials are set, you're ready to create your first Real-Time or Async transcript.
AWS Transcribe
Policies
We typically recommend developers add the default AmazonTranscribeFullAccess policy to your AWS IAM User. For a minimal config, ensure that you have the transcribe:StartStreamTranscription and transcribe:StartStreamTranscriptionWebSocket actions allowed
Below is a minimal policy to have this working
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowRealtimeStreaming", // Name here is arbitrary
"Effect": "Allow",
"Action": [
"transcribe:StartStreamTranscription",
"transcribe:StartStreamTranscriptionWebSocket"
],
"Resource": "*"
}
]
}
Example Request
To successfully make a request using AWS Transcribe, you must specify either:
language_code(e.g en-US) OR- Set
language_identificationto true AND specifylanguage_options(e.g en-US, fr-FR, es-US, de-DE, it-IT).
Here's an example request body:
{
"recording_config": {
"transcript": {
"provider": {
"aws_transcribe_streaming": {
"language_code": "en-US"
}
}
}
}
}
How to get custom fields from your transcription provider
Raw transcription provider data is not exposed when using Perfect Diarization
Real-time
If you want to extract a specific field from your transcription provider that is not exposed through real-time transcription events, then you can listen for the raw provider transcription events by adding the transcript.provider_data event to your realtime_endpoints config:
{
// ... other create bot configs
"recording_config": {
// ... other recording config fields
"realtime_endpoints": [
{
"type": "websocket" | "webhook",
"events": [
"transcript.provider_data" // <--- this event!
],
"url": "YOUR_WEBHOOK_OR_WEBSOCKET_URL"
}
]
}
}
The response format varies by provider.
Async
If you want to extract a specific field from your transcription provider that is not exposed through the transcript generated by Recall then you can fetch the raw provider transcription response by:
- Fetching the recording via the Retrieve Recording endpoint
- Querying the
recording.media_shortcuts.transcript.data.provider_data_download_url
The response format varies by provider.
FAQ
Unable to get temporary credentials for assembly_ai_streaming or assembly_ai_v3_streaming
assembly_ai_streaming or assembly_ai_v3_streamingA few issues could be causing this:
- You are trying to use a deprecated model
assembly_ai_streaming- Assembly AI has restricted access to their deprecated model so new users will not be able to access it. Instead, use theassembly_ai_v3_streaming - You are trying to use
assembly_ai_v3_streamingin the EU - Assembly AI's Streaming STT model isn't supported in the EU at this time so you will need to switch to a different model supported in the EU or use a different transcription provider
Which transcription providers process data in the EU?
This is different from provider to provder:
- Assembly - currently only available for async transcription and LeMUR
- Deepgram - currently in early access beta
Please reach out to [email protected] to get access to these regions
How can I use a transcription provider that isn't supported by Recall?
If preferred, you can also bring your own transcription provider and transcribe the audio for a meeting. You can do this by:
- Getting the audio per participant from the meeting (async guide and real-time guide)
- Passing the audio to your AI transcription provider or run it through your own model
How to opt out of using my data in training third-party AI models?
By default, Recall does not use your data to train any third party AI model. That said, you will need to explictly opt out of training third-party transcription models programs. Below is how you can do this for each of our supported third-party transcription provider:
- Deepgram: pass the
mip_opt_out: truefield in the deepgram real-time or async transcription configs (docs)
Updated 4 days ago