Feature guide
Languages
Omi Medical STT is an English-first medical speech model. Set a known language for the lowest latency, or opt in to per-utterance detection across the eight supported language families.
English is the medically evaluated language
Supported language families
| Language | Family | Accepted examples | Medical evaluation |
|---|---|---|---|
| English | en | en-AU, en-GB, en-US | Benchmarked |
| Spanish | es | es-ES, es-MX, es-419 | Testing only |
| Portuguese | pt | pt-BR, pt-PT | Testing only |
| French | fr | fr-FR, fr-CA | Testing only |
| German | de | de-DE, de-AT | Testing only |
| Dutch | nl | nl-NL, nl-BE | Testing only |
| Arabic | ar | ar-SA, ar-AE | Testing only |
| Hindi | hi | hi-IN | Testing only |
Regional BCP-47 tags are accepted and preserved in verbose audit metadata.
Three language modes
| Request | Behavior | When to use |
|---|---|---|
language=es-MX | Transcribes using the supported language you name. | You know the recording language. Lowest latency and simplest audit. |
language=auto | Detects every closed utterance and groups consecutive same-language utterances. | A conversation may switch among supported languages. |
| language omitted | Detects the dominant language from the first speech-bearing window, then routes the full recording. | Ordinary monolingual audio when the caller does not know the language. |
Feature availability by language
Transcription and vocabulary are separate from acoustic word alignment. All eight supported families can return real acoustic speaker intervals. The resident forced aligner currently covers five families, so Dutch, Arabic, and Hindi return segment speakers without guessed word ownership.
| Language | Transcription | Vocabulary | Segment speakers | Word timing |
|---|---|---|---|---|
en / es / pt / fr / de | Yes | Yes | Yes | Yes |
nl / ar / hi | Yes | Yes | Yes | No — speaker_segments only |
Inspect speaker_timing.word_timing in a verbose response. When it is false, usespeaker_segments for acoustic speaker intervals; the transcript text remains authoritative.
Automatic per-utterance detection
curl https://api.omi.health/v1/audio/transcriptions \
-H "Authorization: Bearer $OMI_API_KEY" \
-F [email protected] \
-F model=omi-medical-1 \
-F language=auto \
--form-string 'language_hints=["en","es-MX","pt-BR"]' \
-F response_format=verbose_jsonlanguage_hints is optional. It accepts 1–8 unique candidate tags and can reduce ambiguity when you know the likely languages. Without hints, all eight supported families are candidates.
{
"text": "Good morning. Buenos días.",
"language": "mixed",
"language_detection": {
"mode": "per_utterance",
"candidates": ["en", "es", "pt"],
"languages": ["en", "es"],
"utterances": 2,
"fallbacks": 0
},
"segments": [
{"text":"Good morning.","language":"en"},
{"text":"Buenos días.","language":"es"}
]
}- Very short utterances are joined to nearby context for detection while transcript boundaries stay intact.
- A language change inside one uninterrupted utterance follows the dominant detected language.
- Token-level code switching and translation are outside V1.
- A detected language outside the candidate set fails explicitly; Omi never silently falls back to English.
Availability
| Surface | Explicit language | language=auto |
|---|---|---|
| Short inline transcription | Every plan | Every plan |
| Long-audio transcription | Every plan | Pro/Enterprise or named evaluation account |
| Realtime | Private pilot | Private pilot |
Automatic detection on long batch jobs is a Pro/Enterprise feature and may also be enabled for named evaluation accounts.
No calibrated language confidence
Omitted and explicit auto are different
language_source: "detected" withlanguage_detection.mode: "dominant_probe". Explicit language=auto requests full per-utterance routing and may include language_hints.