audiopod-sdk
Version:
AudioPod SDK for Node.js and React - Professional Audio Processing powered by AI
130 lines • 4.51 kB
TypeScript
/**
* 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