UNPKG

audiopod-sdk

Version:

AudioPod SDK for Node.js and React - Professional Audio Processing powered by AI

130 lines 4.51 kB
/** * Voice Service * Handles voice cloning and TTS operations */ import { AudioPodClient } from '../client/AudioPodClient'; import { VoiceCloneRequest, VoiceCloneResult, VoiceProfile, Job, VoiceConversionRequest, VoiceConversionResult, MultiVoiceTTSRequest, MultiVoiceTTSResult, VoiceCollectionRequest, VoiceCollectionResult, VoiceCollection, PublicPreviewRequest, PublicPreviewResult } from '../types'; export declare class VoiceService { private client; constructor(client: AudioPodClient); /** * Clone a voice from an audio file * This method first creates a voice profile, then uses it for cloning */ cloneVoice(request: VoiceCloneRequest): Promise<VoiceCloneResult>; /** * Create a reusable voice profile */ createVoiceProfile(name: string, voiceFile: File | Blob | string, description?: string, isPublic?: boolean, waitForCompletion?: boolean, timeout?: number): Promise<VoiceProfile>; /** * Generate speech using an existing voice profile */ generateSpeech(voiceId: number | string, text: string, options?: { language?: string; speed?: number; audioFormat?: 'mp3' | 'wav'; waitForCompletion?: boolean; timeout?: number; }): Promise<VoiceCloneResult>; /** * List available voice profiles */ listVoiceProfiles(options?: { voiceType?: 'custom' | 'standard'; isPublic?: boolean; includePublic?: boolean; limit?: number; skip?: number; }): Promise<VoiceProfile[]>; /** * Get details of a specific voice profile */ getVoiceProfile(voiceId: number | string): Promise<VoiceProfile>; /** * Delete a voice profile */ deleteVoiceProfile(voiceId: number | string): Promise<void>; /** * Get voice cloning job status */ getJobStatus(jobId: number): Promise<Job>; /** * List voice cloning jobs */ listCloningJobs(options?: { skip?: number; limit?: number; status?: string; }): Promise<Job[]>; /** * Stream voice generation (WebSocket connection) */ streamVoiceGeneration(voiceId: number | string, text: string, options?: { language?: string; speed?: number; onProgress?: (progress: number) => void; onAudioChunk?: (chunk: ArrayBuffer) => void; onComplete?: (result: any) => void; onError?: (error: any) => void; }): Promise<void>; /** * Convert source audio to match target voice characteristics */ convertVoice(request: VoiceConversionRequest): Promise<VoiceConversionResult>; /** * Generate multi-voice TTS with multiple speakers */ generateMultiVoiceTTS(request: MultiVoiceTTSRequest): Promise<MultiVoiceTTSResult>; /** * Create a voice collection */ createVoiceCollection(request: VoiceCollectionRequest): Promise<VoiceCollectionResult>; /** * List voice collections */ listVoiceCollections(options?: { includeVoices?: boolean; includePublic?: boolean; }): Promise<VoiceCollection[]>; /** * Update a voice collection */ updateVoiceCollection(collectionId: number, updates: Partial<VoiceCollectionRequest>): Promise<VoiceCollectionResult>; /** * Delete a voice collection */ deleteVoiceCollection(collectionId: number): Promise<void>; /** * Add voices to a collection */ addVoicesToCollection(collectionId: number, voiceIds: number[]): Promise<void>; /** * Remove voices from a collection */ removeVoicesFromCollection(collectionId: number, voiceIds: number[]): Promise<void>; /** * Generate public voice preview (no authentication required) */ generatePublicPreview(request: PublicPreviewRequest): Promise<PublicPreviewResult>; /** * Populate provider voices (admin only) */ populateProviderVoices(provider: 'openai' | 'google_gemini' | 'audiopod_sonic'): Promise<{ message: string; count: number; }>; /** * Get unified TTS job status (works for both single and multi-voice TTS) */ getUnifiedJobStatus(jobId: number): Promise<Job>; /** * Get unified TTS history (both single and multi-voice jobs) */ getUnifiedTTSHistory(options?: { limit?: number; offset?: number; status?: string; jobType?: 'single' | 'multi'; }): Promise<Job[]>; } //# sourceMappingURL=VoiceService.d.ts.map