or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

audio

audio-processing.mdrealtime-transcription.mdspeech-to-speech.mdspeech-to-text.mdtext-to-speech.md
index.md
tile.json

pvc-samples.mddocs/voices/

PVC Sample Management

Manage audio samples for professional voice clones including adding, updating, and deleting samples.

Quick Reference

import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const client = new ElevenLabsClient({ apiKey: "your-api-key" });
// Access this API via: client.voices.pvc.samples

Capabilities

Add Samples to PVC Voice

Add audio samples to a PVC voice.

/**
 * @param voice_id - Voice ID
 * @param request - Audio files to add
 * @param requestOptions - Optional request configuration
 * @returns Array of added samples
 * @throws UnprocessableEntityError if request fails
 */
client.voices.pvc.samples.create(
  voice_id: string,
  request: BodyAddSamplesToPvcVoiceV1VoicesPvcVoiceIdSamplesPost,
  requestOptions?: RequestOptions
): HttpResponsePromise<VoiceSample[]>;

interface BodyAddSamplesToPvcVoiceV1VoicesPvcVoiceIdSamplesPost {
  /** Audio files used to create the voice */
  files: File[];
  /** If set will remove background noise using audio isolation model */
  remove_background_noise?: boolean;
}

Update PVC Sample

Update a PVC voice sample - apply noise removal, select speaker, change trim times or file name.

/**
 * @param voice_id - Voice ID
 * @param sample_id - Sample ID
 * @param request - Sample updates
 * @param requestOptions - Optional request configuration
 * @returns Voice ID
 * @throws UnprocessableEntityError if request fails
 */
client.voices.pvc.samples.update(
  voice_id: string,
  sample_id: string,
  request?: BodyUpdatePvcVoiceSampleV1VoicesPvcVoiceIdSamplesSampleIdPost,
  requestOptions?: RequestOptions
): HttpResponsePromise<AddVoiceResponseModel>;

interface BodyUpdatePvcVoiceSampleV1VoicesPvcVoiceIdSamplesSampleIdPost {
  /** If set will remove background noise using audio isolation model */
  remove_background_noise?: boolean;
  /** Speaker IDs to be used for PVC training (overrides previous selections) */
  selected_speaker_ids?: string[];
  /** Start time of audio to use for PVC training (in milliseconds) */
  trim_start_time?: number;
  /** End time of audio to use for PVC training (in milliseconds) */
  trim_end_time?: number;
  /** Name of the audio file */
  file_name?: string;
}

Delete PVC Sample

Delete a sample from a PVC voice.

/**
 * @param voice_id - Voice ID
 * @param sample_id - Sample ID
 * @param requestOptions - Optional request configuration
 * @returns Deletion status
 * @throws UnprocessableEntityError if request fails
 */
client.voices.pvc.samples.delete(
  voice_id: string,
  sample_id: string,
  requestOptions?: RequestOptions
): HttpResponsePromise<DeleteVoiceSampleResponseModel>;

interface DeleteVoiceSampleResponseModel {
  /** Status of deletion ('ok' if successful) */
  status: string;
}

Get Sample Waveform

Retrieve the visual waveform of a voice sample.

/**
 * @param voice_id - Voice ID
 * @param sample_id - Sample ID
 * @param requestOptions - Optional request configuration
 * @returns Visual waveform data
 * @throws UnprocessableEntityError if request fails
 */
client.voices.pvc.samples.waveform.get(
  voice_id: string,
  sample_id: string,
  requestOptions?: RequestOptions
): HttpResponsePromise<VoiceSampleVisualWaveformResponseModel>;

interface VoiceSampleVisualWaveformResponseModel {
  /** Sample ID */
  sample_id: string;
  /** Visual waveform as array of floats */
  visual_waveform: number[];
}

Get Sample Audio Preview

Retrieve the first 30 seconds of voice sample audio with or without noise removal.

/**
 * @param voice_id - Voice ID
 * @param sample_id - Sample ID
 * @param request - Audio options
 * @param requestOptions - Optional request configuration
 * @returns Audio preview in base64
 * @throws UnprocessableEntityError if request fails
 */
client.voices.pvc.samples.audio.get(
  voice_id: string,
  sample_id: string,
  request?: AudioGetRequest,
  requestOptions?: RequestOptions
): HttpResponsePromise<VoiceSamplePreviewResponseModel>;

interface AudioGetRequest {
  /** If set will remove background noise using audio isolation model */
  remove_background_noise?: boolean;
}

interface VoiceSamplePreviewResponseModel {
  /** Base64 encoded audio */
  audio_base64: string;
  /** Voice ID */
  voice_id: string;
  /** Sample ID */
  sample_id: string;
  /** Media type of the audio */
  media_type: string;
  /** Duration in seconds */
  duration_secs?: number;
}