@omnimedia/omnitool
Version:
open source video processing tools
24 lines (19 loc) • 770 B
text/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]>
}