Amazon: Amazon Transcribe
Amazon Transcribe's standard batch speech-to-text across 113 locales: StartTranscriptionJob reads the media from an S3 object, the job is polled to completion and the transcript JSON is fetched from a presigned URL, always carrying word-level timestamps and confidences.
Providers
Different providers can host the same model. Choose one provider when you need a fixed backend, or let routing select among them.
Supported languages
ab-GE
af-ZA
sq-AL
am-ET
ar-AE
ar-SA
hy-AM
ast-ES
az-AZ
ba-RU
eu-ES
be-BY
bn-IN
bs-BA
my-MM
bg-BG
ca-ES
ckb-IR
ckb-IQ
zh-HK
zh-CN
zh-TW
hr-HR
cs-CZ
da-DK
nl-NL
en-AU
en-GB
en-IN
en-IE
en-NZ
en-AB
en-ZA
en-US
en-WL
et-EE
et-ET
fa-IR
fa-AF
fi-FI
fr-FR
fr-CA
gl-ES
ka-GE
de-DE
de-CH
el-GR
gu-IN
ht-HT
ha-NG
he-IL
hi-IN
hu-HU
is-IS
id-ID
it-IT
ja-JP
jv-ID
kab-DZ
kn-IN
kk-KZ
km-KH
rw-RW
ko-KR
ky-KG
lv-LV
lt-LT
lg-IN
mk-MK
ms-MY
ml-IN
mt-MT
mr-IN
mhr-RU
mn-MN
ne-NP
no-NO
or-IN
ps-AF
pl-PL
pt-PT
pt-BR
pa-IN
ro-RO
ru-RU
sr-RS
si-LK
sk-SK
sl-SI
so-SO
es-ES
es-MX
es-US
su-ID
sw-KE
sw-BI
sw-RW
sw-TZ
sw-UG
sv-SE
tl-PH
ta-IN
tt-RU
te-IN
th-TH
tr-TR
uk-UA
ug-CN
uz-UZ
vi-VN
cy-WL
wo-SN
zu-ZA
mi-NZ
Features
Transcribes a complete media file to text through an asynchronous transcription job.
speech_to_text
StartTranscriptionJob reads the media from an S3 object and returns a job the caller polls until it completes, then fetches the transcript JSON from a presigned Transcript.TranscriptFileUri.
batch
Served synchronously through the router, which runs the whole upload-submit-poll-fetch flow inside one blocking request even though the upstream shape is asynchronous.
synchronous
Always present with no flag: results.items[] carries start_time and end_time per pronunciation item, and results.audio_segments[] groups them into sentences.
word_timestamps
Every item carries alternatives[0].confidence as a decimal string between 0 and 1.
word_confidence
Settings.ShowSpeakerLabels with Settings.MaxSpeakerLabels (2-30, required together) partitions speakers as spk_0..spk_29 and is included in the base price.
speaker_diarization
IdentifyLanguage or IdentifyMultipleLanguages replaces LanguageCode, optionally narrowed by LanguageOptions, and is included in the base price.
language_detection
113 documented batch locales.
multilingual_transcription
MediaFormat and MediaSampleRateHertz are optional and detected from the object's content rather than from its key.
media_format_detection
Upstream only: Settings.ChannelIdentification transcribes each of up to two channels separately, which this platform does not expose.
channel_identification
Upstream only: Settings.VocabularyName references a vocabulary stored on the account, and there is no per-request word list for the router's prompt input to map onto.
custom_vocabulary
Upstream only: Settings.VocabularyFilterName applies a stored filter and is not exposed.
vocabulary_filtering
Upstream only: ContentRedaction covers 17 locales, is separately priced and is not exposed.
pii_redaction
Upstream only: ModelSettings.LanguageModelName selects an account-trained custom language model at an additional charge and is not exposed.
custom_language_models
Upstream only: Settings.ShowAlternatives with MaxAlternatives (2-10) is not exposed.
alternative_transcriptions
Upstream only: Subtitles.Formats writes .srt and .vtt files next to the transcript, while the router renders them itself from the word timestamps.
subtitles
Upstream only: toxicity detection is en-US, separately priced and not exposed.
toxicity_detection
Code
ElevenLabs SDK streaming STT
Streams microphone or file audio through the ElevenLabs-compatible allmodels route.
import { ElevenLabsClient } from "elevenlabs";
const client = new ElevenLabsClient({
apiKey: process.env.ALLMODELS_API_KEY,
baseUrl: "https://api.allmodels.io/el"
});
const connection = await client.speechToText.realtime.connect({
modelId: "amazon/amazon-transcribe",
languageCode: "en"
}, {
queryParams: {
provider: {
"only": [
"amazon"
]
}
}
});
// Send audio frames to connection, then handle transcript events.
