Google Gemini: Gemini 3.5 Transcribe
Google's dedicated speech-to-text model (launched 2026-08-26): pre-recorded audio transcription via the Interactions API with 85+ auto-detected languages, speaker diarization (up to 8 speakers), word-level timestamps, custom vocabulary, and verbatim or smart (disfluency-cleaned, formatted) transcripts.
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
af-ZA
am-ET
ar-EG
hy-AM
as-IN
az-AZ
be-BY
bn-BD
bn-IN
bs-BA
bg-BG
rup-BG
my-MM
ca-ES
ceb
km-KH
hr-HR
cs-CZ
da-DK
nl-NL
en-GB
en-IN
en-US
et-EE
fa-IR
fil-PH
fi-FI
fr-FR
gl-ES
ka-GE
de-DE
el-GR
gu-IN
ha-NG
he-IL
hi-IN
hu-HU
is-IS
id-ID
it-IT
ja-JP
jv-ID
kea-CV
kn-IN
kk-KZ
ko-KR
ky-KG
lv-LV
ln-CD
lt-LT
mk-MK
ms-MY
ml-IN
mt-MT
cmn-Hans-CN
mr-IN
mn-MN
ne-NP
nb-NO
or-IN
pl-PL
pt-BR
pt-PT
pa-IN
pa-Guru-IN
ro-RO
ru-RU
sr-RS
sd-Arab-IN
sk-SK
sl-SI
es-419
es-US
sw-KE
sv-SE
tg-TJ
te-IN
th-TH
tr-TR
uk-UA
uz-UZ
vi-VN
yue-Hant-HK
Features
Transcribes pre-recorded audio files to text via the Interactions API.
speech_to_text
Transcribes fully-uploaded audio in a single blocking Interactions API request (audio up to 1 hour; 30 minutes when diarization or word timestamps are enabled).
synchronous
Automatically detects and transcribes 85+ languages, including code-switching; language_codes can pin BCP-47 locales.
multilingual_transcription
timestamp_granularities ["word"] returns start/end offsets per word (caps audio at 30 minutes; incompatible with smart mode).
word_timestamps
diarization_mode "speaker" tags segments for up to 8 speakers (caps audio at 30 minutes; incompatible with smart mode).
diarization
Biases recognition toward up to 1,000 supplied phrases (best results with up to 100).
custom_vocabulary
Optional smart mode removes disfluencies, applies self-corrections and structured formatting/inverse text normalization (default is verbatim).
smart_transcription
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: "gemini/gemini-3-5-transcribe",
languageCode: "en"
}, {
queryParams: {
provider: {
"only": [
"gemini"
]
}
}
});
// Send audio frames to connection, then handle transcript events.
