Horizon models
Horizon is Shunya's Automated Speech Recognition (ASR) family: four models tuned for different domains. Pass the model id (for example horizon-indic) in the model field; the product names are for reading, the ids are what the API accepts (the earlier zero-* ids still work). You can't mix models within a single request, but you can switch between requests freely.
The examples below send Authorization: Bearer $ACCESS_TOKEN. The speech APIs accept only a short-lived access token — never your API key directly.
From the Shunya Playground (recommended). Open API keys in the Playground, click Generate token next to your API key, and copy it — then set it:
export ACCESS_TOKEN="eyJhbGciOiJSUzI1NiIs…paste-here"Or mint it from your API key — the path for production, where your app refreshes the token as it nears expiry (the response carries expires_in):
export ACCESS_TOKEN=$(curl -s -X POST https://app.shunyalabs.ai/api/auth/token \
-H "api-key: $SHUNYALABS_API_KEY" | jq -r .token)Side-by-side
| Model | Model id | Languages | Special behaviour | Price ($/min) |
|---|---|---|---|---|
| Horizon Indic | horizon-indic | 55+ Indian languages | Standard transcription | $0.0045 |
| Horizon Universal | horizon-universal | 204 languages | Standard transcription, strongest on English | $0.0039 |
| Horizon Medical | horizon-medical | English + Indic | Auto medical-terminology correction | $0.0050 |
| Horizon Code-Switch | horizon-codeswitch | Hinglish, Tanglish, etc. | Auto English-token restoration to Latin script | $0.0050 |
Horizon Indic — model id horizon-indic
The default for Indian languages. Native handling of Hindi, Tamil, Telugu, Kannada, Marathi, Bengali, Gujarati, Punjabi, Malayalam, Odia, Urdu, Assamese, Maithili, and more.
When to use
- Single-language Indic audio where you know (or can detect) the language
- Call-centre audio for Indian customers in their native tongue
- Meetings, interviews, dictation, media transcription
Example
curl -X POST https://asrv2prod.shunyalabs.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-F "[email protected]" \
-F "model=horizon-indic" \
-F "language_code=hi"Horizon Universal — model id horizon-universal
Broad-coverage foundation model spanning English, European, Asian and African languages. Strongest on English and European content. Use it when the input could be anything — call GET /languages for the set it routes.
When to use
- English or non-Indian-language content
- Audio where you don't know the language in advance, set
language_code=auto - International meetings with mixed English and other languages
Horizon Oriental (Japanese and Korean) is served through this same model id: send model=horizon-universal with language_code=ja or language_code=ko.
Benchmarks
Composite WER on the HuggingFace Open ASR leaderboard: 3.10%, claimed 48% fewer errors than the next-best model.
See per-dataset numbers →Example
curl -X POST https://asrv2prod.shunyalabs.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-F "[email protected]" \
-F "model=horizon-universal"Horizon Medical — model id horizon-medical
Clinical-grade. Trained to recognise drug names, procedures, anatomy, dosages, and diagnostic terms. Auto-applies medical terminology correction (no extra flag needed).
When to use
- Doctor-patient consultations
- OT / surgical notes dictation
- Case note transcription for EHR ingest
Compliance
horizon-medical) is the model cleared for PHI handling under the Shunya BAA. Route PHI only through this model, and prefer on-prem deployment for the strongest data-residency story.Example
curl -X POST https://asrv2prod.shunyalabs.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-F "[email protected]" \
-F "model=horizon-medical" \
-F "language_code=en"Output shape
Same response schema as other models; the value-add is in the text itself, drug names in correct spelling, procedure names in standard terminology. Pair with enable_keyterm_normalization for further normalization against your own glossary.
Horizon Code-Switch — model id horizon-codeswitch
Tuned for speech that mixes two languages within a single utterance, Hinglish (mujhe yeh passbook update karna hai), Tanglish, Banglish, etc. Automatically restores English words to Latin script so the final transcript reads cleanly.
When to use
- Urban Indian call-centre conversations (customers routinely switch mid-sentence)
- Social-media, podcast, or creator content with code-mixed speech
- Any conversation where separating languages would force unnatural phrasing
Example
curl -X POST https://asrv2prod.shunyalabs.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-F "[email protected]" \
-F "model=horizon-codeswitch"What the output looks like
{
"text": "मुझे अपना EMI details check करना है",
"detected_language": "Hinglish",
"segments": [
{ "start": 0.3, "end": 3.1, "text": "मुझे अपना EMI details check करना है" }
]
}Picking the right model, decision flow
horizon-indic if the speakers are Indian; Horizon Universal horizon-universal otherwise. Swap to Horizon Code-Switch horizon-codeswitch if you see English words coming through phonetically in the Indic transcript, or Horizon Medical horizon-medical if drug/procedure terms are being butchered.
