Speech-to-Text (REST)
Quick transcription of audio clips up to 60 seconds via HTTP.
Overview
The REST endpoint transcribes an audio file in a single synchronous HTTP request and returns the transcript immediately. It is best suited for short, pre-recorded audio clips.Endpoint
Authentication
Pass your API key in the request header.Request Parameters
All parameters are sent asmultipart/form-data fields.
verbatim — raw spoken-form output. transcribe — enables Inverse Text Normalization (ITN): numbers, currency, dates, and phone numbers are written in their conventional form. See ITN below.format=transcribe, set true to render digits in the native script of the target language (e.g. ₹५,००० instead of ₹5,000 for Hindi). Has no effect when format=verbatim.Response
200 — Success
Error Responses
Code Example
Python SDK
The official Python SDK handles multipart construction, authentication headers, and retries automatically.Installation
Authentication
The client requires anapi_key credential. You can pass it directly or load it from environment variables.
Transcribe Audio
Custom Request ID
Pass arequest_id to correlate SDK calls with your own logs or support tickets.
Error Handling
Supported Languages
The Gnani Prisma v2.5 API supports 10 Indian languages.gu-IN) and Punjabi (pa-IN) are supported here on REST but not on Batch STT. Use REST or Realtime for those languages; use Batch for the nine languages listed on the Batch introduction page.Inverse Text Normalization (ITN)
ITN converts the spoken-form output of the ASR engine into the conventional written form a reader expects — numbers become digits, currency gets the ₹ symbol, dates are formatted, and phone numbers are compacted — all in one pass, immediately after transcription. How to enable: Setformat=transcribe in the request body.
What ITN Normalizes
1 — Cardinal & Ordinal Numbers
Whole numbers and positional ranks are formatted using Indian comma grouping (groups of 2 after the first 3 digits).2 — Currency & Money
All Indian currency expressions — including paise fractions and lakh/crore scales — are formatted with the ₹ symbol and Indian comma grouping.3 — Dates
4 — Times
Indian time-of-day words (सुबह, दोपहर, शाम, रात) automatically map to 24-hour HH:MM output.5 — Phone Numbers & PIN Codes
Digit streams are concatenated into compact numeric strings. 10-digit streams → mobile number; 6-digit streams → PIN. Repeat prefixes (double/डबल, triple/ट्रिपल) are expanded.6 — Mixed & Code-Mixed Utterances
A single sentence may contain multiple entity types or blend Hindi and English. ITN handles all in one pass, normalizing each entity independently.Native Script Digits — itn_native_numerals
By default, ITN outputs Western Arabic digits (0–9) regardless of language. Set itn_native_numerals=true to render digits in the native script of the target language.
What ITN Does Not Change
ITN intentionally preserves idiomatic and ambiguous phrases to avoid incorrect normalization.- दो तीन (meaning a few) stays as text, not
2or3 - कर दो / ले दो (imperative verbs) are kept as words, not treated as cardinal 2
Authorizations
API key for authentication. Sign up in Vachana to get the API Key.
Body
Audio file to transcribe. Supported formats - WAV, MP3, OGG, FLAC, AAC, M4A. Maximum duration - 60 seconds (Ideal duration is 30 seconds).
Language code for transcription. Use one of the supported language codes.
Supported values: bn-IN, en-IN, gu-IN, hi-IN, kn-IN, ml-IN, mr-IN, pa-IN, ta-IN, te-IN
bn-IN, en-IN, gu-IN, hi-IN, kn-IN, ml-IN, mr-IN, pa-IN, ta-IN, te-IN "hi-IN"
Output format for the transcript.
verbatim(default) — Returns the raw spoken-form transcript as recognised by the ASR engine. No post-processing is applied.transcribe— Enables Inverse Text Normalization (ITN). Spoken numeric expressions, currency, dates, times, and phone numbers are automatically converted to their written form (e.g. "five thousand rupees" → "₹5,000").
verbatim, transcribe "transcribe"
When format=transcribe, set to true to render digits in the native script of the target language instead of Western Arabic digits (0–9).
For example, with hi-IN: "पाँच हज़ार रुपये" → "₹५,०००" instead of "₹5,000".
Has no effect when format=verbatim.
true