Speech understanding

View as Markdown

Speech understanding enables you to configure recognition, choose a model, and check language support.

Put recognition settings in the config object for Fast and Batch requests or in config within a Live session.update event.

Recognition configuration

FieldTypeDefaultFastBatchLiveDescription
languagestringen-USYesYesYesRecognition language. With language_detection, the preferred initial language; when language_detection is set and language is omitted, there is no preferred language.
modelstringAutomaticYesYesYesRecognition model. Omit when language_detection.mode is once; Scribe chooses the model from the detected language.
language_detectionobject—YesYesContinuous onlyDetects a language once or continuously. Live supports only continuous.
interim_resultsboolean—NoNoYesEnables Captions: partial transcription results before a transcript item is completed.
segmentation_modestringautoYesYesNoUse auto to split audio into segments at pauses in speech (voice activity detection), or none to disable segmentation.
word_time_offsetsbooleanfalseYesYesNoIncludes word-level start and end offsets.
channel_separationbooleanfalseYesYesNoProcesses stereo channels independently.
diarizationbooleanfalseYesYesYesIdentifies speakers. When false, speaker is an empty string.
profanity_filterbooleanfalseYesYesYesFilters profanity when the selected model supports it.
output_formatstringjsonYesYesNoOutput format. Defaults to json.
vocabularyobject—YesYesYesInline vocabulary for the current request, job, or session.
vocabulary_idstring—YesYesYesPersistent Vocabulary Asset to apply.

Unsupported combinations of language, model, execution mode, and settings return a validation error.

Select a model

Set config.model to explicitly select a recognition model. When it is omitted, Scribe selects a compatible standard model from the language, detection mode, and execution mode.

When config.language_detection.mode is once, omit config.model. Combining an explicit model with once returns HTTP 400 because Scribe must select the model after detecting the language.

ModelCoverageLanguage detection
zoom-scribe-enEnglishNo
zoom-scribe-en-proEnglishNo
zoom-scribe-multilingualTen languages; see Multilingual model languagesContinuous
zoom-scribe-<language>A supported language-specific modelNo
whisper36 languages, including 26 locales not covered by zoom-scribe-multilingualContinuous

The multilingual model IDs are the same in Fast and Live. Set config.model to the identifier below. You do not need a Live-specific prefix.

ModelFast config.modelLive config.model
Zoom multilingualzoom-scribe-multilingualzoom-scribe-multilingual
Whisperwhisperwhisper

Models ending in -pro require premium-model access. Automatic selection does not choose a premium model unless you enable premium usage for the account.

zoom-scribe-en-pro is the Pro option for English, Scribe API 3B Pro High-Accuracy, for applications that need higher accuracy. Use the model ID, not the product name, in config.model.

The response's top-level model field identifies the model that processed the input.

{
    "file": "https://example.com/audio.wav",
    "config": {
        "language": "en-US",
        "model": "zoom-scribe-en",
        "word_time_offsets": true,
        "diarization": true
    }
}

Detect languages

Use config.language_detection to detect the input language.

ModeBehavior
onceDetects one language, then recognizes the rest of the input with that language.
continuousDetects language changes as the input is processed. Each segment contains one detected language.

Live supports only continuous.

For once, omit model so Scribe can select it based on the detected language:

{
    "config": {
        "language_detection": {
            "mode": "once",
            "candidate_languages": ["en-US", "fr-FR"]
        }
    }
}

Use candidate_languages to restrict detection. When both language and candidate_languages are present, the preferred language must be included in the candidate list.

For continuous, you can explicitly select a model that supports continuous detection:

{
    "config": {
        "language": "en-US",
        "model": "zoom-scribe-multilingual",
        "language_detection": {
            "mode": "continuous",
            "candidate_languages": ["en-US", "es-ES", "fr-FR"]
        }
    }
}

For Fast and Batch continuous detection, result.language and result.segments[].language are omitted because the input can contain multiple languages. Do not expect per-segment language labels. With once, result.language may also be absent; clients should handle its omission.

Live continuous detection returns the detected language in transcription.completed.language, such as fr for French.

Multilingual model languages

The zoom-scribe-multilingual model supports these languages and locales:

LanguageLocale codes
Englishen-US
Arabicar-SA, ar-AE
Chinese (Simplified)zh-CN
Frenchfr-FR
Germande-DE
Italianit-IT
Japaneseja-JP
Koreanko-KR
Portuguesept-BR, pt-PT
Spanishes-ES

Broader language coverage

The whisper model recognizes 36 languages, with integrated language detection. These include the ten languages of the multilingual model and the following 26 locales:

LanguageLocale codeLanguageLocale code
Bengalibn-INMalayms-MY
Cantonesezh-HKPersian (Farsi)fa-IR
Catalanca-ESPolishpl-PL
Czechcs-CZRomanianro-RO
Danishda-DKRussianru-RU
Dutchnl-NLSwedishsv-SE
Estonianet-EETagalog (Filipino)tl-PH
Finnishfi-FITamilta-IN
Greekel-GRTelugute-IN
Hebrewhe-ILThaith-TH
Hindihi-INTurkishtr-TR
Hungarianhu-HUUkrainianuk-UA
Indonesianid-IDVietnamesevi-VN

Transcript response

Fast returns the result inline. Batch writes the same result schema to the configured storage destination.

{
    "request_id": "3f2b8c1e-7a4d-4e9b-b6f0-1c5d8a2e9b47",
    "duration_sec": 10.99,
    "result": {
        "text_display": "Welcome everyone. Let's get started.",
        "segments": [
            {
                "id": "utt_0000",
                "start": 0.0,
                "end": 2.4,
                "channel": 0,
                "speaker": "Speaker 1",
                "text": "Welcome everyone.",
                "words": [{ "word": "Welcome", "start": 0.0, "end": 0.4 }]
            }
        ]
    },
    "model": "zoom-scribe-en",
    "usage": {
        "input_units": 10.99,
        "output_units": 0,
        "unit_type": "seconds"
    }
}

Process multiple channels

Fast and Batch accept mono and stereo media. Set channel_separation to true to recognize each stereo channel independently.

{
    "config": {
        "language": "en-US",
        "channel_separation": true,
        "diarization": false
    }
}

Every segment includes channel. Channel 0 is the left channel and channel 1 is the right channel. When separation is disabled or the input is mono, the value is 0.