@responsivevoice/core
The ResponsiveVoice text-to-speech client library. Provides a modern
TypeScript API over the native Web Speech API with HTTP/WebSocket fallback
for premium and non-native voices. Re-exports the dashboard feature plugins
from @responsivevoice/features for convenience. Use getResponsiveVoice()
to obtain the singleton client.
Classes
Section titled “Classes”ResponsiveVoice
Section titled “ResponsiveVoice”Defined in: src/responsivevoice.ts:32
ResponsiveVoice — the complete text-to-speech interface.
Features:
- Automatic voice resolution with 5-strategy matching across each voice's fallback chain
- Native Web Speech API when available
- HTTP audio fallback for universal support
- iOS audio unlock handling
- Text chunking for long text
- Event system (OnStart, OnEnd, OnError, etc.)
- Analytics character tracking
- Queue-until-ready: speak() calls before init() are queued and replayed
Extends
Section titled “Extends”ResponsiveVoiceCore
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new ResponsiveVoice(options?): ResponsiveVoice;Defined in: src/responsivevoice-core.ts:357
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
options | ResponsiveVoiceInitOptions |
Returns
Section titled “Returns”Inherited from
Section titled “Inherited from”ResponsiveVoiceCore.constructorProperties
Section titled “Properties”features
Section titled “features”features: FeatureManager;Defined in: src/responsivevoice-core.ts:306
Feature manager for dashboard features (welcome message, speak links, etc.)
Inherited from
Section titled “Inherited from”ResponsiveVoiceCore.featuresversion
Section titled “version”readonly version: string = __RV_CORE_VERSION__;Defined in: src/responsivevoice.ts:34
Package version of @responsivevoice/core, injected at build time.
services
Section titled “services”readonly static services: { FALLBACK_AUDIO: 1; NATIVE_TTS: 0;};Defined in: src/responsivevoice-core.ts:260
Service type constants for backward compatibility.
FALLBACK_AUDIO
Section titled “FALLBACK_AUDIO”FALLBACK_AUDIO: 1;NATIVE_TTS
Section titled “NATIVE_TTS”NATIVE_TTS: 0;Inherited from
Section titled “Inherited from”ResponsiveVoiceCore.servicesAccessors
Section titled “Accessors”allowPermissionPopupEverywhere
Section titled “allowPermissionPopupEverywhere”Get Signature
Section titled “Get Signature”get allowPermissionPopupEverywhere(): boolean;Defined in: src/responsivevoice.ts:318
Force showing popup everywhere (not just mobile/Safari)
Returns
Section titled “Returns”boolean
Set Signature
Section titled “Set Signature”set allowPermissionPopupEverywhere(value): void;Defined in: src/responsivevoice.ts:322
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
value | boolean |
Returns
Section titled “Returns”void
clickEventDetected
Section titled “clickEventDetected”Get Signature
Section titled “Get Signature”get clickEventDetected(): boolean;Defined in: src/responsivevoice.ts:350
Check if a click event has been detected
Returns
Section titled “Returns”boolean
Get Signature
Section titled “Get Signature”get debug(): boolean;Defined in: src/responsivevoice.ts:474
Debug flag — enable/disable debug logging
Returns
Section titled “Returns”boolean
Set Signature
Section titled “Set Signature”set debug(enabled): void;Defined in: src/responsivevoice.ts:478
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
enabled | boolean |
Returns
Section titled “Returns”void
debugTools
Section titled “debugTools”Get Signature
Section titled “Get Signature”get debugTools(): DebugTools | undefined;Defined in: src/responsivevoice.ts:495
Operational debug tools. Only available when debug is true.
Returns undefined when debug is false. Lazily constructed on first
access and cached; dropped when debug is turned off, so re-enabling
produces a fresh instance rather than a stale one.
Example
Section titled “Example”responsiveVoice.debug = true;await responsiveVoice.debugTools?.clearCache('voices');Returns
Section titled “Returns”DebugTools | undefined
disablePermissionPopup
Section titled “disablePermissionPopup”Get Signature
Section titled “Get Signature”get disablePermissionPopup(): boolean;Defined in: src/responsivevoice.ts:294
Disable the permission popup entirely
Returns
Section titled “Returns”boolean
Set Signature
Section titled “Set Signature”set disablePermissionPopup(value): void;Defined in: src/responsivevoice.ts:298
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
value | boolean |
Returns
Section titled “Returns”void
enableEstimationTimeout
Section titled “enableEstimationTimeout”Get Signature
Section titled “Get Signature”get enableEstimationTimeout(): boolean;Defined in: src/responsivevoice.ts:459
Whether estimation-based timeout is enabled for speech playback.
Default Value
Section titled “Default Value”trueReturns
Section titled “Returns”boolean
Set Signature
Section titled “Set Signature”set enableEstimationTimeout(value): void;Defined in: src/responsivevoice.ts:463
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
value | boolean |
Returns
Section titled “Returns”void
fallbackMode
Section titled “fallbackMode”Get Signature
Section titled “Get Signature”get fallbackMode(): boolean;Defined in: src/responsivevoice.ts:236
Check if currently using fallback mode. Returns true if the fallback (HTTP audio) engine is currently active.
Returns
Section titled “Returns”boolean
outputDevice
Section titled “outputDevice”Get Signature
Section titled “Get Signature”get outputDevice(): string | null;Defined in: src/responsivevoice.ts:153
Output device property (getter/setter).
Note: Setter is fire-and-forget; prefer setOutputDevice() for async handling.
Returns
Section titled “Returns”string | null
Set Signature
Section titled “Set Signature”set outputDevice(deviceId): void;Defined in: src/responsivevoice.ts:157
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
deviceId | string | null |
Returns
Section titled “Returns”void
prosodyFallback
Section titled “prosodyFallback”Get Signature
Section titled “Get Signature”get prosodyFallback(): boolean;Defined in: src/responsivevoice.ts:307
Whether client-side prosody fallback (audio.playbackRate, audio.volume)
is applied for knobs the server didn't apply natively. Three-tier
resolution: per-speak() opt > instance setting > init default > true.
Returns
Section titled “Returns”boolean
Set Signature
Section titled “Set Signature”set prosodyFallback(value): void;Defined in: src/responsivevoice.ts:311
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
value | boolean |
Returns
Section titled “Returns”void
speechAllowedByUser
Section titled “speechAllowedByUser”Get Signature
Section titled “Get Signature”get speechAllowedByUser(): boolean | null;Defined in: src/responsivevoice.ts:287
User's speech permission state (null if not yet asked)
Returns
Section titled “Returns”boolean | null
webPlayer
Section titled “webPlayer”Get Signature
Section titled “Get Signature”get webPlayer(): WebPlayerFeature | undefined;Defined in: src/responsivevoice-core.ts:316
Imperative API for the web player feature. Returns the active orchestrator
when webPlayer.enabled: true was passed to init (or
Partial<WebsiteFeatures> was overridden), undefined otherwise.
Use rv.webPlayer?.mount(selectorOrElement, overrides?) to attach a
player to dynamically-added content (SPAs, lazy-loaded sections).
Returns
Section titled “Returns”WebPlayerFeature | undefined
Inherited from
Section titled “Inherited from”ResponsiveVoiceCore.webPlayerMethods
Section titled “Methods”addEventListener()
Section titled “addEventListener()”addEventListener(event, callback): void;Defined in: src/responsivevoice.ts:393
Add event listener
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
event | | "OnLoad" | "OnReady" | "OnStart" | "OnEnd" | "OnError" | "OnPause" | "OnResume" | "OnServiceSwitched" | "OnClickEvent" | "OnAllowSpeechClicked" | "OnPartStart" | "OnPartEnd" | "OnVoiceResolved" |
callback | GenericEventCallback |
Returns
Section titled “Returns”void
allowSpeechClicked()
Section titled “allowSpeechClicked()”allowSpeechClicked(allowed): void;Defined in: src/responsivevoice.ts:329
Programmatically set speech permission response
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
allowed | boolean |
Returns
Section titled “Returns”void
applyTextReplacements()
Section titled “applyTextReplacements()”applyTextReplacements(text): string;Defined in: src/responsivevoice.ts:423
Apply the current text replacement rules to a string and return the result.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
text | string | The text to transform |
Returns
Section titled “Returns”string
The text with all matching replacement rules applied
cancel()
Section titled “cancel()”cancel(): void;Defined in: src/responsivevoice-core.ts:944
Cancel current speech and clear queue
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”ResponsiveVoiceCore.cancelcheckSpeechAllowed()
Section titled “checkSpeechAllowed()”checkSpeechAllowed(options?): boolean;Defined in: src/responsivevoice-core.ts:1028
Check if speech is allowed and show permission popup if needed
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
options | PermissionPopupOptions |
Returns
Section titled “Returns”boolean
Inherited from
Section titled “Inherited from”ResponsiveVoiceCore.checkSpeechAllowedchunkText()
Section titled “chunkText()”chunkText(text, options?): TextChunk[];Defined in: src/responsivevoice.ts:434
Split text into chunks using the current character limit and chunking rules.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
text | string | The text to chunk |
options? | { characterLimit?: number; } | Optional overrides (e.g. characterLimit) |
options.characterLimit? | number | - |
Returns
Section titled “Returns”Array of TextChunk objects
clearFallbackPool()
Section titled “clearFallbackPool()”clearFallbackPool(): void;Defined in: src/responsivevoice.ts:165
Clear the fallback audio pool. Stops all playing audio and resets the pool to empty state.
Returns
Section titled “Returns”void
clickEvent()
Section titled “clickEvent()”clickEvent(): void;Defined in: src/responsivevoice.ts:366
Manually trigger the click event handler. Simulates a user interaction event for permission initialization.
Returns
Section titled “Returns”void
dispose()
Section titled “dispose()”dispose(): void;Defined in: src/responsivevoice-core.ts:1043
Clean up resources
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”ResponsiveVoiceCore.disposeenableWindowClickHook()
Section titled “enableWindowClickHook()”enableWindowClickHook(): void;Defined in: src/responsivevoice.ts:358
Enable window click hook for user interaction detection. Called automatically on iOS, Android, and Safari.
Returns
Section titled “Returns”void
getAvailableVoices()
Section titled “getAvailableVoices()”getAvailableVoices(): string[];Defined in: src/responsivevoice.ts:50
Get voices with availability information
Returns
Section titled “Returns”string[]
getBrowserVoiceCount()
Section titled “getBrowserVoiceCount()”getBrowserVoiceCount(): number;Defined in: src/responsivevoice.ts:66
Get the count of available browser voices.
Returns
Section titled “Returns”number
getBrowserVoices()
Section titled “getBrowserVoices()”getBrowserVoices(): SpeechSynthesisVoice[];Defined in: src/responsivevoice.ts:59
Get browser's native SpeechSynthesis voices.
Returns
Section titled “Returns”SpeechSynthesisVoice[]
Array of SpeechSynthesisVoice objects (may be empty on some platforms)
getCharacterLimit()
Section titled “getCharacterLimit()”getCharacterLimit(): number;Defined in: src/responsivevoice.ts:126
Get the current character limit for text chunking.
Returns
Section titled “Returns”number
getConfig()
Section titled “getConfig()”getConfig(): { apiKey: string; defaultParams: SpeakParams; defaultVoice: string;};Defined in: src/responsivevoice.ts:535
Get current configuration
Returns
Section titled “Returns”{ apiKey: string; defaultParams: SpeakParams; defaultVoice: string;}apiKey
Section titled “apiKey”apiKey: string;defaultParams
Section titled “defaultParams”defaultParams: SpeakParams;defaultVoice
Section titled “defaultVoice”defaultVoice: string;getDefaultVoice()
Section titled “getDefaultVoice()”getDefaultVoice(): string;Defined in: src/responsivevoice.ts:80
Get the default voice
Returns
Section titled “Returns”string
getEstimatedTimeLength()
Section titled “getEstimatedTimeLength()”getEstimatedTimeLength(text, multiplier?): number;Defined in: src/responsivevoice.ts:451
Estimate the speech duration for a given text
Parameters
Section titled “Parameters”| Parameter | Type | Default value | Description |
|---|---|---|---|
text | string | undefined | The text to estimate duration for |
multiplier | number | 1 | Optional multiplier for the duration (default: 1) |
Returns
Section titled “Returns”number
Estimated duration in milliseconds
getOutputDevice()
Section titled “getOutputDevice()”getOutputDevice(): string | null;Defined in: src/responsivevoice.ts:145
Get the current audio output device ID
Returns
Section titled “Returns”string | null
Device ID or null if using default device
getPlatformInfo()
Section titled “getPlatformInfo()”getPlatformInfo(): PlatformInfo;Defined in: src/responsivevoice.ts:519
Get platform information (boolean flags for browser/OS detection)
Returns
Section titled “Returns”getPlatformVersionInfo()
Section titled “getPlatformVersionInfo()”getPlatformVersionInfo(): PlatformVersionInfo;Defined in: src/responsivevoice.ts:528
Get human-readable platform version information.
Returns
Section titled “Returns”Browser name/version, OS name/version, and device type
getServiceEnabled()
Section titled “getServiceEnabled()”getServiceEnabled(service): boolean;Defined in: src/responsivevoice.ts:212
Check if a TTS service is enabled
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
service | number |
Returns
Section titled “Returns”boolean
getServicePriority()
Section titled “getServicePriority()”getServicePriority(): number[];Defined in: src/responsivevoice.ts:228
Get the current service priority order
Returns
Section titled “Returns”number[]
getVoices()
Section titled “getVoices()”getVoices(): { deprecated?: boolean; flag: string; gender: "f" | "m"; isByok?: boolean; lang: string; name: string; provider?: string; voiceIDs: number[];}[];Defined in: src/responsivevoice.ts:43
Get all available voices
Returns
Section titled “Returns”getVolume()
Section titled “getVolume()”getVolume(): number;Defined in: src/responsivevoice.ts:100
Get the current volume setting
Returns
Section titled “Returns”number
hidePermissionPopup()
Section titled “hidePermissionPopup()”hidePermissionPopup(): void;Defined in: src/responsivevoice.ts:343
Hide the permission popup
Returns
Section titled “Returns”void
init()
Section titled “init()”init(options?): Promise<void>;Defined in: src/responsivevoice-core.ts:472
Initialize ResponsiveVoice — the single configuration entry point.
Creates the API client, fetches voice data, and emits OnReady. Can be called multiple times safely (idempotent after first init). Speak calls made before init() completes are queued and replayed.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
options | ResponsiveVoiceInitOptions | API key, voice defaults, and feature flags |
Returns
Section titled “Returns”Promise<void>
Promise that resolves when ready
Example
Section titled “Example”await rv.init({ apiKey: 'your-api-key' });rv.speak('Hello world');Inherited from
Section titled “Inherited from”ResponsiveVoiceCore.initisDemoMode()
Section titled “isDemoMode()”isDemoMode(): boolean;Defined in: src/responsivevoice.ts:276
Check if running in demo mode (no API key)
Returns
Section titled “Returns”boolean
isFallbackAudioPlaying()
Section titled “isFallbackAudioPlaying()”isFallbackAudioPlaying(): boolean;Defined in: src/responsivevoice.ts:172
Check if fallback audio is currently playing
Returns
Section titled “Returns”boolean
isForceFallback()
Section titled “isForceFallback()”isForceFallback(): boolean;Defined in: src/responsivevoice.ts:195
Check if fallback mode is forced
Returns
Section titled “Returns”boolean
isNativeAvailable()
Section titled “isNativeAvailable()”isNativeAvailable(): Promise<boolean>;Defined in: src/responsivevoice.ts:254
Check if native TTS is available
Returns
Section titled “Returns”Promise<boolean>
isNativeSupported()
Section titled “isNativeSupported()”isNativeSupported(): boolean;Defined in: src/responsivevoice.ts:247
Check if native TTS is supported
Returns
Section titled “Returns”boolean
isPaused()
Section titled “isPaused()”isPaused(): boolean;Defined in: src/responsivevoice-core.ts:1021
Check if speech is paused
Returns
Section titled “Returns”boolean
Inherited from
Section titled “Inherited from”ResponsiveVoiceCore.isPausedisPlaying()
Section titled “isPlaying()”isPlaying(): boolean;Defined in: src/responsivevoice-core.ts:1014
Check if speech is currently playing
Returns
Section titled “Returns”boolean
Inherited from
Section titled “Inherited from”ResponsiveVoiceCore.isPlayingisReady()
Section titled “isReady()”isReady(): boolean;Defined in: src/responsivevoice.ts:269
Check if ResponsiveVoice is initialized
Returns
Section titled “Returns”boolean
log(message): void;Defined in: src/responsivevoice.ts:512
Log a debug message (only outputs if debug is enabled)
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
message | string |
Returns
Section titled “Returns”void
pause()
Section titled “pause()”pause(): void;Defined in: src/responsivevoice-core.ts:964
Pause current speech
Note: Paused speech will auto-cancel after 60 seconds (browser limitation)
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”ResponsiveVoiceCore.pauserefreshAuthToken()
Section titled “refreshAuthToken()”refreshAuthToken(): Promise<void>;Defined in: src/responsivevoice-core.ts:829
Re-run the v2 handshake against /v2/auth/refresh and update the
stored token. Invoked automatically by the bearer-header builder
when the token is near expiry; SDK consumers may also call this
manually after an unexpected 401.
Returns
Section titled “Returns”Promise<void>
Inherited from
Section titled “Inherited from”ResponsiveVoiceCore.refreshAuthTokenremoveEventListener()
Section titled “removeEventListener()”removeEventListener(event, callback): void;Defined in: src/responsivevoice.ts:400
Remove event listener
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
event | | "OnLoad" | "OnReady" | "OnStart" | "OnEnd" | "OnError" | "OnPause" | "OnResume" | "OnServiceSwitched" | "OnClickEvent" | "OnAllowSpeechClicked" | "OnPartStart" | "OnPartEnd" | "OnVoiceResolved" |
callback | GenericEventCallback |
Returns
Section titled “Returns”void
resume()
Section titled “resume()”resume(): void;Defined in: src/responsivevoice-core.ts:984
Resume paused speech
If pause timed out, re-queues remaining text automatically.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”ResponsiveVoiceCore.resumesetCharacterLimit()
Section titled “setCharacterLimit()”setCharacterLimit(limit): void;Defined in: src/responsivevoice.ts:119
Set the character limit for text chunking.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
limit | number | Character limit (clamped to 50–300 at chunking time) |
Returns
Section titled “Returns”void
setDefaultRate()
Section titled “setDefaultRate()”setDefaultRate(rate): void;Defined in: src/responsivevoice.ts:109
Set the default speech rate
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
rate | number | Speech rate (0.1 to 1.5) |
Returns
Section titled “Returns”void
setDefaultVoice()
Section titled “setDefaultVoice()”setDefaultVoice(voice): void;Defined in: src/responsivevoice.ts:73
Set the default voice
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
voice | string |
Returns
Section titled “Returns”void
setForceFallback()
Section titled “setForceFallback()”setForceFallback(force): void;Defined in: src/responsivevoice.ts:183
Force fallback mode (always use HTTP audio)
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
force | boolean |
Returns
Section titled “Returns”void
setOutputDevice()
Section titled “setOutputDevice()”setOutputDevice(deviceId): Promise<void>;Defined in: src/responsivevoice.ts:136
Set the audio output device for fallback audio playback.
Uses the Web Audio setSinkId() API (Chrome 49+, Edge 17+).
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
deviceId | string | Device ID from navigator.mediaDevices.enumerateDevices() |
Returns
Section titled “Returns”Promise<void>
setServiceEnabled()
Section titled “setServiceEnabled()”setServiceEnabled(service, enabled): void;Defined in: src/responsivevoice.ts:205
Enable or disable a TTS service.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
service | number | Service type constant (NATIVE_TTS = 0, FALLBACK_AUDIO = 1) |
enabled | boolean | Whether the service should be enabled |
Returns
Section titled “Returns”void
setServicePriority()
Section titled “setServicePriority()”setServicePriority(priority): void;Defined in: src/responsivevoice.ts:221
Set the priority order for TTS services.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
priority | number[] | Array of service types in priority order (first = highest) |
Returns
Section titled “Returns”void
setTextReplacements()
Section titled “setTextReplacements()”setTextReplacements(rules): void;Defined in: src/responsivevoice.ts:413
Set text replacement rules for custom text transformations.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
rules | TextReplacementRule[] | null | Array of replacement rules, or null to clear |
Returns
Section titled “Returns”void
setVolume()
Section titled “setVolume()”setVolume(volume): void;Defined in: src/responsivevoice.ts:91
Set the global volume (0-1)
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
volume | number |
Returns
Section titled “Returns”void
showPermissionPopup()
Section titled “showPermissionPopup()”showPermissionPopup(options?): void;Defined in: src/responsivevoice.ts:336
Show the permission popup manually
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
options | PermissionPopupOptions |
Returns
Section titled “Returns”void
speak()
Section titled “speak()”Call Signature
Section titled “Call Signature”speak( text, voice?, params?): void;Defined in: src/responsivevoice-core.ts:847
Speak text using TTS.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
text | string | Text to speak |
voice? | VoiceSelectorInput | Voice name, regex pattern, or query filter. Accepts a real RegExp (e.g. /Portuguese/i) as JS sugar — internally normalized to the JSON-clean { regex, flags } literal. |
params? | SpeakOptions | Speech parameters and callbacks |
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”ResponsiveVoiceCore.speakCall Signature
Section titled “Call Signature”speak(text, params?): void;Defined in: src/responsivevoice-core.ts:853
Speak text using the default voice with custom parameters.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
text | string | Text to speak |
params? | SpeakOptions | Speech parameters and callbacks |
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”ResponsiveVoiceCore.speakvoiceSupport()
Section titled “voiceSupport()”voiceSupport(): boolean;Defined in: src/responsivevoice.ts:262
Check if Web Speech API is supported.
Legacy compatibility method — prefer isNativeSupported().
Returns
Section titled “Returns”boolean
Interfaces
Section titled “Interfaces”DebugTools
Section titled “DebugTools”Defined in: src/debug-tools.ts:33
Operational helpers exposed only when responsiveVoice.debug = true.
Lets a developer or support operator clear scoped cache state without
touching localStorage by hand. Never part of the default surface so
third-party scripts can't accidentally invoke it.
Methods
Section titled “Methods”clearCache()
Section titled “clearCache()”clearCache(scope?): Promise<void>;Defined in: src/debug-tools.ts:45
Clear persistent browser cache scoped to the current API key.
'voices'delegates toapiClient.clearVoiceCache()so custom storage adapters (memory / IndexedDB / file) are honored.'server'and'config'clear their own localStorage keys directly.'all'(default) clears every scope.
Silently no-ops when the API key is not set or localStorage is
unavailable (SSR, private browsing).
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
scope? | CacheScope |
Returns
Section titled “Returns”Promise<void>
PermissionConfig
Section titled “PermissionConfig”Defined in: src/permissions/manager.ts:44
Permission manager configuration
Properties
Section titled “Properties”allowPermissionPopupEverywhere?
Section titled “allowPermissionPopupEverywhere?”optional allowPermissionPopupEverywhere?: boolean;Defined in: src/permissions/manager.ts:55
Show permission UI on all platforms (not just iOS)
Default Value
Section titled “Default Value”falsedisablePermissionPopup?
Section titled “disablePermissionPopup?”optional disablePermissionPopup?: boolean;Defined in: src/permissions/manager.ts:49
Disable permission popup/prompts
Default Value
Section titled “Default Value”falsePermissionPopupOptions
Section titled “PermissionPopupOptions”Defined in: src/permissions/popup.ts:13
Options for the permission popup (per-call overrides)
Properties
Section titled “Properties”allowLabel?
Section titled “allowLabel?”optional allowLabel?: string;Defined in: src/permissions/popup.ts:19
Override the ALLOW button label (default: "ALLOW")
appendTo?
Section titled “appendTo?”optional appendTo?: HTMLElement;Defined in: src/permissions/popup.ts:25
Append popup to a specific container instead of document.body
classPrefix?
Section titled “classPrefix?”optional classPrefix?: string;Defined in: src/permissions/popup.ts:27
CSS class prefix to replace the default "rv" prefix (e.g. "myapp" → "myappNotification")
denyLabel?
Section titled “denyLabel?”optional denyLabel?: string;Defined in: src/permissions/popup.ts:21
Override the DENY button label (default: "DENY")
position?
Section titled “position?”optional position?: "top" | "bottom";Defined in: src/permissions/popup.ts:23
Position of the popup bar (default: "bottom")
renderPopup?
Section titled “renderPopup?”optional renderPopup?: (onAllow, onDeny) => HTMLElement;Defined in: src/permissions/popup.ts:32
Custom renderer — return your own HTMLElement for full control. Called with allow/deny callbacks; when invoked, skips the default popup entirely.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
onAllow | () => void |
onDeny | () => void |
Returns
Section titled “Returns”HTMLElement
textOverride?
Section titled “textOverride?”optional textOverride?: string;Defined in: src/permissions/popup.ts:17
Override the action text (default: "wants to play speech")
urlOverride?
Section titled “urlOverride?”optional urlOverride?: string;Defined in: src/permissions/popup.ts:15
Override the origin/hostname shown in the popup
PlatformInfo
Section titled “PlatformInfo”Defined in: src/platform/detector.ts:9
Information about the current platform and its capabilities
Properties
Section titled “Properties”hasIOSAudioUnlockBug
Section titled “hasIOSAudioUnlockBug”hasIOSAudioUnlockBug: boolean;Defined in: src/platform/detector.ts:58
Whether the platform exhibits the iOS silent-unlock bug that blocks speechSynthesis until a priming utterance runs.
iOSVersion
Section titled “iOSVersion”iOSVersion: number;Defined in: src/platform/detector.ts:36
Major iOS version, or 0 when not iOS or unparseable.
isAndroid
Section titled “isAndroid”isAndroid: boolean;Defined in: src/platform/detector.ts:26
True on Android.
isChrome
Section titled “isChrome”isChrome: boolean;Defined in: src/platform/detector.ts:12
True when the current browser is Chrome (excluding Edge, which also matches /chrome/ in UA).
isEdge
Section titled “isEdge”isEdge: boolean;Defined in: src/platform/detector.ts:18
True when the current browser is Microsoft Edge.
isFirefox
Section titled “isFirefox”isFirefox: boolean;Defined in: src/platform/detector.ts:16
True when the current browser is Firefox.
isIOS: boolean;Defined in: src/platform/detector.ts:24
True on iOS (iPhone/iPad/iPod).
isIOS10
Section titled “isIOS10”isIOS10: boolean;Defined in: src/platform/detector.ts:40
True on iOS 10.
isIOS11Plus
Section titled “isIOS11Plus”isIOS11Plus: boolean;Defined in: src/platform/detector.ts:42
True on iOS 11 or later.
isIOS12
Section titled “isIOS12”isIOS12: boolean;Defined in: src/platform/detector.ts:44
True on iOS 12.
isIOS9
Section titled “isIOS9”isIOS9: boolean;Defined in: src/platform/detector.ts:38
True on iOS 9.
isLinux
Section titled “isLinux”isLinux: boolean;Defined in: src/platform/detector.ts:32
True on desktop Linux (excluding Android).
isMacOS
Section titled “isMacOS”isMacOS: boolean;Defined in: src/platform/detector.ts:28
True on macOS (excluding iOS).
isOpera
Section titled “isOpera”isOpera: boolean;Defined in: src/platform/detector.ts:20
True when the current browser is Opera.
isSafari
Section titled “isSafari”isSafari: boolean;Defined in: src/platform/detector.ts:14
True when the current browser is Safari (excluding Chrome on iOS, which reports Safari-like UA).
isWindows
Section titled “isWindows”isWindows: boolean;Defined in: src/platform/detector.ts:30
True on Windows.
requiresUserInteraction
Section titled “requiresUserInteraction”requiresUserInteraction: boolean;Defined in: src/platform/detector.ts:56
Whether the platform requires a user gesture before speech/audio can play.
supportsAudioElement
Section titled “supportsAudioElement”supportsAudioElement: boolean;Defined in: src/platform/detector.ts:50
Whether HTMLAudioElement is available for fallback playback.
supportsSendBeacon
Section titled “supportsSendBeacon”supportsSendBeacon: boolean;Defined in: src/platform/detector.ts:52
Whether navigator.sendBeacon() is available for analytics.
supportsWebSpeech
Section titled “supportsWebSpeech”supportsWebSpeech: boolean;Defined in: src/platform/detector.ts:48
Whether the Web Speech API (speechSynthesis) is available.
useTimerForEvents
Section titled “useTimerForEvents”useTimerForEvents: boolean;Defined in: src/platform/detector.ts:60
Whether engine events must be driven by a local timer rather than the native onend/onboundary callbacks.
PlatformVersionInfo
Section titled “PlatformVersionInfo”Defined in: src/platform/version-extractor.ts:11
Extracted platform version information for reporting
Properties
Section titled “Properties”browser
Section titled “browser”browser: string;Defined in: src/platform/version-extractor.ts:13
Human-readable browser name ('Chrome', 'Safari', 'Firefox', 'Edge', 'Opera', or 'Unknown').
browserVersion
Section titled “browserVersion”browserVersion: string;Defined in: src/platform/version-extractor.ts:15
Browser major version as a string (e.g. '120'), or '' when unparseable.
deviceType
Section titled “deviceType”deviceType: "desktop" | "mobile" | "tablet";Defined in: src/platform/version-extractor.ts:21
Form factor inferred from UA and viewport heuristics.
os: string;Defined in: src/platform/version-extractor.ts:17
Operating system name ('iOS', 'Android', 'macOS', 'Windows', 'Linux', or 'Unknown').
osVersion
Section titled “osVersion”osVersion: string;Defined in: src/platform/version-extractor.ts:19
OS major version as a string (e.g. '17' for iOS 17), or '' when unparseable.
ResponsiveVoiceInitOptions
Section titled “ResponsiveVoiceInitOptions”Defined in: src/responsivevoice-core.ts:95
Options accepted by init() — the single configuration entry point.
Properties
Section titled “Properties”apiBaseUrl?
Section titled “apiBaseUrl?”optional apiBaseUrl?: string;Defined in: src/responsivevoice-core.ts:105
API base URL (defaults to production)
apiKey?
Section titled “apiKey?”optional apiKey?: string;Defined in: src/responsivevoice-core.ts:97
API key for authentication
apiSecret?
Section titled “apiSecret?”optional apiSecret?: string;Defined in: src/responsivevoice-core.ts:103
Server credential paired with apiKey, sent as X-API-Secret. Authenticates
directly, skipping the origin-bound handshake. Server-to-server only — not
for the browser, where it would be exposed to every visitor.
autoConnect?
Section titled “autoConnect?”optional autoConnect?: boolean;Defined in: src/responsivevoice-core.ts:159
Eagerly open the WebSocket connection at init time instead of waiting
for the first speak() call. Only meaningful when transport is
'websocket'. The connection is opened in the background (non-blocking)
and silently retries on failure.
Default Value
Section titled “Default Value”falsecharacterLimit?
Section titled “characterLimit?”optional characterLimit?: number;Defined in: src/responsivevoice-core.ts:137
Character limit for text chunks
defaultParams?
Section titled “defaultParams?”optional defaultParams?: Partial<SpeakParams>;Defined in: src/responsivevoice-core.ts:109
Default speech parameters
defaultVoice?
Section titled “defaultVoice?”optional defaultVoice?: string;Defined in: src/responsivevoice-core.ts:107
Default voice name
enableAnalytics?
Section titled “enableAnalytics?”optional enableAnalytics?: boolean;Defined in: src/responsivevoice-core.ts:133
Enable analytics tracking.
Analytics reports character usage per session. Disabling this may cause any elevated rate-limit allowance granted to your API key (account) to be revoked.
Default Value
Section titled “Default Value”trueenableDOMEvents?
Section titled “enableDOMEvents?”optional enableDOMEvents?: boolean;Defined in: src/responsivevoice-core.ts:135
Enable DOM event dispatch
enableVoiceReporting?
Section titled “enableVoiceReporting?”optional enableVoiceReporting?: boolean;Defined in: src/responsivevoice-core.ts:144
Enable voice reporting for optimized voice matching. Reports browser voices to the API to receive a personalized voice collection optimized for the user's browser/OS combination and subscription tier.
Default Value
Section titled “Default Value”truefeatures?
Section titled “features?”optional features?: Partial<{ accessibilityNavigation: { enabled: boolean; }; exitIntent: { enabled: boolean; text: string | null; }; paragraphNavigation: { enabled: boolean; }; speakEndPage: { enabled: boolean; text: string | null; }; speakInactivity: { enabled: boolean; text: string | null; }; speakLinks: { enabled: boolean; }; speakSelectedText: { enabled: boolean; }; webPlayer: { controls: { brand: boolean; progress: boolean; skip: boolean; speed: boolean; time: boolean; }; enabled: boolean; layout: { display: "inline" | "block"; mode: "fill" | "shrink"; }; miniPlayer: { animation: "none" | "fade" | "slide" | "pop"; enabled: boolean; position: | "top-left" | "top-right" | "bottom-left" | "bottom-right" | { bottom?: string; left?: string; right?: string; top?: string; }; }; navigation: { paragraphClick: boolean; paragraphHighlight: boolean; }; paragraphSelector: string; pitch?: number; position: | "inline" | "before" | "after" | { at: "before" | "after" | "inside"; target: string; }; rate?: number; sanitize: { enabled: boolean; exclude: string[]; }; selector: string; theme: | "neutral" | "responsivevoice" | { accent?: string; accentSoft?: string; bg?: string; border?: string; fg?: string; fill?: string; hover?: string; muted?: string; track?: string; }; voice?: | string | { flags?: string; regex: string; } | { gender?: "male" | "female" | "f" | "m"; isByok?: boolean; lang?: string; name?: string; provider?: string; }; volume?: number; }; welcomeMessage: { enabled: boolean; text: string | null; }; welcomeMessageOnce: boolean;}>;Defined in: src/responsivevoice-core.ts:179
Local overrides for dashboard feature flags. Merged over the server- returned config (or defaults in demo mode) before the feature manager activates, so consumers can turn a feature on or tweak its config without a dashboard round-trip — useful for demos, local QA, and scenarios where the page owns the feature configuration.
forceFallback?
Section titled “forceFallback?”optional forceFallback?: boolean;Defined in: src/responsivevoice-core.ts:111
Force fallback mode (always use HTTP audio)
permissionConfig?
Section titled “permissionConfig?”optional permissionConfig?: PermissionConfig;Defined in: src/responsivevoice-core.ts:123
Permission configuration
prosodyFallback?
Section titled “prosodyFallback?”optional prosodyFallback?: boolean;Defined in: src/responsivevoice-core.ts:121
Apply client-side prosody (pitch/rate/volume) when the server hasn't
applied it natively. When true (default), audio.playbackRate /
audio.volume are set for any knob the server omitted from the
RV-Prosody-Applied header. When false, the value is silently
dropped for unsupported knobs — useful when consumers want strict
provider fidelity.
Default Value
Section titled “Default Value”trueresolveVoice?
Section titled “resolveVoice?”optional resolveVoice?: ResolveVoiceHook;Defined in: src/responsivevoice-core.ts:171
Hook called before each voice resolution to transform the incoming
VoiceSelector. Lets integrating apps reroute speak() calls
without modifying call sites.
Runs after the params.voice escape-hatch check, so it never fires
when a direct SpeechSynthesisVoice override is in use.
Return undefined to fall through to
defaultVoice.
transport?
Section titled “transport?”optional transport?: "chunks" | "stream" | "websocket";Defined in: src/responsivevoice-core.ts:151
Audio transport mode for fallback (HTTP) voices.
'chunks'(default): full download per text chunk, then play'stream': HTTP audio streaming with MSE progressive playback'websocket': persistent WebSocket connection with MSE progressive playback
TextReplacementRule
Section titled “TextReplacementRule”Defined in: src/text/replacements.ts:4
Text replacement rule with optional voice filtering
Properties
Section titled “Properties”collectionvoices?
Section titled “collectionvoices?”optional collectionvoices?: string | string[];Defined in: src/text/replacements.ts:10
Optional: Apply only for these collection voice names
newvalue
Section titled “newvalue”newvalue: string;Defined in: src/text/replacements.ts:8
Replacement text
searchvalue
Section titled “searchvalue”searchvalue: string | RegExp;Defined in: src/text/replacements.ts:6
String pattern or RegExp to match. Strings support /pattern/flags format
systemvoices?
Section titled “systemvoices?”optional systemvoices?: string | string[];Defined in: src/text/replacements.ts:12
Optional: Apply only for these system voice names
Type Aliases
Section titled “Type Aliases”CacheScope
Section titled “CacheScope”type CacheScope = "all" | "voices" | "server" | "config";Defined in: src/debug-tools.ts:25
Which persistent cache to clear.
'voices'— voice collection + ETag + browser voice hash'server'— assigned TTS server URL'config'— website config payload'all'— all of the above (default)
ResolveVoiceHook
Section titled “ResolveVoiceHook”type ResolveVoiceHook = (selector) => VoiceSelector | undefined;Defined in: src/responsivevoice-core.ts:90
A hook that intercepts and optionally transforms the voice selector
before the resolution chain runs. Called once per speak() call
(never when params.voice is set).
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
selector | VoiceSelector | undefined | The incoming selector, or undefined when no voice was specified (i.e. the default voice would be used). |
Returns
Section titled “Returns”VoiceSelector | undefined
A transformed selector, or undefined to fall through to the
configured defaultVoice.
Functions
Section titled “Functions”detectPlatform()
Section titled “detectPlatform()”function detectPlatform(): PlatformInfo;Defined in: src/platform/detector.ts:102
Detect the current runtime's platform capabilities. Combines user-agent
parsing (browser, OS, iOS version) with feature detection (Web Speech,
Audio element, sendBeacon). Falls back to a server-side profile when
window/navigator are absent (SSR).
Returns
Section titled “Returns”extractPlatformVersionInfo()
Section titled “extractPlatformVersionInfo()”function extractPlatformVersionInfo(platformInfo): PlatformVersionInfo;Defined in: src/platform/version-extractor.ts:152
Extract platform version information for voice reporting
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
platformInfo | PlatformInfo | Platform info from detector |
Returns
Section titled “Returns”Platform version information suitable for voice reporting
getResponsiveVoice()
Section titled “getResponsiveVoice()”function getResponsiveVoice(options?): Promise<ResponsiveVoice>;Defined in: src/responsivevoice.ts:564
Get or create the global ResponsiveVoice instance.
For ESM consumers, this is the recommended entry point:
const rv = await getResponsiveVoice({ apiKey: 'your-key' });rv.speak('Hello');Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
options? | ResponsiveVoiceInitOptions | Init options (apiKey, voice defaults, feature flags) |
Returns
Section titled “Returns”Promise<ResponsiveVoice>
Promise that resolves to the initialized ResponsiveVoice instance
resetResponsiveVoice()
Section titled “resetResponsiveVoice()”function resetResponsiveVoice(): void;Defined in: src/responsivevoice.ts:580
Reset the global instance (for testing)
Returns
Section titled “Returns”void
References
Section titled “References”default
Section titled “default”Renames and re-exports getResponsiveVoice
VoiceSelector
Section titled “VoiceSelector”Re-exports VoiceSelector