/** * Chirp Audio Processor with Real-time Streaming * * Advanced audio processing engine with real-time streaming capabilities, * AI-powered audio enhancement, and comprehensive signal processing. */ /// import { EventEmitter } from "events"; import { AudioConfig, RealTimeStreamingConfig, ServiceResponse, PerformanceMetrics } from "./interfaces.js"; export interface ChirpConfig { processing: ProcessingConfig; streaming: StreamingConfig; analysis: AnalysisConfig; enhancement: EnhancementConfig; codec: CodecConfig; } export interface ProcessingConfig { sampleRate: number; bitDepth: number; channels: number; frameSize: number; bufferSize: number; pipeline: PipelineConfig; } export interface PipelineConfig { stages: ProcessingStageConfig[]; parallel: boolean; realTime: boolean; latency: LatencyConfig; } export interface ProcessingStageConfig { name: string; type: "filter" | "enhancement" | "analysis" | "synthesis" | "effect"; enabled: boolean; priority: number; parameters: StageParameters; } export interface StageParameters { [key: string]: any; } export interface LatencyConfig { target: number; maximum: number; jitter: number; adaptive: boolean; } export interface StreamingConfig { protocols: ProtocolConfig[]; compression: CompressionConfig; adaptive: AdaptiveConfig; network: NetworkConfig; } export interface ProtocolConfig { type: "websocket" | "webrtc" | "rtmp" | "hls" | "dash"; enabled: boolean; priority: number; configuration: ProtocolSettings; } export interface ProtocolSettings { [key: string]: any; } export interface CompressionConfig { algorithm: "opus" | "aac" | "mp3" | "flac" | "vorbis"; bitrate: number; quality: number; complexity: number; vbr: boolean; } export interface AdaptiveConfig { enabled: boolean; bitrate: AdaptiveBitrate; quality: AdaptiveQuality; latency: AdaptiveLatency; } export interface AdaptiveBitrate { min: number; max: number; step: number; algorithm: "bandwidth" | "buffer" | "hybrid"; } export interface AdaptiveQuality { levels: QualityLevel[]; switching: SwitchingConfig; } export interface QualityLevel { name: string; bitrate: number; sampleRate: number; channels: number; } export interface SwitchingConfig { threshold: number; hysteresis: number; delay: number; } export interface AdaptiveLatency { target: number; range: [number, number]; adjustment: number; } export interface NetworkConfig { monitoring: NetworkMonitoring; optimization: NetworkOptimization; recovery: RecoveryConfig; } export interface NetworkMonitoring { bandwidth: boolean; latency: boolean; packetLoss: boolean; jitter: boolean; interval: number; } export interface NetworkOptimization { prioritization: boolean; buffering: BufferingConfig; prediction: PredictionConfig; } export interface BufferingConfig { size: number; adaptive: boolean; prefetch: boolean; } export interface PredictionConfig { enabled: boolean; algorithm: "linear" | "kalman" | "neural"; window: number; } export interface RecoveryConfig { errorCorrection: ErrorCorrectionConfig; redundancy: RedundancyConfig; retransmission: RetransmissionConfig; } export interface ErrorCorrectionConfig { fec: boolean; interleaving: boolean; redundancy: number; } export interface RedundancyConfig { enabled: boolean; level: number; adaptive: boolean; } export interface RetransmissionConfig { enabled: boolean; maxAttempts: number; timeout: number; } export interface AnalysisConfig { spectral: SpectralAnalysisConfig; temporal: TemporalAnalysisConfig; perceptual: PerceptualAnalysisConfig; ml: MLAnalysisConfig; } export interface SpectralAnalysisConfig { fft: FFTConfig; filterBank: FilterBankConfig; cepstral: CepstralConfig; chromagram: ChromagramConfig; } export interface FFTConfig { size: number; window: "hann" | "hamming" | "blackman" | "gaussian"; overlap: number; zeropadding: number; } export interface FilterBankConfig { type: "mel" | "bark" | "erb" | "linear"; filters: number; range: [number, number]; } export interface CepstralConfig { coefficients: number; liftering: number; delta: boolean; deltaDelta: boolean; } export interface ChromagramConfig { bins: number; tuning: number; norm: "l1" | "l2" | "max"; } export interface TemporalAnalysisConfig { envelope: EnvelopeConfig; onset: OnsetConfig; tempo: TempoConfig; rhythm: RhythmConfig; } export interface EnvelopeConfig { hopLength: number; frameLength: number; center: boolean; } export interface OnsetConfig { units: "time" | "frames"; backtrack: boolean; energy: number; } export interface TempoConfig { bpm: [number, number]; hop: number; aggregate: "mean" | "median" | "max"; } export interface RhythmConfig { beats: boolean; downbeats: boolean; meter: boolean; } export interface PerceptualAnalysisConfig { loudness: LoudnessConfig; pitch: PitchConfig; timbre: TimbreConfig; quality: QualityConfig; } export interface LoudnessConfig { standard: "lufs" | "rms" | "peak"; gating: boolean; shortTerm: number; momentary: number; } export interface PitchConfig { algorithm: "yin" | "pyin" | "swipe" | "crepe"; range: [number, number]; threshold: number; } export interface TimbreConfig { features: TimbreFeature[]; descriptors: TimbreDescriptor[]; } export interface TimbreFeature { name: string; enabled: boolean; parameters: any; } export interface TimbreDescriptor { name: string; statistics: string[]; } export interface QualityConfig { snr: boolean; thd: boolean; pesq: boolean; stoi: boolean; } export interface MLAnalysisConfig { models: MLModelConfig[]; inference: InferenceConfig; training: TrainingConfig; } export interface MLModelConfig { name: string; type: "classification" | "regression" | "detection" | "generation"; architecture: string; weights: string; enabled: boolean; } export interface InferenceConfig { batchSize: number; device: "cpu" | "gpu" | "auto"; precision: "fp16" | "fp32"; optimization: boolean; } export interface TrainingConfig { enabled: boolean; data: DataConfig; validation: ValidationConfig; checkpoints: CheckpointConfig; } export interface DataConfig { augmentation: boolean; normalization: boolean; splitting: SplittingConfig; } export interface ValidationConfig { metric: string[]; frequency: number; patience: number; } export interface CheckpointConfig { frequency: number; bestOnly: boolean; path: string; } export interface SplittingConfig { train: number; validation: number; test: number; } export interface EnhancementConfig { denoise: DenoiseConfig; dereverberation: DereverberationConfig; enhancement: SignalEnhancementConfig; restoration: RestorationConfig; } export interface DenoiseConfig { enabled: boolean; algorithm: "spectral" | "wiener" | "rnn" | "transformer"; aggressiveness: number; preservation: number; } export interface DereverberationConfig { enabled: boolean; algorithm: "spectral" | "linear_prediction" | "deep_learning"; strength: number; preservation: number; } export interface SignalEnhancementConfig { equalization: EqualizationConfig; dynamics: DynamicsConfig; spatialization: SpatializationConfig; } export interface EqualizationConfig { enabled: boolean; type: "graphic" | "parametric" | "linear_phase"; bands: EqualizerBand[]; automatic: boolean; } export interface EqualizerBand { frequency: number; gain: number; q: number; type: "peak" | "highpass" | "lowpass" | "shelf"; } export interface DynamicsConfig { compressor: CompressorConfig; limiter: LimiterConfig; gate: GateConfig; expander: ExpanderConfig; } export interface CompressorConfig { enabled: boolean; threshold: number; ratio: number; attack: number; release: number; makeup: number; } export interface LimiterConfig { enabled: boolean; threshold: number; release: number; lookahead: number; } export interface GateConfig { enabled: boolean; threshold: number; ratio: number; attack: number; hold: number; release: number; } export interface ExpanderConfig { enabled: boolean; threshold: number; ratio: number; attack: number; release: number; } export interface SpatializationConfig { enabled: boolean; algorithm: "binaural" | "ambisonics" | "vbap" | "wavefield"; room: RoomConfig; hrtf: HRTFConfig; } export interface RoomConfig { size: [number, number, number]; materials: MaterialConfig[]; absorption: number; diffusion: number; } export interface MaterialConfig { surface: string; absorption: number[]; diffusion: number[]; } export interface HRTFConfig { database: string; interpolation: boolean; personalization: boolean; } export interface RestorationConfig { declipping: DeclippingConfig; denoising: AdvancedDenoiseConfig; bandwidth: BandwidthConfig; } export interface DeclippingConfig { enabled: boolean; algorithm: "cubic_spline" | "ar_model" | "sparse_coding"; threshold: number; } export interface AdvancedDenoiseConfig { enabled: boolean; type: "broadband" | "tonal" | "impulsive" | "all"; learning: boolean; adaptation: boolean; } export interface BandwidthConfig { extension: boolean; algorithm: "hfr" | "spectral_folding" | "neural"; targetRange: [number, number]; } export interface CodecConfig { encoders: EncoderConfig[]; decoders: DecoderConfig[]; transcoding: TranscodingConfig; } export interface EncoderConfig { name: string; format: string; bitrates: number[]; quality: QualitySettings[]; realTime: boolean; } export interface QualitySettings { level: string; bitrate: number; complexity: number; parameters: any; } export interface DecoderConfig { name: string; format: string; optimizations: string[]; errorRecovery: boolean; } export interface TranscodingConfig { enabled: boolean; formats: FormatMapping[]; quality: TranscodeQuality; } export interface FormatMapping { input: string; output: string; priority: number; } export interface TranscodeQuality { preserve: boolean; enhance: boolean; target: string; } export interface AudioStream { id: string; config: AudioConfig; status: "idle" | "active" | "paused" | "error"; metrics: StreamMetrics; buffer: AudioBuffer; } export interface StreamMetrics { latency: number; jitter: number; packetLoss: number; bandwidth: number; quality: number; errors: number; } export interface AudioBuffer { size: number; utilization: number; underruns: number; overruns: number; } export interface ProcessingResult { id: string; input: AudioData; output: AudioData; analysis: AnalysisResult; enhancement: EnhancementResult; quality: QualityMetrics; performance: ProcessingPerformance; } export interface AudioData { format: AudioFormat; samples: number[][]; metadata: AudioMetadata; } export interface AudioFormat { sampleRate: number; bitDepth: number; channels: number; encoding: string; } export interface AudioMetadata { duration: number; rms: number; peak: number; lufs: number; dynamic: number; } export interface AnalysisResult { spectral: SpectralResult; temporal: TemporalResult; perceptual: PerceptualResult; ml: MLResult; } export interface SpectralResult { spectrum: number[][]; mfcc: number[][]; chroma: number[][]; spectralCentroid: number[]; spectralRolloff: number[]; zeroCrossingRate: number[]; } export interface TemporalResult { envelope: number[]; onsets: number[]; tempo: number; beats: number[]; rhythm: RhythmAnalysis; } export interface RhythmAnalysis { meter: [number, number]; downbeats: number[]; complexity: number; } export interface PerceptualResult { loudness: LoudnessAnalysis; pitch: PitchAnalysis; timbre: TimbreAnalysis; quality: QualityAnalysis; } export interface LoudnessAnalysis { integrated: number; shortTerm: number[]; momentary: number[]; range: number; } export interface PitchAnalysis { fundamental: number[]; confidence: number[]; harmonics: number[][]; intonation: number; } export interface TimbreAnalysis { brightness: number; roughness: number; warmth: number; richness: number; descriptors: TimbreDescriptorResult[]; } export interface TimbreDescriptorResult { name: string; value: number; confidence: number; } export interface QualityAnalysis { snr: number; thd: number; pesq: number; stoi: number; mos: number; } export interface MLResult { predictions: MLPrediction[]; features: MLFeature[]; embeddings: number[][]; } export interface MLPrediction { model: string; task: string; prediction: any; confidence: number; } export interface MLFeature { name: string; value: number[]; importance: number; } export interface EnhancementResult { denoise: DenoiseResult; dereverberation: DereverberationResult; enhancement: SignalEnhancementResult; restoration: RestorationResult; } export interface DenoiseResult { applied: boolean; reduction: number; artifacts: number; quality: number; } export interface DereverberationResult { applied: boolean; reduction: number; preservation: number; quality: number; } export interface SignalEnhancementResult { equalization: EqualizationResult; dynamics: DynamicsResult; spatialization: SpatializationResult; } export interface EqualizationResult { applied: boolean; bands: BandResult[]; response: number[][]; } export interface BandResult { frequency: number; gain: number; applied: boolean; } export interface DynamicsResult { compression: CompressionResult; limiting: LimitingResult; gating: GatingResult; expansion: ExpansionResult; } export interface CompressionResult { applied: boolean; reduction: number; ratio: number; makeup: number; } export interface LimitingResult { applied: boolean; reduction: number; peaks: number; } export interface GatingResult { applied: boolean; reduction: number; threshold: number; } export interface ExpansionResult { applied: boolean; expansion: number; threshold: number; } export interface SpatializationResult { applied: boolean; algorithm: string; width: number; depth: number; } export interface RestorationResult { declipping: DeclippingResult; denoising: AdvancedDenoiseResult; bandwidth: BandwidthResult; } export interface DeclippingResult { applied: boolean; samples: number; quality: number; } export interface AdvancedDenoiseResult { applied: boolean; types: string[]; reduction: number; quality: number; } export interface BandwidthResult { applied: boolean; extension: [number, number]; quality: number; } export interface QualityMetrics { overall: number; technical: TechnicalQuality; perceptual: PerceptualQuality; enhancement: EnhancementQuality; } export interface TechnicalQuality { snr: number; thd: number; frequency: number; dynamic: number; phase: number; } export interface PerceptualQuality { clarity: number; fullness: number; naturalness: number; pleasantness: number; intelligibility: number; } export interface EnhancementQuality { improvement: number; artifacts: number; preservation: number; effectiveness: number; } export interface ProcessingPerformance { latency: number; throughput: number; cpuUsage: number; memoryUsage: number; realTimeFactor: number; } export declare class ChirpAudioProcessor extends EventEmitter { private logger; private config; private streams; private results; private processingEngine; private streamingEngine; private analysisEngine; private enhancementEngine; private codecManager; private performanceMonitor; constructor(config: ChirpConfig); /** * Initializes the audio processing engine */ initialize(): Promise; /** * Creates a new audio stream */ createStream(id: string, config: AudioConfig, streamingConfig?: RealTimeStreamingConfig): Promise>; /** * Processes audio data through the complete pipeline */ processAudio(audioData: AudioData, options?: ProcessingOptions): Promise>; /** * Starts real-time streaming for a stream */ startStreaming(streamId: string): Promise>; /** * Stops streaming for a stream */ stopStreaming(streamId: string): Promise>; /** * Gets stream status and metrics */ getStream(streamId: string): Promise>; /** * Gets processing result by ID */ getResult(resultId: string): Promise>; /** * Gets performance metrics */ getMetrics(): Promise>; private initializeComponents; private setupEventHandlers; private validateAudioConfig; private assessQuality; private calculateThroughput; private getCPUUsage; private getMemoryUsage; private calculateRealTimeFactor; private generateProcessingId; private generateRequestId; private createErrorResponse; private handleStreamData; private handleStreamError; private handleProcessingProgress; } interface ProcessingOptions { realTime?: boolean; quality?: string; latency?: number; enhancement?: boolean; } export {}; //# sourceMappingURL=chirp-audio-processor.d.ts.map