OptionalapiOptionalchannelOptionalchannels?: { Enable dual-channel (or N-channel) mode. Presence of channels switches the
transcriber into channel-tagged mode: sendAudio(audio, { channel }) is required,
per-channel VAD runs on the raw PCM, the streams are mixed to mono before being
sent to the server, and emitted TurnEvents are enriched with channel and
per-word channel attribution.
Must contain exactly 2 entries with unique names. The names are echoed back in
TurnEvent.channel / words[i].channel.
Acoustic-leak caveat. Per-word channel attribution uses energy-based
VAD on each channel. If your capture setup lets one channel's audio bleed
into another at similar amplitude — typically system audio playing
through speakers and being picked up by an open mic — attribution can
misfire (mic-tagged words that were actually system). Transcription
quality is unaffected; only the channel field is. To preserve
attribution in speaker-leak setups, apply echo cancellation at capture
before feeding audio to the SDK. In browsers, that's
getUserMedia({ audio: { echoCancellation: true } }). On macOS native,
AVAudioEngine.setVoiceProcessingEnabled(true) on the input node. If
platform-level AEC isn't available, swap in a DNN VAD (e.g. Silero) via
channelAttribution.createVad. See the dual-channel sample app's
README for worked examples.
OptionalcontinuousOptionalcustomerOptionaldomain?: StreamingDomainOptionalencoding?: AudioEncodingOptionalendOptionalfilterOptionalformatOptionalinactivityOptionalincludeOptionalinterruptionOptionalkeyterms?: string[]OptionalkeytermsOptionallanguageOptionalllmOptionalmaxOptionalmaxOptionalminOptionalminOptionalprompt?: stringOptionalredactOptionalredactOptionalredactOptionalspeakerOptionaltoken?: stringOptionalturnOptionalvadOptionalvoiceOptionalvoiceOptionalwebhookOptionalwebhookOptionalwebhookOptionalwebsocket
Tuning for dual-channel attribution. Ignored when
channelsis unset.