VoiceRouter

adapters/base-adapter

Voice Router SDK - Gladia Provider / adapters/base-adapter

adapters/base-adapter

Classes

abstract BaseAdapter

Abstract base class for adapters (optional convenience) Providers can extend this or implement TranscriptionAdapter directly

Extended by

Implements

Methods

createErrorResponse()

protected createErrorResponse(error, statusCode?, code?): UnifiedTranscriptResponse

Helper method to create error responses with stack traces

Parameters
ParameterTypeDescription
errorunknownError object or unknown error
statusCode?numberOptional HTTP status code
code?ErrorCodeOptional error code (defaults to extracted or UNKNOWN_ERROR)
Returns

UnifiedTranscriptResponse

getAxiosConfig()

protected getAxiosConfig(authHeaderName, authHeaderValue?): object

Build axios config for generated API client functions

Parameters
ParameterTypeDefault valueDescription
authHeaderNamestring"Authorization"Header name for API key (e.g., "Authorization", "x-gladia-key")
authHeaderValue?(apiKey) => stringundefinedOptional function to format auth header value (defaults to raw API key)
Returns

object

Axios config object

baseURL

baseURL: string

headers

headers: Record<string, string>

timeout

timeout: number

getTranscript()

abstract getTranscript(transcriptId): Promise<UnifiedTranscriptResponse<TranscriptionProvider>>

Get transcription result by ID Used to poll for results after async submission

Parameters
ParameterType
transcriptIdstring
Returns

Promise<UnifiedTranscriptResponse<TranscriptionProvider>>

Implementation of

TranscriptionAdapter.getTranscript

initialize()

initialize(config): void

Initialize the adapter with configuration

Parameters
ParameterType
configProviderConfig
Returns

void

Implementation of

TranscriptionAdapter.initialize

pollForCompletion()

protected pollForCompletion(transcriptId, options?): Promise<UnifiedTranscriptResponse<TranscriptionProvider>>

Generic polling helper for async transcription jobs

Polls getTranscript() until job completes or times out.

Parameters
ParameterTypeDescription
transcriptIdstringJob/transcript ID to poll
options?{ intervalMs?: number; maxAttempts?: number; }Polling configuration
options.intervalMs?number-
options.maxAttempts?number-
Returns

Promise<UnifiedTranscriptResponse<TranscriptionProvider>>

Final transcription result

transcribe()

abstract transcribe(audio, options?): Promise<UnifiedTranscriptResponse<TranscriptionProvider>>

Submit audio for transcription (async) Returns immediately with a job ID that can be polled

Parameters
ParameterType
audioAudioInput
options?TranscribeOptions
Returns

Promise<UnifiedTranscriptResponse<TranscriptionProvider>>

Implementation of

TranscriptionAdapter.transcribe

validateConfig()

protected validateConfig(): void

Helper method to validate configuration

Returns

void

Constructors

Constructor

new BaseAdapter(): BaseAdapter

Returns

BaseAdapter

Properties

baseUrl

abstract protected baseUrl: string

Base URL for provider API (must be defined by subclass)

capabilities

abstract readonly capabilities: ProviderCapabilities

Provider capabilities

Implementation of

TranscriptionAdapter.capabilities

name

abstract readonly name: TranscriptionProvider

Provider name

Implementation of

TranscriptionAdapter.name

config?

protected optional config: ProviderConfig

Interfaces

ProviderConfig

Provider configuration

Properties

apiKey

apiKey: string

API key for authentication

baseUrl?

optional baseUrl: string

Base API URL (optional, uses provider default if not specified)

headers?

optional headers: Record<string, string>

Custom headers to include in requests

options?

optional options: Record<string, unknown>

Additional provider-specific options

timeout?

optional timeout: number

Request timeout in milliseconds

TranscriptionAdapter

Base adapter interface that all provider adapters must implement

Methods

getTranscript()

getTranscript(transcriptId): Promise<UnifiedTranscriptResponse<TranscriptionProvider>>

Get transcription result by ID Used to poll for results after async submission

Parameters
ParameterType
transcriptIdstring
Returns

Promise<UnifiedTranscriptResponse<TranscriptionProvider>>

initialize()

initialize(config): void

Initialize the adapter with configuration

Parameters
ParameterType
configProviderConfig
Returns

void

transcribe()

transcribe(audio, options?): Promise<UnifiedTranscriptResponse<TranscriptionProvider>>

Submit audio for transcription (async) Returns immediately with a job ID that can be polled

Parameters
ParameterType
audioAudioInput
options?TranscribeOptions
Returns

Promise<UnifiedTranscriptResponse<TranscriptionProvider>>

deleteTranscript()?

optional deleteTranscript(transcriptId): Promise<{ success: boolean; }>

Delete a transcription Not all providers support deletion

Parameters
ParameterType
transcriptIdstring
Returns

Promise<{ success: boolean; }>

getRawClient()?

optional getRawClient(): unknown

Get provider-specific raw client For advanced users who need direct access to provider APIs

Returns

unknown

listTranscripts()?

optional listTranscripts(options?): Promise<{ transcripts: UnifiedTranscriptResponse<TranscriptionProvider>[]; hasMore?: boolean; total?: number; }>

List recent transcriptions with filtering

Supports date/time filtering, status filtering, and pagination. Not all providers support all options - use provider-specific passthrough for full control.

Parameters
ParameterType
options?ListTranscriptsOptions
Returns

Promise<{ transcripts: UnifiedTranscriptResponse<TranscriptionProvider>[]; hasMore?: boolean; total?: number; }>

Example
const { transcripts } = await adapter.listTranscripts({
  afterDate: '2026-01-01',
  beforeDate: '2026-01-31',
  status: 'completed',
  limit: 50
})
transcribeStream()?

optional transcribeStream(options?, callbacks?): Promise<StreamingSession>

Stream audio for real-time transcription (callback-based) Only available if capabilities.streaming is true

This method creates a streaming session that accepts audio chunks and returns transcription results via callbacks.

Parameters
ParameterTypeDescription
options?StreamingOptionsStreaming configuration options
callbacks?StreamingCallbacksEvent callbacks for transcription results
Returns

Promise<StreamingSession>

Promise that resolves with a StreamingSession

Example
const session = await adapter.transcribeStream({
  encoding: 'linear16',
  sampleRate: 16000,
  language: 'en'
}, {
  onTranscript: (event) => console.log(event.text),
  onError: (error) => console.error(error)
});

// Send audio chunks
await session.sendAudio({ data: audioBuffer });

// Close when done
await session.close();
transcribeStreamIterator()?

optional transcribeStreamIterator(audioStream, options?): AsyncIterable<StreamEvent>

Stream audio for real-time transcription (async iterator) Alternative streaming API that returns an async iterable Only available if capabilities.streaming is true

Parameters
ParameterType
audioStreamReadableStream
options?StreamingOptions
Returns

AsyncIterable<StreamEvent>

Deprecated

Prefer transcribeStream() with callbacks for better control

Properties

capabilities

readonly capabilities: ProviderCapabilities

Provider capabilities

name

readonly name: TranscriptionProvider

Provider name

On this page