@lakshmiprasanth/react-voice-to-text
Version:
A modern React package for voice-to-text conversion with real-time speech recognition and file upload support
77 lines • 2.78 kB
TypeScript
import { EventEmitter, ISpeechRecognitionEngine, SpeechRecognitionConfig, SpeechRecognitionResult, AudioInputConfig, SpeechRecognitionErrorType, SpeechRecognitionEvents } from '../types';
/**
* Base class for speech recognition engines
*/
export declare abstract class BaseSpeechRecognitionEngine extends EventEmitter implements ISpeechRecognitionEngine {
protected isRecording: boolean;
protected config: SpeechRecognitionConfig;
constructor();
/**
* Start speech recognition
*/
abstract start(audioConfig: AudioInputConfig, recognitionConfig?: SpeechRecognitionConfig): Promise<void>;
/**
* Stop speech recognition
*/
abstract stop(): Promise<void>;
/**
* Abort speech recognition
*/
abstract abort(): Promise<void>;
/**
* Check if engine is available
*/
abstract isAvailable(): boolean;
/**
* Get supported languages
*/
abstract getSupportedLanguages(): string[];
/**
* Process audio file directly
*/
abstract processFile(file: File, config?: SpeechRecognitionConfig): Promise<SpeechRecognitionResult[]>;
/**
* Process audio stream
*/
abstract processStream(stream: NodeJS.ReadableStream, config?: SpeechRecognitionConfig): Promise<SpeechRecognitionResult[]>;
/**
* Validate configuration
*/
protected validateConfig(config: SpeechRecognitionConfig): void;
/**
* Validate audio input configuration
*/
protected validateAudioConfig(audioConfig: AudioInputConfig): void;
/**
* Emit error event with proper error handling
*/
protected emitError(type: SpeechRecognitionErrorType, message: string, originalError?: Error): void;
/**
* Emit result event with validation
*/
protected emitResult(result: SpeechRecognitionResult): void;
/**
* Get default configuration merged with provided config
*/
protected getConfig(config?: SpeechRecognitionConfig): SpeechRecognitionConfig;
/**
* Check if currently recording
*/
get isActive(): boolean;
/**
* Set recording state
*/
protected setRecordingState(recording: boolean): void;
/**
* Clean up resources
*/
cleanup(): void;
/**
* Type-safe event emitter methods
*/
emit<K extends keyof SpeechRecognitionEvents>(event: K, ...args: Parameters<SpeechRecognitionEvents[K]>): boolean;
on<K extends keyof SpeechRecognitionEvents>(event: K, listener: SpeechRecognitionEvents[K]): this;
once<K extends keyof SpeechRecognitionEvents>(event: K, listener: SpeechRecognitionEvents[K]): this;
off<K extends keyof SpeechRecognitionEvents>(event: K, listener: SpeechRecognitionEvents[K]): this;
}
//# sourceMappingURL=base-engine.d.ts.map