Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/elevenlabs/elevenlabs-python/llms.txt

Use this file to discover all available pages before exploring further.

Overview

The voices.ivc.create() method creates an instant voice clone (IVC) and adds it to your collection of voices. IVC allows you to clone a voice from audio samples in seconds.
IVC (Instant Voice Cloning) creates a voice clone quickly from audio samples. For higher quality clones with more customization options, consider using PVC (Professional Voice Cloning).

Method Signature

client.voices.ivc.create(
    name: str,
    files: List[core.File],
    remove_background_noise: Optional[bool] = None,
    description: Optional[str] = None,
    labels: Optional[IvcCreateRequestLabels] = None,
    request_options: Optional[RequestOptions] = None
) -> AddVoiceIvcResponseModel

Parameters

Returns

AddVoiceIvcResponseModel
object
Response containing the newly created voice information.

Examples

Basic Voice Clone

Create a voice clone from a single audio file:
from elevenlabs import ElevenLabs

client = ElevenLabs(api_key="YOUR_API_KEY")

with open("sample.mp3", "rb") as f:
    response = client.voices.ivc.create(
        name="My Cloned Voice",
        files=[f]
    )

print(f"Voice cloned successfully!")
print(f"Voice ID: {response.voice_id}")
print(f"Requires verification: {response.requires_verification}")

Clone with Multiple Samples

Create a voice clone from multiple audio samples for better quality:
from elevenlabs import ElevenLabs

client = ElevenLabs(api_key="YOUR_API_KEY")

audio_files = ["sample1.mp3", "sample2.mp3", "sample3.mp3"]

with open(audio_files[0], "rb") as f1, \
     open(audio_files[1], "rb") as f2, \
     open(audio_files[2], "rb") as f3:
    
    response = client.voices.ivc.create(
        name="Professional Voice Clone",
        files=[f1, f2, f3],
        description="Voice clone for professional narration"
    )

print(f"Voice ID: {response.voice_id}")

Clone with Background Noise Removal

Create a voice clone and remove background noise:
from elevenlabs import ElevenLabs

client = ElevenLabs(api_key="YOUR_API_KEY")

with open("noisy_sample.mp3", "rb") as f:
    response = client.voices.ivc.create(
        name="Clean Voice Clone",
        files=[f],
        remove_background_noise=True,
        description="Cloned from noisy audio sample"
    )

print(f"Voice ID: {response.voice_id}")

Clone with Labels

Create a voice clone with descriptive labels:
from elevenlabs import ElevenLabs

client = ElevenLabs(api_key="YOUR_API_KEY")

with open("british_voice.mp3", "rb") as f:
    response = client.voices.ivc.create(
        name="James - British Narrator",
        files=[f],
        description="British male voice for audiobook narration",
        labels={
            "language": "en",
            "accent": "british",
            "gender": "male",
            "age": "middle-aged"
        }
    )

print(f"Voice created: {response.voice_id}")

Use Cloned Voice for Text-to-Speech

Create a voice clone and immediately use it for generation:
from elevenlabs import ElevenLabs

client = ElevenLabs(api_key="YOUR_API_KEY")

# Clone the voice
with open("sample.mp3", "rb") as f:
    clone_response = client.voices.ivc.create(
        name="My Voice",
        files=[f]
    )

voice_id = clone_response.voice_id
print(f"Voice cloned: {voice_id}")

# Use the cloned voice for text-to-speech
if not clone_response.requires_verification:
    audio = client.text_to_speech.convert(
        voice_id=voice_id,
        text="Hello! This is my cloned voice speaking."
    )
    
    # Save the audio
    with open("output.mp3", "wb") as f:
        f.write(audio)
    
    print("Audio generated with cloned voice!")
else:
    print("Voice requires verification before use.")

Async Voice Cloning

Create a voice clone asynchronously:
import asyncio
from elevenlabs import AsyncElevenLabs

client = AsyncElevenLabs(api_key="YOUR_API_KEY")

async def main():
    with open("sample.mp3", "rb") as f:
        response = await client.voices.ivc.create(
            name="Async Cloned Voice",
            files=[f],
            description="Voice cloned asynchronously"
        )
    
    print(f"Voice ID: {response.voice_id}")
    print(f"Requires verification: {response.requires_verification}")

asyncio.run(main())

Best Practices

  • Use lossless or high-bitrate audio formats (WAV, FLAC, or 320kbps MP3)
  • Ensure samples are free from compression artifacts
  • Remove silence from the beginning and end of samples
  • Aim for consistent volume levels across samples
  • Include diverse emotional tones and speech patterns
  • Use samples with clear pronunciation
  • Avoid samples with overlapping voices or music
  • Provide at least 1-2 minutes of total audio
  • Some voices may require verification to prevent misuse
  • Ensure you have proper rights to clone the voice
  • Follow ElevenLabs’ terms of service for voice cloning

Build docs developers (and LLMs) love