assemblyai
Version:
The AssemblyAI JavaScript SDK provides an easy-to-use interface for interacting with the AssemblyAI API, which supports async and real-time transcription, as well as the latest LeMUR models.
109 lines (91 loc) • 2.43 kB
text/typescript
import { AudioEncoding } from "..";
export type StreamingTranscriberParams = {
websocketBaseUrl?: string;
apiKey?: string;
token?: string;
sampleRate: number;
encoding?: AudioEncoding;
endOfTurnConfidenceThreshold?: number;
minEndOfTurnSilenceWhenConfident?: number;
maxTurnSilence?: number;
vadThreshold?: number;
formatTurns?: boolean;
filterProfanity?: boolean;
keyterms?: string[];
keytermsPrompt?: string[];
speechModel?: StreamingSpeechModel;
languageDetection?: boolean;
inactivityTimeout?: number;
};
export type StreamingEvents = "open" | "close" | "turn" | "error";
export type StreamingListeners = {
open?: (event: BeginEvent) => void;
close?: (code: number, reason: string) => void;
turn?: (event: TurnEvent) => void;
error?: (error: Error) => void;
};
export type StreamingSpeechModel =
| "universal-streaming-english"
| "universal-streaming-multilingual";
export type StreamingTokenParams = {
expires_in_seconds: number;
max_session_duration_seconds?: number;
};
export type StreamingTemporaryTokenResponse = {
token: string;
};
export type StreamingAudioData = ArrayBufferLike;
export type BeginEvent = {
type: "Begin";
id: string;
expires_at: number;
};
export type TurnEvent = {
type: "Turn";
turn_order: number;
turn_is_formatted: boolean;
end_of_turn: boolean;
transcript: string;
end_of_turn_confidence: number;
words: StreamingWord[];
language_code?: string;
language_confidence?: number;
};
export type StreamingWord = {
start: number;
end: number;
confidence: number;
text: string;
word_is_final: boolean;
};
export type TerminationEvent = {
type: "Termination";
audio_duration_seconds: number;
session_duration_seconds: number;
};
export type StreamingTerminateSession = {
type: "Terminate";
};
export type StreamingUpdateConfiguration = {
type: "UpdateConfiguration";
end_of_turn_confidence_threshold?: number;
min_end_of_turn_silence_when_confident?: number;
max_turn_silence?: number;
vad_threshold?: number;
format_turns?: boolean;
};
export type StreamingForceEndpoint = {
type: "ForceEndpoint";
};
export type ErrorEvent = {
error: string;
};
export type StreamingEventMessage =
| BeginEvent
| TurnEvent
| TerminationEvent
| ErrorEvent;
export type StreamingOperationMessage =
| StreamingUpdateConfiguration
| StreamingForceEndpoint
| StreamingTerminateSession;