/**
* Audio Processor - Chirp Audio Integration
*
* Comprehensive audio processing with Chirp voice generation,
* real-time streaming, voice cloning, and WebRTC integration
*/
///
///
///
import { EventEmitter } from "events";
import { AudioGenerationConfig, AudioGenerationRequest, AudioGenerationResponse, RealTimeConfig, MultimediaContext } from "../../types/multimedia.js";
export interface AudioProcessorMetrics {
totalRequests: number;
successfulRequests: number;
failedRequests: number;
streamingRequests: number;
realTimeRequests: number;
voiceCloningRequests: number;
effectsApplied: number;
totalDuration: number;
totalCost: number;
avgLatency: number;
cacheHits: number;
}
export interface AudioStreamChunk {
id: string;
data: Buffer;
format: string;
sampleRate: number;
channels: number;
timestamp: number;
sequenceNumber: number;
isLast: boolean;
metadata?: {
text?: string;
progress?: number;
emotion?: string;
confidence?: number;
};
}
export declare class AudioProcessor extends EventEmitter {
private logger;
private config;
private performance;
private cache;
private chirpAdapter;
private voiceCloner;
private effectsEngine;
private audioStreamer;
private webrtcManager;
private audioCache;
private vertexConnector;
private isInitialized;
private activeRequests;
private streamingSessions;
private metrics;
constructor(config: AudioGenerationConfig);
/**
* Initialize all audio processing components
*/
private initializeComponents;
/**
* Setup event handlers
*/
private setupEventHandlers;
/**
* Initialize the audio processor
*/
initialize(): Promise;
/**
* Generate audio using Chirp
*/
generateAudio(request: AudioGenerationRequest): Promise;
/**
* Generate audio with streaming
*/
generateAudioStream(request: AudioGenerationRequest): AsyncIterableIterator;
/**
* Process audio generation with full pipeline
*/
private processAudioGeneration;
/**
* Prepare custom voice using voice cloning
*/
private prepareCustomVoice;
/**
* Apply audio effects
*/
private applyAudioEffects;
/**
* Apply final processing (normalization, format conversion, etc.)
*/
private applyFinalProcessing;
/**
* Apply audio settings (format, quality, etc.)
*/
private applyAudioSettings;
/**
* Apply enterprise audio enhancements
*/
private applyEnterpriseAudioEnhancements;
/**
* Apply compression optimizations
*/
private applyCompressionOptimizations;
/**
* Audio format conversion
*/
private convertAudioFormat;
/**
* Audio resampling
*/
private resampleAudio;
/**
* Audio normalization
*/
private normalizeAudio;
/**
* Noise reduction
*/
private removeNoise;
/**
* Start real-time audio session
*/
startRealTimeSession(config: RealTimeConfig, context: MultimediaContext): Promise;
/**
* Process real-time audio input
*/
processRealTimeInput(sessionId: string, audioData: Buffer): Promise;
/**
* Check cache for existing result
*/
private checkCache;
/**
* Cache generation result
*/
private cacheResult;
/**
* Update metrics
*/
private updateMetrics;
/**
* Get default streaming config
*/
private getDefaultStreamingConfig;
/**
* Validate request
*/
validateRequest(request: AudioGenerationRequest): Promise;
/**
* Estimate cost
*/
estimateCost(request: AudioGenerationRequest): number;
/**
* Cancel request
*/
cancelRequest(requestId: string): Promise;
/**
* End real-time session
*/
endRealTimeSession(sessionId: string): Promise;
/**
* Check if streaming is supported
*/
supportsStreaming(): boolean;
/**
* Generate request ID
*/
private generateRequestId;
/**
* Generate session ID
*/
private generateSessionId;
/**
* Ensure processor is initialized
*/
private ensureInitialized;
/**
* Health check
*/
healthCheck(): Promise<{
status: string;
latency: number;
error?: string;
}>;
/**
* Get metrics
*/
getMetrics(): AudioProcessorMetrics;
/**
* Shutdown processor
*/
shutdown(): Promise;
}
//# sourceMappingURL=audio-processor.d.ts.map