AWS Transcribe
How to set up AWS Transcribe with Recall.ai
Setup
To use AWS transcribe, you must create a new user in your AWS account with a secret key/access key. Once you have those credentials, add them in the transcription section of the Explorer Dashboard:
Next follow the guides below to add an IAM policy to allow AWS Transcribe access to the newly created user.
The IAM policies for realtime and async transcription are different! Make sure you use the right one!
Realtime Transcription
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"
}
}
}
}
}Async Transcription
Policies
For a minimal config, ensure that you have the transcribe:GetTranscriptionJob, transcribe:StartTranscriptionJob and s3:GetObject on external buckets is allowed.
Unlike realtime transcription,
AmazonTranscribeFullAccessdoes not provide enough access. You will additionally need at leastAmazonS3ReadOnlyAccess, but we do not recommend this approach as it provides too much access to your account's buckets.
Below is a minimal policy to have this working:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "TranscribeServiceAccess",
"Effect": "Allow",
"Action": [
"transcribe:GetTranscriptionJob",
"transcribe:StartTranscriptionJob"
],
"Resource": "*"
},
{
"Sid": "S3AccessForTranscribe",
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "*",
"Condition": {
"StringNotEquals": {
"s3:ResourceAccount": "YOUR_AWS_ACCOUNT_ID"
}
}
}
]
}Replace YOUR_AWS_ACCOUNT_ID with the output of aws sts get-caller-identity --query Account --output text.
Example Request
To successfully make a request using AWS Transcribe, you must specify either:
language_code(e.g en-US) OR- Set
identify_languageto true
Here's an example request:
curl --request POST \
--url https://us-west-2.recall.ai/api/v1/recording/{RECORDING_ID}/create_transcript/ \
--header "Authorization: $RECALLAI_API_KEY" \
--header "accept: application/json" \
--header "content-type: application/json" \
--data '{
"provider": {
"aws_transcribe_async": {
"identify_language": true
}
}
}'Updated about 4 hours ago