Quick answer: Of the nine speech-to-text APIs we scored as at 16 October 2026, three say in their own docs that one request can follow a speaker who switches language mid-sentence: Deepgram (10 languages), AssemblyAI (18 batch, 32 streaming) and Speechmatics Melia 1 (56). Microsoft’s MAI-Transcribe-2 (60 languages) says so for blended pairs such as Hinglish and Spanglish, ElevenLabs for Indic–English. AWS, Gladia and OpenAI switch at a coarser or unstated grain; Google Chirp 3 picks the dominant language.
“What’s the best speech-to-text model for transcribing multiple languages in one API call?” hides three jobs: naming the one language in a file, following speakers who take turns in different languages, and following one speaker who mixes languages inside a sentence (Spanglish, Hinglish, Singlish, Taglish). This page scores nine APIs on those jobs from their own documentation as at 16 October 2026: Deepgram, AssemblyAI, OpenAI, Google Cloud, Microsoft Azure, Speechmatics, ElevenLabs, Amazon Transcribe (AWS) and Gladia. It covers transcription only; for whole voice agent stacks, see our comparison of voice agent APIs for multilingual support.
What “multiple languages in one API call” actually means
A vendor’s headline language count is usually the list you can transcribe one at a time, with the language named in the request. What matters here is what happens when you do not name it, or there is more than one. There are three modes:
- Mode 1, file-level language identification. The API decides which single language the file or stream is in and transcribes all of it in that language. Deepgram’s
detect_language, Google’s Chirp 3autoand Speechmatics’autowork this way. AWS is plain about the cost: with single-language identification, “any spoken language that is not the dominant language is transcribed incorrectly.” - Mode 2, language switching inside one file. Each part of one request is transcribed in its own language and labelled by segment, utterance or phrase. AWS multi-language identification, Azure continuous language identification and Gladia code switching work this way.
- Mode 3, mid-sentence code-switching. The API follows one speaker across languages inside a sentence, labelling the language word by word or keeping each word in its own script.
a language count tells you what an API can transcribe one language at a time; only a code-switching statement on the vendor’s own page tells you what it does with two languages in one sentence.
The code-switching capability matrix (as at 16 October 2026)
Inclusion rule, applied identically to every row. Each vendor is scored on its best multilingual transcription mode, using only that vendor’s own documentation, blog, pricing page or official price API, all read on 16 October 2026. “Mixed languages in one request” is marked yes only where the vendor’s own page says one request transcribes more than one language without you splitting the audio. “Mid-sentence” is marked yes only where the vendor’s own page says mid-sentence or mid-utterance, or its own documented example labels words of two languages inside one sentence; where that statement is limited to named language pairs, the cell says so and names them. “Mid-conversation” or “between turns” does not count. Preview features and promotional prices are labelled. Prices are pay-as-you-go list rates for the lowest volume tier, converted to hourly (minutes × 60, seconds × 3,600), in US dollars (Gladia in euros; AWS and Azure for US East).
| API and model | Streaming / batch | File-level auto-detect | Mixed languages in one request | Mid-sentence switching | Languages per multilingual request | Language list size | List price per hour |
|---|---|---|---|---|---|---|---|
Deepgram Nova-3 (language=multi) and Flux Multilingual |
Both (Flux is streaming) | Yes, detect_language, pre-recorded only, 35 languages, dominant language |
Yes | Yes: Flux page says “mid-sentence”; Nova-3 example labels each word | Fixed set of 10 (English, Spanish, French, German, Hindi, Russian, Portuguese, Japanese, Italian, Dutch) | 63 Nova-3 entries; 10 in multi | Nova-3 Multilingual: $0.312 batch; $0.348 streaming (promotional, regular $0.552); Flux Multilingual $0.468 |
| AssemblyAI Universal-3.5 Pro (batch) and Universal-3.6 Pro (streaming) | Both | Yes, dominant language, routes to a model | Yes | Yes: “shift mid-sentence” | 18 batch (narrow with language_codes, any number); 32 streaming; Universal-2: 2, one must be English |
99 with Universal-2 fallback | Universal-3.5 Pro $0.21 batch; Universal-3.6 Pro $0.45 streaming; Universal-2 $0.15 batch and Universal-Streaming Multilingual $0.15 (6 languages, per turn) |
OpenAI gpt-transcribe and gpt-live-transcribe |
Both | Yes, gpt-transcribe returns detected languages; gpt-live-transcribe does not |
Yes: model page names “multilingual audio, and code-switching” | Not stated on the pages we read | A languages hint list; no maximum stated |
Whisper: 98; no count given for gpt-transcribe |
$0.27 batch; $1.02 live (OpenAI’s estimated per-minute cost) |
| Google Cloud Speech-to-Text V2, Chirp 3 | Both | Yes, auto, “dominant language” |
No: Chirp 3 picks the dominant language; separate multi-language recognition (Preview, up to 3 languages, long, short and telephony models) picks one best-fit language | No code-switching statement found | 3 (multi-language recognition) | 111 Chirp 3 locale rows (29 GA, 82 Preview) | $0.96 standard recognition; $0.18 dynamic batch |
| Microsoft Azure Speech: MAI-Transcribe-2 (fast transcription enhanced mode), continuous language identification, fast transcription multilingual model | Both: MAI-Transcribe-2 runs on files through fast transcription and as Voice Live input transcription; continuous identification is real-time | Yes: MAI-Transcribe-2 detects the language unless you force one; at-start identification, up to 4 candidates | Yes: MAI-Transcribe-2 is multilingual by default; continuous identification, up to 10 candidates; fast transcription multilingual model, 15 locales | Yes for named pairs on MAI-Transcribe-2: “commonly blended language pairs such as Hinglish and Spanglish”, mid-utterance. No for continuous identification (“doesn’t support changing languages within the same sentence”) | MAI-Transcribe-2: all 60, no selection needed; 4 at-start; 10 continuous; 15 locales in the multilingual model | 60 for MAI-Transcribe-2; 148 speech-to-text locales; 79 identification languages | MAI-Transcribe-2 $0.10 (promotional, until 31 December 2026); fast transcription $0.36; batch $0.18; real-time $1.00 plus $0.30 per add-on feature such as continuous identification |
| Speechmatics Melia 1 and bilingual packs | Both (Melia 1 real-time is an early preview) | Yes, auto, batch only, predominant language |
Yes | Yes: Melia 1 “switches language mid-sentence” | Melia 1: all 56, no selection needed (language hints optional); packs: 2 (one pack covers 4) | Melia 1: 56; 55 single languages and 7 packs on Enhanced and Standard | Melia 1: $0.24 batch; $0.40 real-time (base rates) |
| ElevenLabs Scribe v2 and Scribe v2 Realtime | Both | Yes, language predicted when language_code is null |
Yes: “audio that contains multiple languages in a single file” (ElevenLabs blog) | Indic–English only (ElevenLabs blog, April 2026) | Realtime: language_code plus secondary_languages; no maximum stated |
90+ (100 named) | $0.22 batch; $0.39 real-time |
| Amazon Transcribe multi-language identification | Both | Yes, single-language identification | Yes | Not stated: AWS says “mid-conversation” | Batch: no limit, 2 to 5 recommended; streaming: 2 or more, more than 5 not recommended, one dialect per language | 113 language rows; 36 codes (23 languages) for multi-language identification | $0.36 batch; $0.60 streaming |
| Gladia Solaria-1 | Both | Yes | Yes, code_switching: true |
No: Gladia defines code switching as “between turns”, detected per utterance | An expected-language list; Gladia advises a small set | 100 rows; 99 with auto-discovery and code-switch | €0.27 batch; from €0.68 real-time |
Counted across the nine rows: all nine offer some form of automatic language detection, and eight can return more than one language from one request; Google’s multi-language recognition picks one best-fit language from up to three. Three (Deepgram, AssemblyAI and Speechmatics) state mid-sentence switching as a general capability. Two state it for named pairs only: Azure’s MAI-Transcribe-2 for “commonly blended language pairs such as Hinglish and Spanglish”, and ElevenLabs for Indic–English. Two say their multilingual mode works at a coarser grain: Gladia (per utterance) and Google Chirp 3 (dominant language). OpenAI and AWS do not say at what grain they switch (AWS says “mid-conversation”). We print no accuracy figures: each vendor’s word error rate comes from its own test set.
Which API qualifies for your use case: the threshold table
Find your row; shortlist only the third column.
| Your audio | Mode you need | APIs that qualify on their own docs | Do not do this |
|---|---|---|---|
| Each recording is in one language, but you do not know which (call recordings from several countries) | Mode 1, file-level identification | All nine. Deepgram’s is batch only and lists 35 languages; Speechmatics’ is batch only and wants 60 seconds of speech; AssemblyAI wants 15 to 90 seconds; AWS wants 30 seconds for batch, 1 second for streaming | Turn on code-switching “just in case”; where you already know the language, pin it (Deepgram’s Flux page calls a single language hint “best accuracy for known-language calls”) |
| Speakers take turns in different languages (a bilingual support line, an interpreted interview) | Mode 2, switching inside one request | Deepgram, AssemblyAI, Speechmatics, ElevenLabs, AWS, Azure (MAI-Transcribe-2, continuous identification up to 10, or the 15-locale multilingual model), Gladia, OpenAI gpt-transcribe with a languages list |
Rely on Google’s multi-language recognition: it picks one best-fit language from up to 3 and Google aims it at short statements such as voice commands |
| One speaker mixes languages inside a sentence (Spanglish, Hinglish, Singlish, Taglish) | Mode 3, mid-sentence code-switching | Deepgram (if both languages are in its 10), AssemblyAI (18 batch, 32 streaming), Speechmatics Melia 1 (56); for named pairs only, Azure MAI-Transcribe-2 (Hinglish, Spanglish) and ElevenLabs (Indic–English) | Use Azure continuous identification instead of MAI-Transcribe-2: Microsoft says it does not detect a change within the same sentence |
| Live audio for a voice agent, with mid-sentence mixing | Mode 3, streaming | Deepgram Flux Multilingual or Nova-3 streaming with language=multi; AssemblyAI Universal-3.6 Pro; Speechmatics Melia 1 real-time (early preview, not for production) |
Pick OpenAI gpt-live-transcribe if you need the detected language back; OpenAI says it does not return one |
| A regional pair outside the big lists (Malay–English, Tamil–English, Tagalog–English, Mandarin–Malay–Tamil–English) | Mode 2 or 3 for that exact pair | Speechmatics bilingual packs name these pairs (same file or stream); AWS lists ms-MY and ta-IN for multi-language identification; Gladia lists Malay, Tamil and Tagalog for code switching; Azure MAI-Transcribe-2 lists Malay, Tamil and Filipino among its 60, though its mid-utterance statement names only Hinglish and Spanglish | Assume a big total language count means your pair switches mid-sentence inside one request |
The rule that falls out of the table: if your callers mix languages inside a sentence, the shortlist from these nine on vendors’ own documentation is Deepgram, AssemblyAI and Speechmatics Melia 1, plus Azure MAI-Transcribe-2 for blended pairs such as Hinglish and Spanglish and ElevenLabs for Indic–English; every other API we scored is a turn-by-turn or file-by-file answer.
If you would rather not build the pipeline, start with Zian
If what you actually need is a phone or messaging agent that talks to customers in their language, not a transcript, Zian AI is the first option to look at: its agents work in 30+ languages across live phone calls, SMS, email, WhatsApp, Instagram DMs and Facebook Messenger, and language is configuration rather than code. If you want the whole thing run for you, LeadsNow.ai is the done-for-you option: managed, pay-per-result AI appointment setting and lead generation that runs on Zian.
Zian’s agents answer inbound calls as an AI receptionist, book appointments and follow up across channels, with CRM integrations including HubSpot, Salesforce, HighLevel and Zapier, and private model deployment on customer infrastructure where audio cannot leave your environment. The broader picture is on our page about multilingual AI sales agents in 30+ languages. One honest line: Zian is in partnership-application beta and does not publish a price. LeadsNow.ai has set 50,769+ appointments on a pay-per-result basis.
How each API handles more than one language
Deepgram: 10 languages, switched word by word
Deepgram’s multilingual codeswitching guide turns it on with language=multi on Nova-2, Nova-3 and Nova-3 Medical, or with the flux-general-multi model for streaming voice agents. Its documented response labels every word: “No recuerdo mi bank password” comes back with three words tagged es and two tagged en. Deepgram’s Flux Multilingual page says Flux “handles mid-sentence language switches natively” and accepts repeatable language_hint values. The catch is coverage: both multilingual models cover the same 10 languages, against 63 Nova-3 entries for single-language use. File-level detect_language is a separate, pre-recorded-only feature that picks the dominant language from 35. Deepgram labels its streaming rates “limited-time promotional rates”.
AssemblyAI: 18 languages batch, 32 streaming, mid-sentence
AssemblyAI’s code switching page says Universal-3.5 Pro “natively handles code switching across 18 languages” when language_detection is on, and “follows speakers as they shift mid-sentence”. language_codes narrows the set (any number on Universal-3.5 Pro; at most two, one English, on Universal-2). Anything outside the 18 falls through to Universal-2 (99 languages in total). For live audio, its streaming multilingual page says Universal-3.6 Pro Streaming code-switches across 32 languages with no configuration; the cheaper Universal-Streaming Multilingual covers six languages and switches per turn. Two cautions from AssemblyAI itself: its FAQ says “Code switching performance varies by language pair”, and its language detection page warns that its Whisper-based identification “can sometimes misidentify heavily accented speech” and then transcribe in the wrong language; our page on Australian accent accuracy and word error rate covers how to test recognition of accented speech.
OpenAI: code-switching named, grain not stated
OpenAI’s gpt-transcribe model page says the model supports “multiple language hints to improve transcription of domain terms, multilingual audio, and code-switching”, and its file transcription guide shows the response returning a languages array. We could not find whether it switches within a sentence on the model page, the file, live and overview transcription guides, as at 16 October 2026. Files can be up to 25 MB. For live audio, the realtime transcription guide recommends gpt-live-transcribe but says it “doesn’t return detected-language predictions”; use gpt-transcribe on committed turns if you need the language back.
Google Cloud Speech-to-Text: dominant language, or one of three
Google’s Chirp 3 page describes its language_codes=["auto"] mode as identifying “the dominant language spoken in the audio”; conditioning it on expected locales still yields the dominant one. Google’s separate multiple language recognition is marked Preview, accepts up to three languages, transcribes “using the best-fit language from the list”, works only with the long, short and telephony models, and Google aims it at “short statements like voice commands or search.” We could not find a code-switching statement on the five Speech-to-Text pages we read (Chirp 3, Chirp 2, model comparison, automatic language detection, release notes), as at 16 October 2026. Google’s pricing page names “chirp” but not chirp_3, so confirm Chirp 3’s rate in your billing console.
Microsoft Azure: MAI-Transcribe-2 for blended pairs, continuous identification never within a sentence
Azure’s newest route is MAI-Transcribe-2, called through the fast transcription API’s enhanced mode (and usable for input transcription in Voice Live). Microsoft says “By default, the model operates in multilingual mode”, that it “supports 60 languages”, and lists code switching among its features: “For commonly blended language pairs such as Hinglish and Spanglish, handles conversations that move between languages mid-utterance.” Microsoft does not list which other pairs count as commonly blended. Its pricing page shows $0.10 an hour for MAI-Transcribe-2 with the footnote “Limited-time promotional offer till 12/31/2026”, and Microsoft’s Retail Prices API lists a $0.10-an-hour “Fast Transcription Promo” meter effective 1 September 2026; the meter does not name MAI-Transcribe-2, so treating it as the same promotion is our inference from the matching price and timing, not Microsoft’s statement. The post-promotion rate is not stated on either, as at 16 October 2026. The LLM Speech API is also multilingual by default (25 languages), with no code-switching statement we could find, as at 16 October 2026.
The older route, Azure’s language identification guide, offers at-start identification with up to four candidate languages and continuous identification with up to 10. Microsoft states the limit: “Continuous LID doesn’t support changing languages within the same sentence.” It also “returns one of the candidate languages provided even if those languages weren’t in the audio.” The fast transcription API without a locale labels each phrase with one of 15 locales. Continuous identification is a $0.30-an-hour add-on on real-time (included with batch), so budget about $1.30 an hour.
Speechmatics: a multilingual model plus named bilingual packs
Speechmatics has two routes. Its models page recommends Melia 1 “for audio that contains more than one language, including speakers who switch language mid-conversation”, with per-word language labels, and its pricing page says Melia 1 “switches language mid-sentence” across 56 languages without choosing one up front. The other route is its bilingual packs: seven, from Arabic–English to Mandarin–Malay–Tamil–English, each for both languages “in the same media file or stream”. The cautions: Melia 1 on Batch lacks custom dictionary, confidence scores and speaker identification; the Melia 1 Realtime page still calls real-time Melia “an early preview for evaluation only, and is not intended for production use”, with finals latency averaging around 4 seconds, as at 16 October 2026; and Speechmatics’ headline “from $0.12/hr” is the $0.24 Melia 1 batch base rate after a 33% model-training discount and a 25% top-tier annual commitment.
ElevenLabs Scribe: multiple languages per file, Indic–English mixing
ElevenLabs’ Speech to Text documentation lists 90+ languages for Scribe v2 and predicts the language automatically when you send no language_code. The mixed-language statements sit on its blog: Introducing Scribe v2 says “You can send audio that contains multiple languages in a single file”, and the April 2026 post Scribe v2 just got an upgrade says English words mixed into Hindi, Telugu, Kannada and other Indic languages stay in Latin script “with no language configuration required.” Its Realtime API takes a language_code plus secondary_languages and can report the detected language after each commit. The batch API returns one language_code per transcript, not per word.
Amazon Transcribe: all languages in the file, with a summary
AWS’s batch language identification guide describes multi-language identification, which “identifies all languages spoken in your media file” and returns a summary of each language and how long it was spoken. AWS says this works “if speakers change languages mid-conversation”. Multi-language identification covers 36 language codes (23 languages) for batch, does not support redaction or custom language models, and for streaming accepts PCM audio only. The streaming API reference asks for “two or more language codes” and says “including more than five is not recommended.” AWS’s own warning: if none of your language options matches the audio, Transcribe picks the closest, so US English submitted with Chinese, French and German options “is likely” to come back in German.
Gladia: code switching per utterance
Gladia’s code switching guide defines it as speakers changing language “during a conversation between turns”. With code_switching set to true on Solaria-1, it runs language detection on each utterance and returns the language with each utterance and word. Gladia says multiple languages “can reduce partial transcript accuracy”. Solaria-3 covers five European languages and does not code-switch, per Gladia’s model comparison.
Check a vendor’s response for code-switching in two minutes
Where a vendor labels languages in its response, the labels show the grain: a language on every word (Mode 3), per segment (Mode 2) or one for the file (Mode 1). Not every vendor labels them: ElevenLabs’ batch API returns one language_code per transcript, so a single file-level code does not prove an API ignored a switch; read the transcript text as well. This script reports which language fields a JSON response contains:
import json, sys
def walk(o, path=""):
if isinstance(o, dict):
for k, v in o.items():
yield path + "/" + k, k, v
yield from walk(v, path + "/" + k)
elif isinstance(o, list):
for i, v in enumerate(o):
yield from walk(v, path + "[%d]" % i)
data = json.load(open(sys.argv[1], encoding="utf-8"))
word_langs, file_level, switches = [], [], 0
for path, key, val in walk(data):
if key in ("words", "results") and isinstance(val, list):
seg = [w.get("language") for w in val if isinstance(w, dict) and "language" in w]
seg += [w["alternatives"][0]["language"] for w in val if isinstance(w, dict) and w.get("type") == "word" and w.get("alternatives") and "language" in w["alternatives"][0]]
switches += sum(1 for a, b in zip(seg, seg[1:]) if a != b)
word_langs += seg
elif key in ("languages", "language_codes", "detected_language", "language_code", "language", "locale") and "/words[" not in path and "/results[" not in path:
file_level.append((path, val))
print("word-level language labels:", len(word_langs), "distinct:", sorted(set(word_langs)))
print("language switches inside one segment:", switches)
for path, val in file_level:
print("file/segment-level field", path, "=", json.dumps(val, ensure_ascii=False))
if not word_langs and not file_level:
print("no language fields found: this response cannot show code-switching")
We ran it on 16 October 2026 against six fixtures: Deepgram’s own documented code-switching response (5 word labels, en and es, 1 switch inside one segment); AWS’s own documented multi-language summary (no word labels, 3 segment-level codes: en-US, hi-IN and ja-JP); Microsoft’s documented fast transcription multilingual response, truncated where Microsoft truncates it (phrase locales en-us and zh-cn, no word labels); a synthetic response in the per-utterance shape Gladia describes (0 switches inside a segment); a synthetic response in the per-word results shape Speechmatics documents for its output (4 word labels, en and es, 1 switch); and a negative control holding only a transcript string (no language fields found). Apart from the synthetic Gladia and Speechmatics shapes, these are the vendors’ published samples, not calls we made. Pair it with our 12-probe language parity test for multilingual AI agents if the transcripts feed a live agent.
Who each API is wrong for
Deepgram: a mixed pair with either language outside its 10, such as Tagalog, Arabic or Cantonese with English. AssemblyAI: mid-sentence batch work outside Universal-3.5 Pro’s 18, or strongly accented audio with detection unconstrained. OpenAI: a documented mid-sentence answer, files over 25 MB, or the detected language from its live model. Google Chirp 3: any recording where the second language matters. Azure: mid-sentence mixing in a pair Microsoft does not describe as commonly blended, budgeting past 31 December 2026 on the MAI-Transcribe-2 promotional rate, or continuous identification for intra-sentence mixing. Speechmatics: production real-time Melia 1 today, or custom dictionary and confidence scores alongside multilingual output. ElevenLabs: per-word language labels from the batch API, or mid-sentence mixing outside Indic–English. Amazon Transcribe: redaction or a custom language model on the same multilingual job. Gladia: two languages in one sentence, by its own definition of code switching.
Apply For Partnership to run agents in 30+ languages without wiring a transcription API yourself.
Method and disclosure
We scored nine speech-to-text APIs; this is the set we compared, not a sweep of every vendor. For each we walked the vendor’s documentation index or sitemap, then read the language, language identification, code-switching and pricing pages, plus Microsoft’s Retail Prices API and the AWS Price List API. We swept each vendor’s other models (for example OpenAI’s five other transcription model pages, Google’s Chirp 2, Azure’s MAI-Transcribe-2 and LLM Speech) before keeping any “not stated” cell. Every page was read on 16 October 2026. zian.ai publishes this page; Zian is not a speech-to-text API and does not appear in the matrix.
Frequently asked questions
What’s the best speech-to-text model for transcribing multiple languages in one API call?
For one speaker mixing languages inside a sentence, the APIs among the nine we scored whose own documentation says they do it are Deepgram (10 languages), AssemblyAI (18 batch, 32 streaming) and Speechmatics Melia 1 (56), as at 16 October 2026; Azure’s MAI-Transcribe-2 states it for blended pairs such as Hinglish and Spanglish, and ElevenLabs for Indic–English. For speakers who take turns in different languages, AWS, Azure, Gladia, ElevenLabs and OpenAI’s gpt-transcribe also qualify. Google Chirp 3 transcribes the dominant language.
What is code-switching in speech recognition?
Code-switching is a speaker moving between two languages inside one conversation, often inside one sentence. A speech-to-text API handles it when it transcribes each part in the language actually spoken and labels it, instead of forcing the whole file into one language. Deepgram’s codeswitching guide shows the clearest example: “No recuerdo mi bank password” returned with each word tagged es or en.
Does OpenAI’s transcription API handle mixed-language audio?
Partly documented. OpenAI’s gpt-transcribe model page says it accepts multiple language hints “to improve transcription of domain terms, multilingual audio, and code-switching”, and the response returns the detected languages. We could not find a statement of whether it switches within a sentence, as at 16 October 2026, and OpenAI says its recommended live model, gpt-live-transcribe, does not return detected languages.
Can Azure Speech transcribe two languages in the same sentence?
Yes with MAI-Transcribe-2, for named pairs; no with continuous language identification. Microsoft’s MAI-Transcribe-2 page says the model is multilingual by default across 60 languages and, “For commonly blended language pairs such as Hinglish and Spanglish, handles conversations that move between languages mid-utterance.” Microsoft’s language identification guide says continuous identification takes up to 10 candidates but “doesn’t support changing languages within the same sentence.”
Which speech-to-text API covers the most languages in one multilingual request?
Counting languages one multilingual request can switch among: Gladia lists 99 (switching per utterance), Azure MAI-Transcribe-2 60 (mid-utterance for blended pairs such as Hinglish and Spanglish), Speechmatics Melia 1 56 (mid-sentence), AWS 36 language codes for batch multi-language identification, AssemblyAI 32 streaming and 18 batch, and Deepgram 10. Google’s multi-language recognition picks one best-fit language from up to 3. We could not find a separate list for ElevenLabs or OpenAI.
How much does multilingual speech-to-text cost per hour?
On list prices read 16 October 2026, file (batch) transcription runs from $0.10 an hour (Azure MAI-Transcribe-2, a promotional rate until 31 December 2026) and $0.15 (AssemblyAI Universal-2, two languages, one English) to $0.36 (AWS, Azure fast transcription), with Google standard recognition at $0.96 and Gladia at €0.27. Streaming runs from $0.15 (AssemblyAI Universal-Streaming Multilingual, six languages, per turn) to $1.30 (Azure real-time with the continuous identification add-on), with OpenAI gpt-live-transcribe at $1.02. Among APIs that state mid-sentence switching generally, batch costs $0.21 to $0.312 and streaming $0.348 (Deepgram’s promotional rate) to $0.468.
Where every figure on this page comes from
| Figure | Who published it | Link | Date read |
|---|---|---|---|
| language=multi on Nova-2, Nova-3 and Nova-3 Medical; per-word language labels in the documented response | Deepgram | Deepgram docs: Multilingual Codeswitching | 16 Oct 2026 |
| 63 Nova-3 language entries; multi covers 10 languages; Nova-2 multi is Spanish and English; flux-general-multi 10 languages | Deepgram | Deepgram docs: Models and Languages Overview | 16 Oct 2026 |
| Flux “handles mid-sentence language switches natively”; single hint “best accuracy for known-language calls” | Deepgram | Deepgram docs: Flux Multilingual and Language Prompting | 16 Oct 2026 |
| detect_language: pre-recorded only, dominant language, 35 languages | Deepgram | Deepgram docs: Language Detection | 16 Oct 2026 |
| Nova-3 Multilingual $0.0052/min batch, $0.0058/min streaming (promotional; regular $0.0092); Flux Multilingual $0.0078/min; pay as you go | Deepgram | Deepgram pricing | 16 Oct 2026 |
| Universal-3.5 Pro code-switches across 18 languages, mid-sentence; language_codes any number; Universal-2 two codes, one English; 99 languages with fallback | AssemblyAI | AssemblyAI docs: Code Switching | 16 Oct 2026 |
| Universal-3.6 Pro Streaming code-switches across 32 languages; Universal-Streaming Multilingual: six languages, switches per turn | AssemblyAI | AssemblyAI docs: Multilingual Transcription | 16 Oct 2026 |
| 15 to 90 seconds of speech for detection; Whisper-based identification can misidentify heavily accented English | AssemblyAI | AssemblyAI docs: Automatic Language Detection | 16 Oct 2026 |
| “Code switching performance varies by language pair” | AssemblyAI | AssemblyAI FAQ: files with multiple languages | 16 Oct 2026 |
| Universal-3.5 Pro $0.21/hr; Universal-2 $0.15/hr; Universal-3.6 Pro Realtime $0.45/hr; Universal-Streaming Multilingual $0.15/hr | AssemblyAI | AssemblyAI pricing | 16 Oct 2026 |
| gpt-transcribe language hints for multilingual audio and code-switching | OpenAI | OpenAI API: GPT-Transcribe model | 16 Oct 2026 |
| Detected languages array; files up to 25 MB; Whisper supports 98 languages | OpenAI | OpenAI API: File transcription | 16 Oct 2026 |
| gpt-live-transcribe does not return detected-language predictions | OpenAI | OpenAI API: Realtime transcription | 16 Oct 2026 |
| gpt-transcribe $0.0045/min; gpt-live-transcribe $0.017/min (OpenAI’s estimated cost) | OpenAI | OpenAI API: Pricing | 16 Oct 2026 |
| Chirp 3 auto transcribes the dominant language; 111 locale rows (29 GA, 82 Preview) | Google Cloud | Google Cloud: Chirp 3 Transcription | 16 Oct 2026 |
| Multi-language recognition: Preview, up to three languages, best-fit language, long, short and telephony models | Google Cloud | Google Cloud: Automatically detect language | 16 Oct 2026 |
| Standard recognition $0.016/min (first 500,000 min); dynamic batch $0.003/min; “chirp” named in the standard model list | Google Cloud | Google Cloud: Speech-to-Text pricing | 16 Oct 2026 |
| At-start identification up to 4 candidates, continuous up to 10; no change within the same sentence; returns a candidate even if not spoken | Microsoft | Microsoft Learn: Implement language identification | 16 Oct 2026 |
| Fast transcription multilingual model, 15 locales, locale per phrase | Microsoft | Microsoft Learn: Use the fast transcription API | 16 Oct 2026 |
| 148 speech-to-text locales; 79 language identification languages | Microsoft | Microsoft Learn: Language and voice support | 16 Oct 2026 |
| S1 Speech To Text $1.00/hr; Speech to Text Batch $0.18/hr; Fast Transcription $0.36/hr; Enhanced Feature Audio $0.30/hr; Fast Transcription Promo $0.10/hr effective 1 Sep 2026 (East US) | Microsoft | Azure Retail Prices API | 16 Oct 2026 |
| MAI-Transcribe-2: multilingual by default; 60 languages; code switching mid-utterance for commonly blended pairs such as Hinglish and Spanglish; segments by language; one forced language | Microsoft | Microsoft Learn: MAI-Transcribe-2 | 16 Oct 2026 |
| LLM Speech: multi-lingual mode by default; 25 input languages; no code-switching statement found | Microsoft | Microsoft Learn: Use the LLM Speech API | 16 Oct 2026 |
| MAI-Transcribe-2 $0.10/hr (“Limited-time promotional offer till 12/31/2026”); real-time $1.00/hr; fast transcription $0.36/hr; batch $0.18/hr; real-time enhanced add-ons (incl. continuous language identification) $0.30/hr per feature, included with batch (US East) | Microsoft | Azure Speech pricing | 16 Oct 2026 |
| Melia 1 per-word language labels, for speakers who switch mid-conversation; Batch feature gaps (custom dictionary, confidence scores, speaker identification) | Speechmatics | Speechmatics docs: Models | 16 Oct 2026 |
| 7 bilingual or multi-language packs; 55 single languages; auto is batch only | Speechmatics | Speechmatics docs: Languages | 16 Oct 2026 |
| Language identification needs at least 60 seconds of speech; predominant language | Speechmatics | Speechmatics docs: Language identification | 16 Oct 2026 |
| Melia 1 Realtime early preview, not for production; finals latency around 4 seconds | Speechmatics | Speechmatics docs: Melia 1 Realtime Preview | 16 Oct 2026 |
| Melia 1: 56 languages, mid-sentence; base $0.24/hr batch, $0.40/hr real-time; “from $0.12/hr” after 33% and 25% discounts | Speechmatics | Speechmatics pricing | 16 Oct 2026 |
| Scribe v2: 90+ languages (100 named); language predicted when none is given | ElevenLabs | ElevenLabs docs: Speech to Text | 16 Oct 2026 |
| Batch response carries one language_code per transcript | ElevenLabs | ElevenLabs API reference: Create transcript | 16 Oct 2026 |
| Realtime language_code plus secondary_languages; detected language after each commit | ElevenLabs | ElevenLabs API reference: Realtime | 16 Oct 2026 |
| “audio that contains multiple languages in a single file” | ElevenLabs | ElevenLabs blog: Introducing Scribe v2 | 16 Oct 2026 |
| Indic–English mixing: English words stay in Latin script | ElevenLabs | ElevenLabs blog: Scribe v2 just got an upgrade | 16 Oct 2026 |
| Scribe v2 $0.22/hr; Scribe v2 Realtime $0.39/hr | ElevenLabs | ElevenLabs API pricing | 16 Oct 2026 |
| Multi-language identification: 36 codes, mid-conversation, 30 seconds of speech, no redaction or custom language models; mismatched options give a wrong-language transcript | Amazon Web Services | Amazon Transcribe: batch language identification | 16 Oct 2026 |
| Streaming identification needs 1 second of speech; multi-language streaming PCM only | Amazon Web Services | Amazon Transcribe: streaming language identification | 16 Oct 2026 |
| Two or more language options; more than five not recommended; one dialect per language | Amazon Web Services | Amazon Transcribe API: StartStreamTranscription | 16 Oct 2026 |
| 113 language rows | Amazon Web Services | Amazon Transcribe: supported languages | 16 Oct 2026 |
| Batch $0.0001/second; streaming $0.0001667/second (US East, price list published 11 September 2026); language identification included | Amazon Web Services | Amazon Transcribe pricing (and AWS Price List API) | 16 Oct 2026 |
| Code switching “between turns”, per utterance; can reduce partial transcript accuracy | Gladia | Gladia docs: Code switching | 16 Oct 2026 |
| Solaria-3: five languages, no code switching; Solaria-1 default | Gladia | Gladia docs: Models | 16 Oct 2026 |
| 100 language rows, 99 with auto-discovery and code-switch | Gladia | Gladia docs: Supported languages | 16 Oct 2026 |
| Solaria-1 €0.27/hr async (0 to 100 hours a month); real-time from €0.68/hr | Gladia | Gladia pricing | 16 Oct 2026 |
| Script results: 5 word labels and 1 switch (Deepgram sample); 3 segment-level codes (AWS sample); phrase locales en-us and zh-cn (Microsoft sample); 4 word labels and 1 switch (synthetic response in Speechmatics’ documented output shape) | zian.ai, run on the vendors’ published sample responses | Deepgram sample used as fixture (AWS sample: batch language identification page) | 16 Oct 2026 |
| 50,769+ appointments; pay-per-result | LeadsNow.ai | LeadsNow.ai home page | 16 Oct 2026 |