@ottervoice/provider-elevenlabs
Documentation / @ottervoice/provider-elevenlabs
@ottervoice/provider-elevenlabs
Section titled “@ottervoice/provider-elevenlabs”ElevenLabs Scribe real-time streaming ASR provider for OtterVoice over WebSocket.
Install
Section titled “Install”npm install @ottervoice/core @ottervoice/provider-elevenlabsimport { createElevenLabsASR } from '@ottervoice/provider-elevenlabs';
const asr = createElevenLabsASR({ tokenBrokerUrl: '/api/voice-token', modelId: 'scribe_v2_realtime',});Use tokenBrokerUrl in browser and mobile apps so provider credentials remain
on your server.
License
Section titled “License”MIT
Interfaces
Section titled “Interfaces”ElevenLabsASROptions
Section titled “ElevenLabsASROptions”Defined in: provider-elevenlabs/src/index.ts:22
Options for createElevenLabsASR. Extends CredentialOptions and
ElevenLabsQueryOptions; prefer tokenBrokerUrl on clients over a static key.
Extends
Section titled “Extends”Properties
Section titled “Properties”| Property | Type | Description | Inherited from | Defined in |
|---|---|---|---|---|
apiKey? |
string |
A long-lived key (server-side only — never ship to clients). | CredentialOptions.apiKey |
provider-utils/dist/credential.d.ts:35 |
baseUrl? |
string |
Override the realtime listen endpoint. | - | provider-elevenlabs/src/index.ts:24 |
fetch? |
FetchLike |
Custom fetch implementation (tests / React Native polyfills). |
CredentialOptions.fetch |
provider-utils/dist/credential.d.ts:39 |
language? |
string |
BCP-47 language code; overridden by ASRSessionOptions.language when set. | ElevenLabsQueryOptions.language |
provider-elevenlabs/src/decode.ts:16 |
modelId? |
string |
ElevenLabs STT model id (e.g. scribe_v2_realtime). |
ElevenLabsQueryOptions.modelId |
provider-elevenlabs/src/decode.ts:14 |
now? |
() => number |
Clock override for deterministic expiry checks in tests. | CredentialOptions.now |
provider-utils/dist/credential.d.ts:41 |
tokenBrokerUrl? |
string |
Endpoint that mints short-lived tokens (client-safe). | CredentialOptions.tokenBrokerUrl |
provider-utils/dist/credential.d.ts:37 |
webSocket? |
WebSocketCtor |
Inject a WebSocket constructor (defaults to the global). | - | provider-elevenlabs/src/index.ts:26 |
ElevenLabsQueryOptions
Section titled “ElevenLabsQueryOptions”Defined in: provider-elevenlabs/src/decode.ts:12
Query knobs mapped onto ElevenLabs realtime
/v1/speech-to-text/realtime WebSocket URL.
Extended by
Section titled “Extended by”Properties
Section titled “Properties”| Property | Type | Description | Defined in |
|---|---|---|---|
language? |
string |
BCP-47 language code; overridden by ASRSessionOptions.language when set. | provider-elevenlabs/src/decode.ts:16 |
modelId? |
string |
ElevenLabs STT model id (e.g. scribe_v2_realtime). |
provider-elevenlabs/src/decode.ts:14 |
Variables
Section titled “Variables”DEFAULT_BASE_URL
Section titled “DEFAULT_BASE_URL”const DEFAULT_BASE_URL: "wss://api.elevenlabs.io/v1/speech-to-text/realtime" = 'wss://api.elevenlabs.io/v1/speech-to-text/realtime';Defined in: provider-elevenlabs/src/decode.ts:6
Default ElevenLabs realtime speech-to-text WebSocket endpoint.
Functions
Section titled “Functions”buildElevenLabsUrl()
Section titled “buildElevenLabsUrl()”function buildElevenLabsUrl( baseUrl, options, asr): string;Defined in: provider-elevenlabs/src/decode.ts:29
Build the realtime STT URL. NOTE: ElevenLabs’ realtime ASR wire format is
evolving — verify parameter and message names against the current docs and
prefer tokenBrokerUrl (which returns a fully signed URL) in production.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
baseUrl |
string |
Listen endpoint; usually DEFAULT_BASE_URL or a broker-signed URL. |
options |
ElevenLabsQueryOptions |
Provider defaults for model / language. |
asr |
ASRSessionOptions |
Per-session overrides from ASRSessionOptions. |
Returns
Section titled “Returns”string
Fully qualified wss:// URL including search params.
createElevenLabsASR()
Section titled “createElevenLabsASR()”function createElevenLabsASR(options): ASRProvider;Defined in: provider-elevenlabs/src/index.ts:46
ElevenLabs Scribe realtime ASR provider over WebSocket. Prefer a
tokenBrokerUrl so the signed URL/credential is minted server-side.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
options |
ElevenLabsASROptions |
Credentials and optional listen endpoint / query overrides. |
Returns
Section titled “Returns”decodeElevenLabs()
Section titled “decodeElevenLabs()”function decodeElevenLabs(data): | ASRDecodeResult | undefined;Defined in: provider-elevenlabs/src/decode.ts:53
Decode an ElevenLabs realtime message into a transcript result.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
data |
string |
Returns
Section titled “Returns”| ASRDecodeResult
| undefined