Skip to content

@ottervoice/provider-deepgram

Documentation


Documentation / @ottervoice/provider-deepgram

Deepgram real-time streaming ASR provider for OtterVoice over WebSocket.

Terminal window
npm install @ottervoice/core @ottervoice/provider-deepgram
import { 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.

Documentation · GitHub

MIT

Defined in: provider-deepgram/src/index.ts:22

Options for createDeepgramASR. Extends CredentialOptions and DeepgramQueryOptions; prefer tokenBrokerUrl on clients over a static key.

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

Defined in: provider-deepgram/src/decode.ts:8

Query knobs mapped onto Deepgram’s /v1/listen WebSocket URL.

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
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.

function buildDeepgramUrl(
baseUrl,
options,
asr): string;

Defined in: provider-deepgram/src/decode.ts:33

Build the Deepgram listen WebSocket URL with query 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.

string

Fully qualified wss:// URL including search params.


function createDeepgramASR(options): ASRProvider;

Defined in: provider-deepgram/src/index.ts:45

Deepgram streaming ASR provider over WebSocket.

Parameter Type Description
options DeepgramOptions Credentials plus listen URL / query options. Prefer tokenBrokerUrl on clients.

ASRProvider


function decodeDeepgram(data):
| ASRDecodeResult
| undefined;

Defined in: provider-deepgram/src/decode.ts:63

Decode a Deepgram Results message into a transcript result.

Parameter Type
data string

| ASRDecodeResult | undefined