@ottervoice/provider-deepgram
Documentation / @ottervoice/provider-deepgram
@ottervoice/provider-deepgram
Section titled “@ottervoice/provider-deepgram”Deepgram real-time streaming ASR provider for OtterVoice over WebSocket.
Install
Section titled “Install”npm install @ottervoice/core @ottervoice/provider-deepgramimport { createDeepgramASR } from '@ottervoice/provider-deepgram';
const asr = createDeepgramASR({ tokenBrokerUrl: '/api/voice-token', model: 'nova-3', language: 'en-US',});Use tokenBrokerUrl in browser and mobile apps so provider credentials remain
on your server.
License
Section titled “License”MIT
Interfaces
Section titled “Interfaces”DeepgramOptions
Section titled “DeepgramOptions”Defined in: provider-deepgram/src/index.ts:22
Options for createDeepgramASR. Extends CredentialOptions and
DeepgramQueryOptions; 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 listen endpoint. | - | provider-deepgram/src/index.ts:24 |
encoding? |
string |
Raw audio encoding when not inferred from the runtime (e.g. linear16). |
DeepgramQueryOptions.encoding |
provider-deepgram/src/decode.ts:14 |
fetch? |
FetchLike |
Custom fetch implementation (tests / React Native polyfills). |
CredentialOptions.fetch |
provider-utils/dist/credential.d.ts:39 |
interimResults? |
boolean |
Request interim (is_final: false) Results; default from session options. |
DeepgramQueryOptions.interimResults |
provider-deepgram/src/decode.ts:18 |
language? |
string |
BCP-47 language; overridden by ASRSessionOptions.language when set. | DeepgramQueryOptions.language |
provider-deepgram/src/decode.ts:12 |
model? |
string |
Deepgram model id (e.g. nova-2, nova-3). |
DeepgramQueryOptions.model |
provider-deepgram/src/decode.ts:10 |
now? |
() => number |
Clock override for deterministic expiry checks in tests. | CredentialOptions.now |
provider-utils/dist/credential.d.ts:41 |
punctuate? |
boolean |
Ask Deepgram to add punctuation to transcripts. | DeepgramQueryOptions.punctuate |
provider-deepgram/src/decode.ts:20 |
sampleRate? |
number |
Sample rate in Hz for PCM encodings; overridden by session options when set. | DeepgramQueryOptions.sampleRate |
provider-deepgram/src/decode.ts:16 |
smartFormat? |
boolean |
Enable Deepgram smart formatting (numbers, dates, etc.). | DeepgramQueryOptions.smartFormat |
provider-deepgram/src/decode.ts:22 |
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-deepgram/src/index.ts:26 |
DeepgramQueryOptions
Section titled “DeepgramQueryOptions”Defined in: provider-deepgram/src/decode.ts:8
Query knobs mapped onto Deepgram’s /v1/listen WebSocket URL.
Extended by
Section titled “Extended by”Properties
Section titled “Properties”| Property | Type | Description | Defined in |
|---|---|---|---|
encoding? |
string |
Raw audio encoding when not inferred from the runtime (e.g. linear16). |
provider-deepgram/src/decode.ts:14 |
interimResults? |
boolean |
Request interim (is_final: false) Results; default from session options. |
provider-deepgram/src/decode.ts:18 |
language? |
string |
BCP-47 language; overridden by ASRSessionOptions.language when set. | provider-deepgram/src/decode.ts:12 |
model? |
string |
Deepgram model id (e.g. nova-2, nova-3). |
provider-deepgram/src/decode.ts:10 |
punctuate? |
boolean |
Ask Deepgram to add punctuation to transcripts. | provider-deepgram/src/decode.ts:20 |
sampleRate? |
number |
Sample rate in Hz for PCM encodings; overridden by session options when set. | provider-deepgram/src/decode.ts:16 |
smartFormat? |
boolean |
Enable Deepgram smart formatting (numbers, dates, etc.). | provider-deepgram/src/decode.ts:22 |
Variables
Section titled “Variables”DEFAULT_BASE_URL
Section titled “DEFAULT_BASE_URL”const DEFAULT_BASE_URL: "wss://api.deepgram.com/v1/listen" = 'wss://api.deepgram.com/v1/listen';Defined in: provider-deepgram/src/decode.ts:5
Default Deepgram live listen WebSocket endpoint.
Functions
Section titled “Functions”buildDeepgramUrl()
Section titled “buildDeepgramUrl()”function buildDeepgramUrl( baseUrl, options, asr): string;Defined in: provider-deepgram/src/decode.ts:33
Build the Deepgram listen WebSocket URL with query parameters.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
baseUrl |
string |
Listen endpoint; usually DEFAULT_BASE_URL or a broker-signed URL. |
options |
DeepgramQueryOptions |
Provider defaults for model / formatting. |
asr |
ASRSessionOptions |
Per-session overrides from ASRSessionOptions. |
Returns
Section titled “Returns”string
Fully qualified wss:// URL including search params.
createDeepgramASR()
Section titled “createDeepgramASR()”function createDeepgramASR(options): ASRProvider;Defined in: provider-deepgram/src/index.ts:45
Deepgram streaming ASR provider over WebSocket.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
options |
DeepgramOptions |
Credentials plus listen URL / query options. Prefer tokenBrokerUrl on clients. |
Returns
Section titled “Returns”decodeDeepgram()
Section titled “decodeDeepgram()”function decodeDeepgram(data): | ASRDecodeResult | undefined;Defined in: provider-deepgram/src/decode.ts:63
Decode a Deepgram Results message into a transcript result.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
data |
string |
Returns
Section titled “Returns”| ASRDecodeResult
| undefined