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
TypeScript
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