Start here: what kind of output do you need?
Start by deciding what you ultimately want back. Everything else — batch vs. streaming, language, enrichments — follows from this.Acoustic signals only
A classification of the audio itself — spoken language, synthetic voice, emotion, accent, music vs. speech, or AI-generated music — with no transcript.
Transcription (maybe with signals)
A transcript, optionally enriched with speaker labels, emotion, accent, or PII/PHI handling.
Escalated behaviors
Higher-level conversation understanding — fraud, churn, compliance risks, and other behaviors — not just what was said.
- Acoustic signals only → jump to Acoustic signals.
- Transcription, maybe with acoustic signals → jump to Transcription.
- Escalated behaviors → jump to Escalated behaviors.
Quick reference
Transcription
Deepfake Detection
PII/PHI Redaction
PII/PHI tagging (Transcription APIs) — wraps sensitive spans in tags within the transcript text; original content is preserved.
PII/PHI audio redaction (Redaction APIs) — replaces each detected PII/PHI span with an empty marker tag (e.g.
<pii:name></pii:name>, <pii:ssn></pii:ssn>, <phi></phi>) in the transcript text and silences the corresponding audio ranges in the returned MP3.
Language Detection
Language Detection is a pure classification endpoint — it returns no transcript, diarization, or enrichment data.
Emotion Detection
Emotion Detection is a pure classification endpoint — it returns a whole-file label and consecutive fixed-length windows, each with its own label, but no transcript. To get emotion labels alongside a transcript, use the
emotion_signal enrichment on Multilingual Transcription instead.
Accent Detection
Accent Detection is a pure classification endpoint — it returns a whole-file label and consecutive fixed-length windows, each with its own label, but no transcript. To get accent labels alongside a transcript, use the
accent_signal enrichment on Multilingual Transcription instead.
Music & Speech Detection
AI Music Detection
AI Music Detection answers a different question from Music & Speech Detection: is this music AI-generated? rather than is this music or speech? See AI Music Detection.
Velma Triage
Velma Triage is Modulate’s conversation-understanding model — you describe the behaviors you want to detect and Velma surfaces them from the audio. See What is Velma?.
Decision tree
Acoustic signals
You want a classification of the audio, not a transcript. Pick by the signal you need. For anything real-time, choose the streaming variant; otherwise use batch.- Spoken language → Language Detection (batch). Returns the detected language as an ISO 639-1 code and display name with a confidence score, from the first 30 seconds of audio. No transcript, diarization, or enrichment data.
- Synthetic (AI-generated) voice → Deepfake Detection. Use streaming if you need continuous monitoring throughout a live call; otherwise use batch for a submitted file.
- Music vs. speech → Music & Speech Detection. Classifies audio as music, speech, or neither. Use streaming for continuous updates on a live call or stream; otherwise use batch.
- AI-generated music → AI Music Detection. Returns a clip-level verdict (
ai-vocal-music,ai-instrumental, ornot-ai-music). Use streaming for real-time per-window results; otherwise use batch. This is distinct from Music & Speech Detection — it answers is this music AI-generated? - Emotion or accent → Emotion Detection or Accent Detection (batch). Each returns a whole-file label plus a per-window time series, with no transcript. If you also need a transcript, use the
emotion_signalandaccent_signalenrichments on Multilingual Transcription (batch or streaming) instead — see Transcription.
Transcription (maybe with signals)
You want a transcript, optionally enriched. Choose based on your single most important requirement:- Multilingual support → Multilingual Transcription for enriched output (use streaming if you need results as audio is captured; otherwise use batch), or Multilingual Fast Transcription (batch) when you just need a fast transcript of a complete file with no enrichments. These are the only options with broad language coverage.
- Lowest latency (e.g. agentic AI) → English Fast Transcription (streaming). Emits a rolling partial transcript every ~1.5 seconds and a single final transcript at end-of-stream — no enrichments. If you need low latency across multiple languages, Multilingual Transcription streaming is the fallback, but it is not tuned for the lowest latency.
- Only redacted results (compliance) → PII/PHI Redaction. Use streaming for live audio or batch for complete files. Both return a redacted MP3 with sensitive audio ranges silenced, alongside a transcript where each PII/PHI span is replaced with an entity-type tag. If your team can instead receive results with PII tagged but not redacted — and remove or avoid persisting the sensitive content on your side — then Multilingual Transcription with
pii_phi_tagging=truebecomes an option as well. - Just accuracy, cost, reliability, and scale → choose by language:
- English only → English Fast Transcription. Use streaming for real-time results; otherwise use batch. Fastest option for English audio, but no speaker diarization, emotion, accent, PII/PHI tagging, or utterance-level data — it returns a single
textstring andduration_ms, with a 60-second processing timeout per batch request. - Multilingual, fast batch turnaround → Multilingual Fast Transcription (batch). Like English Fast, it returns a single
textstring andduration_mswith no enrichments, but works across supported languages. Declare the spoken language with the optionallanguageparameter for the fastest, most direct path; omit it and the language is detected automatically. - Multilingual, full feature set → Multilingual Transcription. Use streaming for real-time results; otherwise use batch.
- English only → English Fast Transcription. Use streaming for real-time results; otherwise use batch. Fastest option for English audio, but no speaker diarization, emotion, accent, PII/PHI tagging, or utterance-level data — it returns a single
Full-featured vs fast transcription — detailed tradeoffs
Do you need deepfake detection alongside transcription?
The Multilingual Transcription batch API supports adeepfake_signal parameter that adds a per-utterance deepfake_score to transcription output. This is convenient when you already need transcription and want a deepfake signal without a second API call.
Use the dedicated Deepfake Detection APIs instead when:
- Transcription is not needed — you only want to know if audio is synthetic.
- You need frame-level results across the full audio (not just utterance-level scores).
- You need explicit
no-contentverdicts for silent regions. - You need streaming deepfake verdicts in real time.
Escalated behaviors
You want higher-level conversation understanding — fraud, churn, compliance risks, and other behaviors — not just what was said. → Velma Triage. You describe the behaviors you want to detect and Velma surfaces them from the audio, alongside a conversation summary, topics, sentiment, speaker roles, and a diarized transcript. Use streaming to monitor a live or in-progress conversation; otherwise use batch for a completed recording. See What is Velma? and the detection packages for ready-made configurations.Common scenarios
Call center QA on recorded English calls, high volume → English Fast Transcription (batch). Use parallel requests with a semaphore to respect concurrent limits. Fast transcription of recorded calls in non-English or mixed languages → Multilingual Fast Transcription (batch). Passlanguage when you know the spoken language to skip auto-detection; omit it to detect automatically.
Meeting transcription with speaker attribution and emotion
→ Multilingual Transcription (batch) with speaker_diarization=true and emotion_signal=true.
Live interview transcription with real-time captions, multilingual or with speaker labels
→ Multilingual Transcription streaming. Stream audio over WebSocket and display utterances as they arrive.
Live English captions or voice assistant input with minimal latency
→ English Fast Transcription streaming. Partial transcripts update every ~1.5 seconds — replace your displayed text with each new partial, then finalize on the utterance message.
Detect AI-generated voice in a submitted audio clip
→ Deepfake Detection batch endpoint.
Real-time anti-spoofing check during a voice authentication flow
→ Deepfake Detection streaming endpoint. Stream audio and act on frame verdicts as they arrive.
Transcript of a support call with PII/PHI spans tagged for downstream review
→ Multilingual Transcription (batch) with pii_phi_tagging=true. Language is auto-detected per utterance. The transcript content is preserved; sensitive spans are wrapped in tags.
Compliance recording that must be shareable with PII/PHI silenced
→ PII/PHI Redaction Batch API. Returns a redacted MP3 with sensitive audio ranges silenced and a transcript where each PII/PHI span is replaced with an entity-type tag.
Route audio to the right transcription pipeline based on spoken language
→ Language Detection batch endpoint. Send the clip, read predicted_language_code from the response, and route accordingly. Use the confidence field to catch low-certainty results and handle them separately.
Gate a stream so you only process speech, not music or silence
→ Music & Speech Detection streaming. Classify frames in real time and route only speech segments downstream.
Screen uploaded tracks for AI-generated music
→ AI Music Detection batch. Read the clip-level primary_verdict; rely on it rather than per-window results when judging a whole song.
Flag fraud or compliance risks on recorded support calls
→ Velma Triage (batch) with a detection package. Configure the behaviors you care about and read per-behavior verdicts, with the clips that triggered each detection.
Monitor a live call for escalation or churn signals
→ Velma Triage (streaming). Act on behavior-detection events as they arrive during the conversation.