UNPKG

voice-to-text-converter

Version:

A modern, lightweight Node.js package for speech-to-text conversion with support for multiple engines

78 lines 2.82 kB
import { EventEmitter } from 'events'; import { 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(filePath: string, 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 */ protected 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