adapters/base-adapter
Voice Router SDK - Speechmatics 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()
protectedcreateErrorResponse(error,statusCode?,code?):UnifiedTranscriptResponse
Helper method to create error responses with stack traces
Parameters
| Parameter | Type | Description |
|---|---|---|
error | unknown | Error object or unknown error |
statusCode? | number | Optional HTTP status code |
code? | ErrorCode | Optional error code (defaults to extracted or UNKNOWN_ERROR) |
Returns
getAxiosConfig()
protectedgetAxiosConfig(authHeaderName,authHeaderValue?):object
Build axios config for generated API client functions
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
authHeaderName | string | "Authorization" | Header name for API key (e.g., "Authorization", "x-gladia-key") |
authHeaderValue? | (apiKey) => string | undefined | Optional 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()
abstractgetTranscript(transcriptId):Promise<UnifiedTranscriptResponse<TranscriptionProvider>>
Get transcription result by ID Used to poll for results after async submission
Parameters
| Parameter | Type |
|---|---|
transcriptId | string |
Returns
Promise<UnifiedTranscriptResponse<TranscriptionProvider>>
Implementation of
TranscriptionAdapter.getTranscript
initialize()
initialize(
config):void
Initialize the adapter with configuration
Parameters
| Parameter | Type |
|---|---|
config | ProviderConfig |
Returns
void
Implementation of
TranscriptionAdapter.initialize
pollForCompletion()
protectedpollForCompletion(transcriptId,options?):Promise<UnifiedTranscriptResponse<TranscriptionProvider>>
Generic polling helper for async transcription jobs
Polls getTranscript() until job completes or times out.
Parameters
| Parameter | Type | Description |
|---|---|---|
transcriptId | string | Job/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()
abstracttranscribe(audio,options?):Promise<UnifiedTranscriptResponse<TranscriptionProvider>>
Submit audio for transcription (async) Returns immediately with a job ID that can be polled
Parameters
| Parameter | Type |
|---|---|
audio | AudioInput |
options? | TranscribeOptions |
Returns
Promise<UnifiedTranscriptResponse<TranscriptionProvider>>
Implementation of
TranscriptionAdapter.transcribe
validateConfig()
protectedvalidateConfig():void
Helper method to validate configuration
Returns
void
Constructors
Constructor
new BaseAdapter():
BaseAdapter
Returns
Properties
baseUrl
abstractprotectedbaseUrl:string
Base URL for provider API (must be defined by subclass)
capabilities
abstractreadonlycapabilities:ProviderCapabilities
Provider capabilities
Implementation of
TranscriptionAdapter.capabilities
name
abstractreadonlyname:TranscriptionProvider
Provider name
Implementation of
config?
protectedoptionalconfig:ProviderConfig
Interfaces
ProviderConfig
Provider configuration
Extended by
Properties
apiKey
apiKey:
string
API key for authentication
baseUrl?
optionalbaseUrl:string
Base API URL (optional, uses provider default if not specified)
headers?
optionalheaders:Record<string,string>
Custom headers to include in requests
options?
optionaloptions:Record<string,unknown>
Additional provider-specific options
timeout?
optionaltimeout: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
| Parameter | Type |
|---|---|
transcriptId | string |
Returns
Promise<UnifiedTranscriptResponse<TranscriptionProvider>>
initialize()
initialize(
config):void
Initialize the adapter with configuration
Parameters
| Parameter | Type |
|---|---|
config | ProviderConfig |
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
| Parameter | Type |
|---|---|
audio | AudioInput |
options? | TranscribeOptions |
Returns
Promise<UnifiedTranscriptResponse<TranscriptionProvider>>
deleteTranscript()?
optionaldeleteTranscript(transcriptId):Promise<{success:boolean; }>
Delete a transcription Not all providers support deletion
Parameters
| Parameter | Type |
|---|---|
transcriptId | string |
Returns
Promise<{ success: boolean; }>
getRawClient()?
optionalgetRawClient():unknown
Get provider-specific raw client For advanced users who need direct access to provider APIs
Returns
unknown
listTranscripts()?
optionallistTranscripts(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
| Parameter | Type |
|---|---|
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()?
optionaltranscribeStream(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
| Parameter | Type | Description |
|---|---|---|
options? | StreamingOptions | Streaming configuration options |
callbacks? | StreamingCallbacks | Event 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()?
optionaltranscribeStreamIterator(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
| Parameter | Type |
|---|---|
audioStream | ReadableStream |
options? | StreamingOptions |
Returns
AsyncIterable<StreamEvent>
Deprecated
Prefer transcribeStream() with callbacks for better control
Properties
capabilities
readonlycapabilities:ProviderCapabilities
Provider capabilities
name
readonlyname:TranscriptionProvider
Provider name