Skip to content

SonioxSTTConfig

Configuration options for the SonioxSTT provider.

Defined in: src/providers/stt/soniox/SonioxSTT.ts:48

Configuration options for the SonioxSTT provider.

Remarks

Extends STTProviderConfig with Soniox-specific settings. You must provide either apiKey (for direct browser-to-Soniox connections) or proxyUrl (for a server-side proxy that injects the API key). If both are provided, proxyUrl takes precedence.

For direct browser connections, Soniox recommends temporary API keys generated server-side. Pass an async factory as apiKey to fetch a fresh temporary key on each connection.

Example

// Direct connection with a temporary API key factory
const config: SonioxSTTConfig = {
  apiKey: async () => {
    const res = await fetch('/api/soniox-temp-key');
    const { apiKey } = await res.json();
    return apiKey;
  },
  sampleRate: 16000,
};

// Proxy connection (recommended for production)
const config: SonioxSTTConfig = {
  proxyUrl: 'http://localhost:3001/api/proxy/soniox',
  languageHints: ['en', 'es'],
};

See

SonioxSTT for the provider class

Extends

Properties

PropertyTypeDefault valueDescriptionOverridesInherited fromDefined in
apiKey?string | () => Promise<string>undefinedAPI key or authentication token for the provider. Remarks Can be a static string or an async factory function that returns a fresh token on each call. Use a factory for short-lived tokens (e.g. Deepgram JWTs) so each WebSocket connection gets a valid credential. For client-side usage, consider using a proxy server to keep API keys secure. The SDK provides Express, Next.js, and Node adapters for this purpose.-STTProviderConfig.apiKeysrc/core/types/providers.ts:71
audioFormat?stringundefinedAudio format of the streamed audio. Remarks Use a raw format such as 'pcm_s16le', 'mulaw', or 'alaw' (requires sampleRate and numChannels), or 'auto' to let Soniox detect a container format (wav, mp3, ogg, flac, …) from the stream. Default 'pcm_s16le'--src/providers/stt/soniox/SonioxSTT.ts:64
authType?"token" | "bearer"Provider-specific (typically 'token' for Deepgram, ignored for REST providers)Authentication type for providers that support multiple auth mechanisms. Remarks Controls how the apiKey is sent to the provider: - 'token' — WebSocket subprotocol ['token', apiKey] or header Authorization: Token <key>. This is the default for Deepgram providers. - 'bearer' — WebSocket subprotocol ['bearer', token] or header Authorization: Bearer <token>. Use this for OAuth tokens or providers that expect Bearer auth. REST/SDK providers (Anthropic, OpenAI) handle auth through their SDK constructors and ignore this field.-STTProviderConfig.authTypesrc/core/types/providers.ts:115
clientReferenceId?stringundefinedOptional identifier (max 256 characters) logged by Soniox for request tracking.--src/providers/stt/soniox/SonioxSTT.ts:129
context?Record<string, unknown>undefinedDomain context to improve recognition of specialized vocabulary. Remarks Supports Soniox context fields such as general, text, and terms. See the Soniox docs for the full structure.--src/providers/stt/soniox/SonioxSTT.ts:124
debug?booleanfalseWhether to enable debug logging for this provider. Remarks When true, the provider emits detailed internal logs. This is separate from the SDK-level LoggingConfig.-STTProviderConfig.debugsrc/core/types/providers.ts:126
enableEndpointDetection?booleanundefinedDetect when the speaker stops talking, finalize all pending tokens, and mark the utterance complete. Remarks Required for automatic turn-taking in the CompositeVoice pipeline — without it, no utteranceComplete result is emitted until the stream ends. Default true--src/providers/stt/soniox/SonioxSTT.ts:100
enableLanguageIdentification?booleanundefinedIdentify the language of each token. Default false--src/providers/stt/soniox/SonioxSTT.ts:116
enableSpeakerDiarization?booleanundefinedLabel each token with the speaker who said it. Default false--src/providers/stt/soniox/SonioxSTT.ts:111
endpoint?stringundefinedCustom endpoint URL to override the provider’s default API endpoint. Remarks Useful for self-hosted instances, proxy servers, or development environments.-STTProviderConfig.endpointsrc/core/types/providers.ts:79
interimResults?booleanundefinedWhether to enable interim (partial) transcription results. Remarks When true, the provider emits results as the user speaks, before the utterance is complete. Only applicable to live/WebSocket providers.-STTProviderConfig.interimResultssrc/core/types/providers.ts:392
keywords?string[]undefinedCustom vocabulary or keyword phrases to boost recognition accuracy. Remarks Useful for domain-specific terminology, product names, or proper nouns that the model might not recognize well by default.-STTProviderConfig.keywordssrc/core/types/providers.ts:406
language?stringundefinedLanguage code for transcription. Remarks Uses BCP 47 language tags (e.g., 'en-US', 'es-ES', 'fr-FR'). The supported languages depend on the provider and model.-STTProviderConfig.languagesrc/core/types/providers.ts:375
languageHints?string[]undefinedLanguage hints to bias recognition, as ISO 639-1 codes (e.g. ['en', 'es']). Remarks When omitted, falls back to [language] if the base language option is set. Soniox auto-detects among 60+ languages either way.--src/providers/stt/soniox/SonioxSTT.ts:83
languageHintsStrict?booleanundefinedRestrict recognition to the specified languageHints only. Default false--src/providers/stt/soniox/SonioxSTT.ts:88
maxEndpointDelayMs?numberundefinedMaximum silence in milliseconds before an endpoint is forced. Accepted range is 500 to 3000. Default 2000 (Soniox server default)--src/providers/stt/soniox/SonioxSTT.ts:106
model?stringundefinedThe Soniox real-time model to use. Default 'stt-rt-v5'STTProviderConfig.model-src/providers/stt/soniox/SonioxSTT.ts:53
numChannels?numberundefinedNumber of audio channels. Required for raw audio formats. Default 1--src/providers/stt/soniox/SonioxSTT.ts:74
proxyUrl?stringundefinedURL of a CompositeVoice proxy server endpoint for this provider. Remarks When set, requests are routed through the proxy which injects the real API key server-side. This keeps API keys out of the browser. For WebSocket providers the HTTP URL is automatically converted to ws(s)://. At least one of apiKey or proxyUrl must be set for providers that require authentication (all except NativeSTT, NativeTTS, and WebLLM). Example proxyUrl: 'http://localhost:3000/api/proxy/deepgram'-STTProviderConfig.proxyUrlsrc/core/types/providers.ts:97
punctuation?booleanundefinedWhether to enable automatic punctuation in transcription results.-STTProviderConfig.punctuationsrc/core/types/providers.ts:397
sampleRate?numberundefinedAudio sample rate in Hz. Required for raw audio formats. Default 16000--src/providers/stt/soniox/SonioxSTT.ts:69
timeout?numberundefinedRequest timeout in milliseconds. Remarks Applies to HTTP requests (REST providers) and connection establishment (WebSocket providers). Set to 0 for no timeout.-STTProviderConfig.timeoutsrc/core/types/providers.ts:135

© 2026 CompositeVoice. All rights reserved.

Font size
Contrast
Motion
Transparency