Api
API
This page describes the public protocol and SDK-facing shapes that other apps should rely on.
RPC Methods
Health and Runtime
healthdoctor.run
Models
models.listmodels.installmodels.preload
Warm-Up
warmup.statuswarmup.startwarmup.schedule
Transcription
transcribe.filetranscribe.startSessiontranscribe.stopSessiontranscribe.cancelSession
Stable dimensions
These values should remain available anywhere the runtime records or returns performance information:
type VoxRoute =
| "transcribe.file"
| "transcribe.startSession"
| "transcribe.stopSession"
| "transcribe.cancelSession"
| "warmup.status"
| "warmup.start"
| "warmup.schedule";
interface PerformanceSample {
clientId: string;
route: VoxRoute | string;
modelId: string;
audioDurationMs?: number;
inferenceMs?: number;
totalMs?: number;
}
Core TypeScript SDK Entry Points
VoxClient
connect()disconnect()doctor()listModels()installModel()preloadModel()getWarmupStatus()startWarmup()scheduleWarmup()transcribeFile()createLiveSession()
FileTranscriptionResult
modelIdtextelapsedMsmetrics
TranscriptionMetrics
traceIdaudioDurationMsinputByteswasPreloadedfileCheckMsmodelCheckMsmodelLoadMsaudioLoadMsaudioPrepareMsinferenceMstotalMsrealtimeFactor
Interface shapes
interface TranscriptionMetrics {
traceId: string;
audioDurationMs?: number;
inputBytes?: number;
wasPreloaded?: boolean;
fileCheckMs?: number;
modelCheckMs?: number;
modelLoadMs?: number;
audioLoadMs?: number;
audioPrepareMs?: number;
inferenceMs?: number;
totalMs?: number;
realtimeFactor?: number;
}
interface FileTranscriptionResult {
modelId: string;
text: string;
elapsedMs: number;
metrics?: TranscriptionMetrics;
}
Warm-up response expectations
Warm-up APIs should make these states observable:
type WarmupState = "idle" | "scheduled" | "warming" | "ready" | "failed";
That state is useful to apps because it lets them distinguish:
- a runtime that has not been asked to warm
- a runtime that is actively warming
- a runtime that is ready for hot-path transcription