49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
/**
|
|
* Minimal Web Speech API (Speech Recognition) types for browsers that support it.
|
|
* Full types: @types/dom-speech-recognition
|
|
*/
|
|
interface SpeechRecognitionResultList {
|
|
readonly length: number;
|
|
item(index: number): SpeechRecognitionResult;
|
|
[index: number]: SpeechRecognitionResult;
|
|
}
|
|
|
|
interface SpeechRecognitionResult {
|
|
readonly length: number;
|
|
readonly isFinal: boolean;
|
|
item(index: number): SpeechRecognitionAlternative;
|
|
[index: number]: SpeechRecognitionAlternative;
|
|
}
|
|
|
|
interface SpeechRecognitionAlternative {
|
|
readonly transcript: string;
|
|
readonly confidence: number;
|
|
}
|
|
|
|
interface SpeechRecognitionEvent extends Event {
|
|
readonly resultIndex: number;
|
|
readonly results: SpeechRecognitionResultList;
|
|
}
|
|
|
|
interface SpeechRecognition extends EventTarget {
|
|
continuous: boolean;
|
|
interimResults: boolean;
|
|
lang: string;
|
|
onresult: ((event: SpeechRecognitionEvent) => void) | null;
|
|
onerror: ((event: Event) => void) | null;
|
|
onend: (() => void) | null;
|
|
start(): void;
|
|
stop(): void;
|
|
abort(): void;
|
|
}
|
|
|
|
interface SpeechRecognitionConstructor {
|
|
new (): SpeechRecognition;
|
|
}
|
|
|
|
interface Window {
|
|
SpeechRecognition?: SpeechRecognitionConstructor;
|
|
webkitSpeechRecognition?: SpeechRecognitionConstructor;
|
|
}
|
|
|
|
declare var SpeechRecognition: SpeechRecognitionConstructor | undefined;
|