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.
211 lines (190 loc) • 4.64 kB
text/typescript
// this file is generated by typescript/scripts/generate-types.ts
/* tslint:disable */
/* eslint-disable */
import { LiteralUnion } from "./helpers";
/** OneOf type helpers */
type Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };
type XOR<T, U> = T | U extends object
? (Without<T, U> & U) | (Without<U, T> & T)
: T | U;
type OneOf<T extends any[]> = T extends [infer Only]
? Only
: T extends [infer A, infer B, ...infer Rest]
? OneOf<[XOR<A, B>, ...Rest]>
: never;
/* eslint-enable */
/**
* Binary audio data
*/
export type AudioData = ArrayBufferLike;
/**
* The encoding of the audio data
* @defaultValue "pcm_s16"le
*/
export type AudioEncoding = "pcm_s16le" | "pcm_mulaw";
/**
* Configure the threshold for how long to wait before ending an utterance. Default is 700ms.
*/
export type ConfigureEndUtteranceSilenceThreshold = {
/**
* The duration threshold in milliseconds
*/
end_utterance_silence_threshold: number;
};
/**
* Transcript text at the end of an utterance with punctuation and casing.
*/
export type FinalTranscript = RealtimeBaseTranscript & {
/**
* Describes the type of message
*/
message_type: "FinalTranscript";
/**
* Whether the text is punctuated and cased
*/
punctuated: boolean;
/**
* Whether the text is formatted, for example Dollar -> $
*/
text_formatted: boolean;
};
/**
* Manually end an utterance
*/
export type ForceEndUtterance = {
/**
* A boolean value to communicate that you wish to force the end of the utterance
*/
force_end_utterance: boolean;
};
export type MessageType =
| "SessionBegins"
| "PartialTranscript"
| "FinalTranscript"
| "SessionInformation"
| "SessionTerminated";
/**
* As you send audio data to the API, the API immediately starts responding with Partial Transcript results.
*/
export type PartialTranscript = RealtimeBaseTranscript & {
/**
* Describes the type of message
*/
message_type: "PartialTranscript";
};
export type RealtimeBaseMessage = {
/**
* Describes the type of the message
*/
message_type: MessageType;
};
export type RealtimeBaseTranscript = {
/**
* End time of audio sample relative to session start, in milliseconds
*/
audio_end: number;
/**
* Start time of audio sample relative to session start, in milliseconds
*/
audio_start: number;
/**
* The confidence score of the entire transcription, between 0 and 1
*/
confidence: number;
/**
* The timestamp for the partial transcript
*/
created: Date;
/**
* The partial transcript for your audio
*/
text: string;
/**
* An array of objects, with the information for each word in the transcription text.
* Includes the start and end time of the word in milliseconds, the confidence score of the word, and the text, which is the word itself.
*/
words: Word[];
};
/**
* Error message
*/
export type RealtimeError = {
error: string;
};
export type RealtimeMessage =
| SessionBegins
| PartialTranscript
| FinalTranscript
| SessionInformation
| SessionTerminated
| RealtimeError;
export type RealtimeTranscript = PartialTranscript | FinalTranscript;
export type RealtimeTranscriptType = "PartialTranscript" | "FinalTranscript";
/**
* Session start
*/
export type SessionBegins = RealtimeBaseMessage & {
/**
* Timestamp when this session will expire
*/
expires_at: Date;
/**
* Describes the type of the message
*/
message_type: "SessionBegins";
/**
* Unique identifier for the established session
*/
session_id: string;
};
/**
* Information about the session
* Information about the session that is concluding.
* This message is sent at the end of the session, before the SessionTerminated message.
*/
export type SessionInformation = RealtimeBaseMessage & {
/**
* The total duration of the audio in seconds
*/
audio_duration_seconds: number;
/**
* Describes the type of the message
*/
message_type: "SessionInformation";
};
/**
* Session terminated
*/
export type SessionTerminated = RealtimeBaseMessage & {
/**
* Describes the type of the message
*/
message_type: "SessionTerminated";
};
/**
* Terminate session
*/
export type TerminateSession = {
/**
* Set to true to end your streaming session forever
*/
terminate_session: boolean;
};
export type Word = {
/**
* Confidence score of the word
*/
confidence: number;
/**
* End time of the word in milliseconds
*/
end: number;
/**
* Start time of the word in milliseconds
*/
start: number;
/**
* The word itself
*/
text: string;
};