speechToText

Speech to Text

Speech to Text API

This API transcribes speech to text in multiple Indian languages and English. Supports transcription for interactive applications.

Available Options:

  • REST API (Current Endpoint): For quick responses under 30 seconds with immediate results
  • Batch API: For longer audio files, Follow This Documentation
    • Supports diarization (speaker identification)

Note:

  • Pricing differs for REST and Batch APIs
  • Diarization is only available in Batch API with separate pricing
  • Please refer to here for detailed pricing information
post/speech-to-text

Request

Headers

api-subscription-keystring required

Request body multipart/form-data

filestring binary required

The audio file to transcribe. Supported formats include WAV, MP3, AAC, AIFF, OGG, OPUS, FLAC, MP4/M4A, AMR, WMA, WebM, and PCM formats. The API automatically detects most codec formats, but for PCM files (pcm_s16le, pcm_l16, pcm_raw), you must specify the input_audio_codec parameter. PCM files are supported only at 16kHz sample rate. The API works best with audio files sampled at 16kHz. If the audio contains multiple channels, they will be merged into a single channel.

model'saaras:v3' | 'saarika:v2.5'

Model to be used for speech to text.

  • saaras:v3 (default, recommended): State-of-the-art model with flexible output formats. Supports multiple modes via the mode parameter: transcribe, translate, verbatim, translit, codemix.

  • saarika:v2.5 (legacy): Transcribes audio in the spoken language. Kept for backward compatibility.

mode'transcribe' | 'translate' | 'verbatim' | 'translit' | 'codemix'

Mode of operation for saaras:v3 model.

Example audio: 'मेरा फोन नंबर है 9840950950'

  • transcribe (default): Standard transcription in the original language with proper formatting and number normalization.

    • Output: मेरा फोन नंबर है 9840950950
  • translate: Translates speech from any supported Indic language to English.

    • Output: My phone number is 9840950950
  • verbatim: Exact word-for-word transcription without normalization, preserving filler words and spoken numbers as-is.

    • Output: मेरा फोन नंबर है नौ आठ चार zero नौ पांच zero नौ पांच zero
  • translit: Romanization - Transliterates speech to Latin/Roman script only.

    • Output: mera phone number hai 9840950950
  • codemix: Code-mixed text with English words in English and Indic words in native script.

    • Output: मेरा phone number है 9840950950
language_code'unknown' | 'hi-IN' | 'bn-IN' | 'kn-IN' | 'ml-IN' | 'mr-IN' | 'od-IN' | 'pa-IN' | 'ta-IN' | 'te-IN' | 'en-IN' | 'gu-IN' | 'as-IN' | 'ur-IN' | 'ne-IN' | 'kok-IN' | 'ks-IN' | 'sd-IN' | 'sa-IN' | 'sat-IN' | 'mni-IN' | 'brx-IN' | 'mai-IN' | 'doi-IN'

Languages supported for Speech-to-Text.

saarika:v2.5 supports (12 languages): unknown, hi-IN, bn-IN, kn-IN, ml-IN, mr-IN, od-IN, pa-IN, ta-IN, te-IN, en-IN, gu-IN

saaras:v3 supports all 23 languages including: as-IN, ur-IN, ne-IN, kok-IN, ks-IN, sd-IN, sa-IN, sat-IN, mni-IN, brx-IN, mai-IN, doi-IN

input_audio_codec'wav' | 'x-wav' | 'wave' | 'mp3' | 'mpeg' | 'mpeg3' | 'x-mp3' | 'x-mpeg-3' | 'aac' | 'x-aac' | 'aiff' | 'x-aiff' | 'ogg' | 'opus' | 'flac' | 'x-flac' | 'mp4' | 'x-m4a' | 'amr' | 'x-ms-wma' | 'webm' | 'pcm_s16le' | 'pcm_l16' | 'pcm_raw'

Audio codec/format of the input file. Our API automatically detects all codec formats, but for PCM files specifically (pcm_s16le, pcm_l16, pcm_raw), you must pass this parameter. PCM files are supported only at 16kHz sample rate.

Response

Successful Response

request_idstring nullable required
transcriptstring required

The transcribed text from the provided audio file.

language_codestring nullable required

This will return the BCP-47 code of language spoken in the input. If multiple languages are detected, this will return language code of most predominant spoken language. If no language is detected, this will be null

language_probabilitynumber double nullable

Float value (0.0 to 1.0) indicating the probability of the detected language being correct. Higher values indicate higher confidence.

When it returns a value:

  • When language_code is not provided in the request
  • When language_code is set to unknown

When it returns null:

  • When a specific language_code is provided (language detection is skipped)

The parameter is always present in the response.

Changes

No recorded changes to this operation across all 2 revisions of this API.