Gladia's audio intelligence features extract structured data and insights from transcripts. They work on top of the base transcription — most are enabled by adding options to the transcribe() call (pre-recorded) or the startSession() config (live).
SDK-first: always use the official SDK — see gladia-sdk-integration for policy, setup, and fallback criteria.
When NOT to use: For basic transcription without audio intelligence features, go directly to gladia-pre-recorded-transcription or gladia-live-transcription. For gotchas and errors related to specific features, see gladia-troubleshooting.
Consult these resources as needed:
FeaturePre-recordedLiveConfig keySpeaker diarizationYesNodiarizationTranslationYesYestranslationSentiment analysisYesYessentiment_analysisNamed entity recognitionYesYesnamed_entity_recognitionSubtitles (SRT/VTT)YesNosubtitlesCustom vocabularyYesYescustom_vocabularyPII redactionYesNopii_redactionSummarizationYesYessummarization (post-process)Audio-to-LLMYesNoaudio_to_llmCustom spellingYesYescustom_spellingCustom metadataYesYescustom_metadata
Live features split into two groups: real-time (results stream during the session) and post-processing (results arrive after stopRecording()). See ./references/live-audio-intelligence.md for details.
Code examples assume GladiaClient is already initialized — see gladia-sdk-integration for setup.
typescript
const result = await client.preRecorded().transcribe("audio.mp3", {
diarization: true,
diarization_config: { number_of_speakers: 2 },
});
// Each utterance includes a `speaker` field (0-indexed integer)
python
result = client.prerecorded().transcribe("audio.mp3", {
"diarization": True,
"diarization_config": {"number_of_speakers": 2},
})
Pre-recorded:
typescript
const result = await client.preRecorded().transcribe("audio.mp3", {
translation: true,
translation_config: { target_languages: ["fr", "es"] },
});
python
result = client.prerecorded().transcribe("audio.mp3", {
"translation": True,
"translation_config": {"target_languages": ["fr", "es"]},
})
Live (result streams as translation WebSocket events — see live-audio-intelligence.md):
typescript
const session = client.liveV2().startSession({
// ... audio format options ...
realtime_processing: {
translation: true,
translation_config: { target_languages: ["fr"] },
},
});
python
from gladiaio_sdk import LiveV2InitRequest, LiveV2RealtimeProcessing
session = client.live().start_session(
LiveV2InitRequest(
# ... audio format options ...
realtime_processing=LiveV2RealtimeProcessing(
translation=True,
translation_config={"target_languages": ["fr"]},
),
)
)
Pre-recorded:
typescript
const result = await client.preRecorded().transcribe("audio.mp3", {
summarization: true,
summarization_config: { type: "bullet_points" },
});
Live (arrives after stopRecording() as post_summarization event):
typescript
const session = client.liveV2().startSession({
// ... audio format options ...
post_processing: {
summarization: true,
summarization_config: { type: "bullet_points" },
},
});
session.on("message", (msg) => {
if (msg.type === "post_summarization") console.log(msg.data.results);
});
For full per-feature config options and response structures, see:
code_switching: true with empty languages: triggers evaluation across 100+ languages and causes frequent misdetections. Always provide 3-5 expected languages.intensity above 0.6: values over 0.6 cause false positives where unrelated words get replaced. Keep at 0.4-0.6 and use pronunciations for better results.chapterization: the feature is discontinued. The API still accepts the flag but ignores it and returns no chapters. For chapter-style output on pre-recorded audio, use audio_to_llm with a prompt that asks for chapters.diarization + summarization + translation only when all are required.For the full gotcha list, see gladia-troubleshooting.