@omnimedia/omnitool
Version:
open source video processing tools
20 lines (19 loc) • 835 B
TypeScript
import { Pub } from "@e280/stz";
import { AsSchematic } from "@e280/comrade";
import { LoaderEvents } from "../../../common/loader.js";
import { ProgressItem, TranscriptionChunk, TranscriptionMessage, TranscriptionResult, Word } from "../parts/types.js";
export type WhisperSchematic = AsSchematic<{
work: {
transcribe(input: TranscriptionMessage): Promise<TranscriptionResult | null>;
};
host: {
updateModelLoadProgress(item: ProgressItem): Promise<void>;
deliverTranscriptionChunk(chunk: TranscriptionChunk): Promise<void>;
updateTps(value: number): Promise<void>;
updateTranscribeProgress(value: number): Promise<void>;
};
}>;
export interface SpeechRecognizerHostEvents extends LoaderEvents {
onTranscriptionChunk: Pub<Word[]>;
onTranscribeProgress: Pub<[number]>;
}