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.
134 lines (133 loc) • 4.51 kB
TypeScript
/// <reference types="node" />
import { LiteralUnion } from "../helpers";
/**
* The speech models available on the synchronous transcription API.
*/
export type SyncSpeechModel = LiteralUnion<"universal-3-5-pro", string>;
/**
* The default speech model for synchronous transcription.
*/
export declare const defaultSyncSpeechModel: SyncSpeechModel;
/**
* Audio input for synchronous transcription: a local file path or
* data URL (file system access requires Node.js, Bun, or Deno), raw audio
* bytes, a Blob/File, or a readable stream.
*
* URLs are not accepted — the sync API has no URL ingestion; use
* `client.transcripts` for URL or asynchronous transcription.
*/
export type SyncAudioInput = string | Uint8Array | ArrayBuffer | Blob | ReadableStream<Uint8Array> | NodeJS.ReadableStream;
/**
* Options for a synchronous transcription request.
*
* `sample_rate` and `channels` are required only for raw PCM audio — WAV
* carries them in its header. `model` is sent as the `X-AAI-Model` routing
* header and is never included in the request body.
*/
export type SyncTranscriptionConfig = {
/**
* The sync speech model to route to, sent as the `X-AAI-Model` header.
* Defaults to `"universal-3-5-pro"`.
*/
model?: SyncSpeechModel;
/**
* Custom transcription instruction. Maximum 4096 characters — longer
* prompts are rejected.
*/
prompt?: string;
/**
* Terms to bias the decoder towards. Whitespace is stripped and empty
* terms are dropped. Maximum 2048 characters in total — longer lists are
* rejected.
*/
keyterms_prompt?: string[];
/**
* Prior turns from the same conversation, oldest first, most recent last.
* A single string is treated as one turn. Capped at 100 turns and 4096
* characters in total — over-cap context is trimmed (oldest turns dropped
* first), not rejected.
*/
conversation_context?: string | string[];
/**
* ISO 639-1 codes for the language(s) of the audio — a single-element
* array (e.g. `["es"]`) for monolingual audio, or several codes (e.g.
* `["en", "es"]`) for multilingual audio. Ignored when `prompt` is set.
* Defaults to English.
*/
language_codes?: string[];
/**
* The source sample rate in Hz. Required for raw PCM audio; ignored for
* WAV.
*/
sample_rate?: number;
/**
* The channel count (1 for mono, 2 for stereo). Required for raw PCM
* audio; ignored for WAV.
*/
channels?: number;
/**
* Whether to compute per-word `start`/`end` timestamps. When `true`,
* words carry accurate timestamps at a small latency cost. Defaults to
* `false`: no timestamps are returned.
*/
timestamps?: boolean;
};
/**
* Client-side options for a synchronous transcription request.
* These are not sent to the server.
*/
export type SyncTranscribeOptions = {
/**
* The request timeout in milliseconds. Defaults to 60 000, which is kept
* above the server's 30 s deadline so the client doesn't race it.
*/
timeout?: number;
};
/**
* A single word in a sync transcript.
*
* `start`/`end` are in milliseconds and present only when the request set
* `timestamps: true`; otherwise they are omitted.
*/
export type SyncWord = {
/** The text of the word. */
text: string;
/**
* The start time of the word in milliseconds. Absent unless `timestamps`
* was requested.
*/
start?: number;
/**
* The end time of the word in milliseconds. Absent unless `timestamps`
* was requested.
*/
end?: number;
/** The confidence score of the word, in the range 0-1. */
confidence: number;
};
/**
* The result of a synchronous transcription request.
*/
export type SyncTranscriptResponse = {
/** The full transcript text. */
text: string;
/**
* Per-word confidence, plus `start`/`end` timings when the request set
* `timestamps: true`.
*/
words: SyncWord[];
/** The overall transcript confidence, in the range 0-1. */
confidence: number;
/** The total audio duration in milliseconds. */
audio_duration_ms: number;
/**
* The server-generated UUID for this request. Record it to correlate a
* request with support.
*/
session_id: string;
/**
* The end-to-end server-side request time in milliseconds. `undefined`
* when the server predates the field.
*/
request_time_ms?: number;
};