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

English is benchmarked and medically evaluated. Spanish, Portuguese, French, German, Dutch, Arabic, and Hindi were included in training and are available for testing and evaluation. They have not been medically evaluated and should not be relied on for medical accuracy.

Supported language families

LanguageFamilyAccepted examplesMedical evaluation
Englishenen-AU, en-GB, en-USBenchmarked
Spanisheses-ES, es-MX, es-419Testing only
Portugueseptpt-BR, pt-PTTesting only
Frenchfrfr-FR, fr-CATesting only
Germandede-DE, de-ATTesting only
Dutchnlnl-NL, nl-BETesting only
Arabicarar-SA, ar-AETesting only
Hindihihi-INTesting only

Regional BCP-47 aliases are normalized to a family while the requested tag is preserved in verbose audit metadata.

Three language modes

RequestBehaviorWhen to use
language=es-MXTranscribes in the supported family you name.You know the recording language. Lowest latency and simplest audit.
language=autoDetects every closed utterance and groups consecutive same-language utterances.A conversation may switch among supported languages.
language omittedUses the API key’s stored default; falls back to English.Backward-compatible behavior. Omission is not auto detection.

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_json

language_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

SurfaceExplicit languagelanguage=auto
Batch transcriptionGenerally availableGenerally available
RealtimeInvited previewNot available in preview

Automatic detection on long batch jobs is currently limited to invited accounts while it completes preview.

No calibrated language confidence

Automatic detection does not expose a calibrated confidence score. Verbose responses report the selected languages, not a probability that could be mistaken for a clinical certainty.