@swankylegg/voice-io
Version:
A browser-based speech recognition and synthesis assistant
77 lines (67 loc) • 1.9 kB
TypeScript
interface SpeechRecognitionErrorEvent extends Event {
error: any;
message: string;
}
interface SpeechRecognitionEvent extends Event {
resultIndex: number;
results: SpeechRecognitionResultList;
}
interface SpeechRecognitionResultList {
length: number;
item(index: number): SpeechRecognitionResult;
[index: number]: SpeechRecognitionResult;
}
interface SpeechRecognitionResult {
isFinal: boolean;
length: number;
item(index: number): SpeechRecognitionAlternative;
[index: number]: SpeechRecognitionAlternative;
}
interface SpeechRecognitionAlternative {
transcript: string;
confidence: number;
}
interface SpeechRecognition extends EventTarget {
continuous: boolean;
interimResults: boolean;
lang: string;
maxAlternatives: number;
onerror: ((this: SpeechRecognition, ev: SpeechRecognitionErrorEvent) => any) | null;
onend: ((this: SpeechRecognition, ev: Event) => any) | null;
onresult: ((this: SpeechRecognition, ev: SpeechRecognitionEvent) => any) | null;
onstart: ((this: SpeechRecognition, ev: Event) => any) | null;
onspeechend: ((this: SpeechRecognition, ev: Event) => any) | null;
start(): void;
stop(): void;
}
interface SpeechSynthesisErrorEvent extends Event {
error: string;
utterance: SpeechSynthesisUtterance;
}
interface SpeechSynthesisVoice {
default: boolean;
lang: string;
localService: boolean;
name: string;
voiceURI: string;
}
declare global {
const SpeechRecognition: {
new(): SpeechRecognition;
prototype: SpeechRecognition;
};
interface Window {
SpeechRecognition: typeof SpeechRecognition;
webkitSpeechRecognition: typeof SpeechRecognition;
}
}
export type {
SpeechRecognition,
SpeechRecognitionEvent,
SpeechRecognitionErrorEvent,
SpeechRecognitionResultList,
SpeechRecognitionResult,
SpeechRecognitionAlternative,
SpeechSynthesisErrorEvent,
SpeechSynthesisVoice
};