Session Configuration

language, prompt, VAD, and other session-level options.

Configure session parameters via session.update messages.

When to configure

  • After connect: send session.update right after receiving session.created
  • During session: update parameters at any time
  • Confirmation: server returns session.updated to confirm

All options

Language and context

FieldTypeDescription
languagestringAudio source language (e.g. zh, en, auto)
promptstringContext hint, max 2000 characters

Model selection

FieldSnake-case aliasDescription
backendUpstream backend selection
sttModelstt_modelSTT model
normalizerModelnormalizer_modelText normalizer model

VAD configuration

FieldSnake-case aliasTypeDescription
vadbooleanEnable VAD
vadThresholdvad_thresholdnumberSensitivity threshold
vadSilenceMsvad_silence_msnumberSilence duration to trigger end-of-speech
vadPrefixMsvad_prefix_msnumberPrefix padding
vadMinSpeechMsvad_min_speech_msnumberMinimum speech segment
vadTargetSpeechMsvad_target_speech_msnumberTarget speech segment
vadMaxSpeechMsvad_max_speech_msnumberMaximum speech segment
vadSmartSplitWindowMsvad_smart_split_window_msnumberSmart split window

Audio configuration

Fixed by the gateway, client cannot change:

{ "format": "pcm_s16le", "sample_rate": 16000, "channels": 1 }

Examples

Set language

{ "type": "session.update", "language": "zh" }

Set context hint

{ "type": "session.update", "prompt": "Cardiology conference, terms: atrial fibrillation, anticoagulation, warfarin" }

Adjust VAD

{
  "type": "session.update",
  "vad": true,
  "vadThreshold": 0.5,
  "vadSilenceMs": 800
}

Switch language at runtime

{ "type": "session.update", "language": "en" }

Tenant isolation

All non-whitelisted fields are stripped before forwarding upstream. These fields are injected by the gateway and cannot be overridden:

  • request_id
  • session_id
  • user_id