UNPKG

murmuraba

Version:

Real-time audio noise reduction with advanced chunked processing for web applications

81 lines 2.75 kB
import { EventEmitter } from './event-emitter'; import { MurmubaraConfig, EngineEvents, StreamController, DiagnosticInfo, DiagnosticReport, ProcessingMetrics, ChunkConfig, EngineState } from '../types'; export declare class MurmubaraEngine extends EventEmitter<EngineEvents> { private config; private stateManager; private logger; private workerManager; private metricsManager; private audioContext?; private activeStreams; private wasmModule?; private rnnoiseState?; private inputPtr?; private outputPtr?; private initPromise?; private cleanupTimer?; private errorHistory; private agcEnabled; private agc?; private audioWorkletEngine?; private useAudioWorklet; private inputGainNode?; private inputGain; private eventBridge; private bridgeToken; constructor(config?: MurmubaraConfig); private setupEventForwarding; private setupAutoCleanup; initialize(): Promise<void>; private performInitialization; private checkEnvironmentSupport; private getMissingFeatures; private initializeAudioContext; private initializeAudioWorkletEngine; private loadWasmModuleWithTimeout; private recordError; private initializeDegraded; private loadWasmModule; private warmupModel; private processFrame; processStream(stream: MediaStream, chunkConfig?: ChunkConfig): Promise<StreamController>; private createStreamController; private createAudioWorkletStreamController; private createScriptProcessorStreamController; isAGCEnabled(): boolean; setAGCEnabled(enabled: boolean): void; getAGCConfig(): { targetLevel: number; maxGain: number; enabled: boolean; }; getReductionFactor(level?: string): number; private generateStreamId; getState(): EngineState; isUsingAudioWorklet(): boolean; destroy(force?: boolean): Promise<void>; getMetrics(): ProcessingMetrics; onMetricsUpdate(callback: (metrics: ProcessingMetrics) => void): void; isActive(): boolean; /** * Set the input gain level dynamically * @param gain - Gain value between 0.5 and 3.0 */ setInputGain(gain: number): void; /** * Get the current input gain level */ getInputGain(): number; getDiagnostics(): DiagnosticInfo; private getBrowserName; private getBrowserVersion; private getAudioAPIsSupported; runDiagnosticTests(): Promise<DiagnosticReport>; /** * Process a WAV file with RNNoise * @param arrayBuffer WAV file as ArrayBuffer * @returns Processed WAV file as ArrayBuffer */ processFile(arrayBuffer: ArrayBuffer): Promise<ArrayBuffer>; } //# sourceMappingURL=murmuraba-engine.d.ts.map