Skip to main content

Upload a file

1

Choose a provider

Select Telnyx or Minimax using the provider toggle.
2

Upload audio

In the Voice Design Lab, click Upload Audio and choose your file or drag and drop it.
3

Set voice details

Enter a name for the voice and select the gender.
4

Clone

Click Clone Voice. The system processes the audio and creates a voice clone, typically in a few seconds.

Record directly in the browser

1

Switch to Record mode

Click Upload Audio, then select the Record tab.
2

Choose a language

Select the language you’ll speak in. The system generates a reading script optimized for voice cloning.
3

Read the script

Click Start Recording and read the script clearly. It’s designed to capture the full range of phonemes.
4

Review and submit

Listen to your recording. Re-record if needed, then click Clone Voice.

Using the API

Clone with Telnyx (default)

POST /v2/voice_clones/from_upload
Content-Type: multipart/form-data

audio_file: recording.wav
name: My Custom Voice
language: en
gender: female

Clone with Minimax

Supports longer audio (up to 5 minutes):
POST /v2/voice_clones/from_upload
Content-Type: multipart/form-data

audio_file: recording.wav
name: My Custom Voice
language: en
gender: female
provider: minimax

Clone with Ultra model

Ultra clones use the higher-quality Ultra model. The request returns 202 Accepted — poll the clone’s status until it becomes active.
POST /v2/voice_clones/from_upload
Content-Type: multipart/form-data

audio_file: recording.wav
name: My Ultra Voice
language: en
gender: female
provider: telnyx
model_id: Ultra
Response (202 Accepted):
{
  "data": {
    "id": "uuid",
    "status": "pending",
    ...
  }
}
Poll with GET /v2/voice_clones until status is active.

SDK Examples

Clone with Telnyx (default)

import telnyx

client = telnyx.Telnyx(api_key="YOUR_TELNYX_API_KEY")

clone = client.voice_clones.create_from_upload(
    params={
        "audio_file": open("recording.wav", "rb"),
        "name": "My Custom Voice",
        "language": "en",
        "gender": "female",
        "provider": "telnyx",
    }
)

print("Voice Clone Created:", clone.data)

Clone with Minimax

Minimax supports longer audio (up to 20MB) and uses the speech-2.8-turbo model.
import telnyx

client = telnyx.Telnyx(api_key="YOUR_TELNYX_API_KEY")

clone = client.voice_clones.create_from_upload(
    params={
        "audio_file": open("recording.wav", "rb"),
        "name": "My Custom Voice",
        "language": "en",
        "gender": "female",
        "provider": "minimax",
    }
)

print("Voice Clone Created:", clone.data)

Clone with Ultra model

Ultra clones return 202 Accepted and require polling until the status is active.
import telnyx
import time

client = telnyx.Telnyx(api_key="YOUR_TELNYX_API_KEY")

# Create the clone (returns 202 Accepted)
clone = client.voice_clones.create_from_upload(
    params={
        "audio_file": open("recording.wav", "rb"),
        "name": "My Ultra Voice",
        "language": "en",
        "gender": "female",
        "provider": "telnyx",
        "model_id": "Ultra",
    }
)

print("Clone submitted:", clone.data.id, "— status:", clone.data.status)

# Poll until active
while True:
    clones = client.voice_clones.list()
    for c in clones:
        if c.id == clone.data.id:
            if c.status == "active":
                print("Clone ready!")
                break
    else:
        time.sleep(5)
        continue
    break
Once saved, see Using Custom Voices for how to use it in AI Assistants, Call Control, and the TTS API.