Skip to content

NativeTTSConfig

Configuration options for the NativeTTS provider.

Defined in: src/providers/tts/native/NativeTTS.ts:53

Configuration options for the NativeTTS provider.

Remarks

Extends the base TTSProviderConfig with options specific to the browser’s SpeechSynthesis API, including voice selection by name or language and a preference for local (offline) voices.

Example

const config: NativeTTSConfig = {
  voiceName: 'Google US English',
  voiceLang: 'en-US',
  preferLocal: true,
  rate: 1.2,
  pitch: 0,
};

Extends

Properties

PropertyTypeDefault valueDescriptionInherited fromDefined in
apiKey?stringundefinedAPI key or authentication token for the provider. Remarks 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.TTSProviderConfig.apiKeysrc/core/types/providers.ts:67
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.TTSProviderConfig.authTypesrc/core/types/providers.ts:111
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.TTSProviderConfig.debugsrc/core/types/providers.ts:122
endpoint?stringundefinedCustom endpoint URL to override the provider’s default API endpoint. Remarks Useful for self-hosted instances, proxy servers, or development environments.TTSProviderConfig.endpointsrc/core/types/providers.ts:75
model?stringundefinedModel to use for text-to-speech synthesis. Remarks Provider-specific model identifier (e.g., 'aura-2' for Deepgram).TTSProviderConfig.modelsrc/core/types/providers.ts:1063
outputFormat?stringundefinedOutput audio format identifier. Remarks Provider-specific format string (e.g., 'linear16', 'mp3', 'opus').TTSProviderConfig.outputFormatsrc/core/types/providers.ts:1088
pitch?numberundefinedPitch adjustment in semitones. Remarks Values from -20 to +20 semitones. Not all providers support pitch adjustment.TTSProviderConfig.pitchsrc/core/types/providers.ts:1080
preferLocal?booleantrueWhether to prefer locally-installed voices over network voices. Remarks Local voices are typically lower latency and work offline. When true, the provider will prefer voices where SpeechSynthesisVoice.localService is true, if no voice was matched by name or language.-src/providers/tts/native/NativeTTS.ts:86
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'TTSProviderConfig.proxyUrlsrc/core/types/providers.ts:93
rate?numberundefinedSpeech rate multiplier. Remarks Values from 0.25 (quarter speed) to 4.0 (quadruple speed), where 1.0 is normal speed. Not all providers support rate adjustment.TTSProviderConfig.ratesrc/core/types/providers.ts:1072
sampleRate?numberundefinedSample rate for the output audio in Hz. Remarks Common values are 16000, 24000, and 48000. Must match the format capabilities of the chosen voice and model.TTSProviderConfig.sampleRatesrc/core/types/providers.ts:1097
timeout?numberundefinedRequest timeout in milliseconds. Remarks Applies to HTTP requests (REST providers) and connection establishment (WebSocket providers). Set to 0 for no timeout.TTSProviderConfig.timeoutsrc/core/types/providers.ts:131
voice?stringundefinedVoice ID or name to use for synthesis. Remarks Provider-specific voice identifier. For example, Deepgram uses identifiers like 'aura-asteria-en', while ElevenLabs uses voice IDs.TTSProviderConfig.voicesrc/core/types/providers.ts:1055
voiceLang?stringundefinedBCP 47 language tag to filter available voices (e.g., 'en-US', 'fr'). Remarks Used as a fallback when no voice matches voiceName or voice. Matches voices whose lang property starts with this value.-src/providers/tts/native/NativeTTS.ts:74
voiceName?stringundefined (uses voice or falls back to 'default')Voice name or URI to select from available browser voices. Remarks Performs a case-insensitive partial match against available voice names. If no match is found, falls back to language-based or default selection.-src/providers/tts/native/NativeTTS.ts:63

© 2026 CompositeVoice. All rights reserved.

Font size
Contrast
Motion
Transparency