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
| Property | Type | Default value | Description | Overrides | Inherited from | Defined in |
|---|---|---|---|---|---|---|
apiKey? | string | () => Promise<string> | undefined | API 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.apiKey | src/core/types/providers.ts:71 |
audioFormat? | string | undefined | Audio 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.authType | src/core/types/providers.ts:115 |
clientReferenceId? | string | undefined | Optional identifier (max 256 characters) logged by Soniox for request tracking. | - | - | src/providers/stt/soniox/SonioxSTT.ts:129 |
context? | Record<string, unknown> | undefined | Domain 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? | boolean | false | Whether 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.debug | src/core/types/providers.ts:126 |
enableEndpointDetection? | boolean | undefined | Detect 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? | boolean | undefined | Identify the language of each token. Default false | - | - | src/providers/stt/soniox/SonioxSTT.ts:116 |
enableSpeakerDiarization? | boolean | undefined | Label each token with the speaker who said it. Default false | - | - | src/providers/stt/soniox/SonioxSTT.ts:111 |
endpoint? | string | undefined | Custom endpoint URL to override the provider’s default API endpoint. Remarks Useful for self-hosted instances, proxy servers, or development environments. | - | STTProviderConfig.endpoint | src/core/types/providers.ts:79 |
interimResults? | boolean | undefined | Whether 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.interimResults | src/core/types/providers.ts:392 |
keywords? | string[] | undefined | Custom 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.keywords | src/core/types/providers.ts:406 |
language? | string | undefined | Language 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.language | src/core/types/providers.ts:375 |
languageHints? | string[] | undefined | Language 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? | boolean | undefined | Restrict recognition to the specified languageHints only. Default false | - | - | src/providers/stt/soniox/SonioxSTT.ts:88 |
maxEndpointDelayMs? | number | undefined | Maximum 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? | string | undefined | The Soniox real-time model to use. Default 'stt-rt-v5' | STTProviderConfig.model | - | src/providers/stt/soniox/SonioxSTT.ts:53 |
numChannels? | number | undefined | Number of audio channels. Required for raw audio formats. Default 1 | - | - | src/providers/stt/soniox/SonioxSTT.ts:74 |
proxyUrl? | string | undefined | URL 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.proxyUrl | src/core/types/providers.ts:97 |
punctuation? | boolean | undefined | Whether to enable automatic punctuation in transcription results. | - | STTProviderConfig.punctuation | src/core/types/providers.ts:397 |
sampleRate? | number | undefined | Audio sample rate in Hz. Required for raw audio formats. Default 16000 | - | - | src/providers/stt/soniox/SonioxSTT.ts:69 |
timeout? | number | undefined | Request timeout in milliseconds. Remarks Applies to HTTP requests (REST providers) and connection establishment (WebSocket providers). Set to 0 for no timeout. | - | STTProviderConfig.timeout | src/core/types/providers.ts:135 |