Skip to main content
Modulate offers three Transcription models: Multilingual Transcription and English Fast Transcription are available in batch and streaming modes, and Multilingual Fast Transcription is batch-only. Use this page to pick the right one and get working code for each.

Which model should I use?

Multilingual Transcription — batch

Send a complete audio file, get back a full transcript with per-utterance timing, speaker labels, and optional enrichments.
Optional enrichments — add any of these query parameters to the request: See Transcription enrichment features for the full field reference and example responses. All three batch endpoints accept common audio formats (MP3, WAV, FLAC, MP4, OGG, and more) — see Audio formats.

English Fast Transcription — batch

Optimized for high-throughput English transcription. Returns a single transcript string with no per-utterance breakdown.
No speaker diarization, emotion, accent, PII/PHI tagging, or utterance-level data. Use Multilingual Transcription (batch) if you need any of those.

Multilingual Fast Transcription — batch

Optimized for fast turnaround on audio in any supported language. Returns a single transcript string with no per-utterance breakdown. Optionally declare the spoken language with the language form field for the fastest, most direct path; when omitted, the language is detected automatically.
language is a short code such as en, es, fr, or ja. Omit it to have the language detected automatically.
No speaker diarization, emotion, accent, PII/PHI tagging, or utterance-level data. Use Multilingual Transcription (batch) if you need any of those.

Multilingual Transcription — streaming (WebSocket)

Connect over WebSocket and receive utterances as speech is recognized — ideal for live audio, phone calls, and real-time captions.
Audio is sent as binary WebSocket frames in any chunk size. Send an empty string ("") to signal end of stream. For self-describing formats (MP3, WAV, OGG, FLAC, WebM, AAC, AIFF) the format is auto-detected. Raw PCM formats require audio_format, sample_rate, and num_channels query parameters. See Audio formats.

English Fast Transcription — streaming (English, low-latency)

Connect over WebSocket for low-latency English transcription. Unlike Multilingual Transcription streaming, this model emits a rolling partial transcript every ~1.5 seconds while audio arrives — useful for captions, voice assistants, and single-speaker workflows where you want to display text before the speaker finishes.
English only. No speaker diarization, emotion, accent, or PII/PHI enrichments. For those features use Multilingual Transcription streaming above.
Each partial_utterance contains the complete transcript so far, not a delta. Always replace your displayed text with the new value — never append.
For lowest latency, stream raw 16 kHz mono PCM (audio_format=s16le&sample_rate=16000&num_channels=1) — this bypasses the server’s audio decoder. Container formats (ogg, mp3, wav, etc.) are supported and require no additional parameters.

API reference