Feature availability
All features are disabled by default except speaker diarization, which defaults to
true in both the batch and streaming endpoints.Speaker diarization
Request field:speaker_diarization (boolean, default true)
Speaker diarization identifies distinct speakers in the audio and assigns each utterance a speaker integer, starting from 1. Speaker numbers are consistent within a single file — speaker 1 in one utterance is the same speaker as speaker 1 in any other utterance from the same request. Speaker numbers are not consistent across separate requests or files.
The feature works independently of language detection. In a multilingual conversation, each speaker still receives a consistent label even if they switch languages mid-call.
Disable diarization if you are processing single-speaker audio and want to reduce processing overhead, or if the speaker field is not useful to your application.
Emotion detection
Request field:emotion_signal (boolean, default false)
Emotion detection classifies the emotional tone of each utterance from the speaker’s voice signal. The result appears in the emotion field on each utterance object. When disabled, emotion is null.
Detection is per-utterance and based on acoustic features, not on the words spoken. Two utterances with the same text may receive different emotion labels if the delivery differs.
Possible values
Neutral, Calm, Happy, Amused, Excited, Proud, Affectionate, Interested, Hopeful, Frustrated, Angry, Contemptuous, Concerned, Afraid, Sad, Ashamed, Bored, Tired, Surprised, Anxious, Stressed, Disgusted, Disappointed, Confused, Relieved, Confident
For dedicated emotion classification without a transcript — a whole-file label plus a windowed time series — use the standalone Emotion Detection API instead.
Accent detection
Request field:accent_signal (boolean, default false)
Accent detection classifies the regional or national accent of each utterance’s speaker. The result appears in the accent field on each utterance object. When disabled, accent is null.
Like emotion detection, accent classification is per-utterance. For a speaker with a consistent accent across the file, results will typically be consistent but may vary on short or acoustically challenging segments.
Possible values
American, British, Australian, Southern, Indian, Irish, Scottish, Eastern_European, African, Asian, Latin_American, Middle_Eastern, Unknown
For dedicated accent classification without a transcript — a whole-file label plus a windowed time series — use the standalone Accent Detection API instead.
PII/PHI tagging
Request field:pii_phi_tagging (boolean, default false)
PII/PHI tagging identifies personally identifiable information (PII) and personal health information (PHI) in the transcribed text and wraps those spans in tags within the text field of each utterance. The transcript content is preserved — only the tag markup is added.
Enable PII/PHI tagging when your downstream systems need to identify or handle sensitive text spans, but you still need the original content in the transcript.
Deepfake scoring
Request field:deepfake_signal (boolean, default false)
The deepfake signal scores each utterance for the likelihood that it contains AI-generated speech. The score appears in the deepfake_score field on each utterance object. Available on Multilingual Transcription (batch and streaming).
Utterances shorter than 0.5 seconds are not scored and return
null regardless of whether the feature is enabled.
For dedicated deepfake analysis across an entire file (including frame-level results and a no-content verdict for silence), use the Deepfake Detection APIs.
How this relates to Deepfake Detection
Thedeepfake_signal in the Transcription APIs and the dedicated Deepfake Detection APIs both detect synthetic speech, but they serve different use cases.
The Transcription deepfake_signal is convenient when you are already transcribing and want a per-utterance score without a separate API call. The dedicated Deepfake Detection APIs provide frame-level analysis across the full file and explicit no-content handling for silence — making them the better choice when detection is the primary goal rather than a supplementary signal.
Language hint
Request field:language (string, default: automatic detection)
By default, the language is detected automatically for each utterance. Pass a case-insensitive ISO 639-1 code (e.g. en, fr) to hint the expected language instead. BCP 47 region or script subtags (e.g. en-US) are accepted, but only the primary language subtag is used.
The hint is available on Multilingual Transcription (batch and streaming), PII/PHI Redaction (batch and streaming), and in the stt block of the Velma Triage config. An invalid code is rejected — batch endpoints return 400; streaming endpoints close with code 1003.
On the batch endpoint, language is a form parameter; on the streaming endpoint it is a query parameter or a field in the first-frame configuration frame.
Multilingual Fast Transcription (batch) also accepts a language form parameter as a short code (e.g. en, es, fr, ja). When provided, the audio is transcribed directly in that language; when omitted, the language is detected automatically.
Custom vocabulary
Request field:custom_terms (array, default: no biasing)
Custom vocabulary biases transcription toward domain terms and names — product names, industry jargon, or proper nouns the model might otherwise mistranscribe. Each entry is either a plain string (the term itself) or an object:
At most 1000 entries are accepted, and the term strings serialized together as JSON must total under 8000 characters. Blank terms and blank pronunciations are dropped.
- Multilingual Transcription (batch): include
custom_termsin the JSON-encodedconfigform field. - Multilingual Transcription (streaming): include
custom_termsin the first-frame configuration frame. - Velma Triage (batch and streaming): include
custom_termsin thesttblock of theBatchConfig.
Partial (interim) results
Request field:partial_results (boolean, default false, Multilingual Transcription streaming only)
When enabled, the streaming server emits partial_utterance messages containing in-progress text as speech is being recognized, in addition to the finalized utterance messages. Each partial also carries the latest interim emotion, accent, and deepfake_score values for the utterance when those signals are enabled; each is null until a value is available.
Each partial_utterance supersedes the previous one for the currently active utterance; the finalized utterance message supersedes all preceding partials for that utterance.
Enable partial results when you need low-latency text preview (for example, to render live captions). Leave it disabled when only finalized utterances matter, to reduce message volume.