react-transcribe
Version:
React component for speech-to-text transcription with silence detection
45 lines (41 loc) • 1.5 kB
TypeScript
import * as React from 'react';
import { ReactNode } from 'react';
type TranscriptInfo = {
transcript: string;
interimTranscript: string;
resetTranscript: () => void;
};
type SpeechToggleInfo = {
isListening: boolean;
type: 'device';
};
interface SpeechToTextProps {
/** Callback triggered when speech is detected */
onSpeech?: (info: TranscriptInfo) => void;
/** Callback triggered when speech recognition is toggled on/off */
onSpeechToggle?: (info: SpeechToggleInfo) => void;
/** React children or render function */
children?: ReactNode | ((state: SpeechToTextState) => ReactNode);
/** Duration of silence before considering speech paused (ms) */
silenceDuration?: number;
/** Maximum silence duration before stopping (ms) */
maxSilenceDuration?: number;
/** When to start showing countdown (ms) */
countdownThreshold?: number;
/** Recognition language */
language?: string;
}
interface SpeechToTextState {
listening: boolean;
isActivelySpeaking: boolean;
silenceCountdown: number | null;
transcript: string;
interimTranscript: string;
browserSupportsSpeechRecognition: boolean;
resetTranscript: () => void;
startListening: () => void;
stopListening: () => void;
toggleListening: () => void;
}
declare const SpeechToText: React.FC<SpeechToTextProps>;
export { SpeechToText, SpeechToTextProps, SpeechToTextState, SpeechToggleInfo, TranscriptInfo, SpeechToText as default };