Documentation Index
Fetch the complete documentation index at: https://developers.telnyx.com/llms.txt
Use this file to discover all available pages before exploring further.
Upload a file
Choose a provider
Select Telnyx or Minimax using the provider toggle.
Upload audio
In the Voice Design Lab, click Upload Audio and choose your file or drag and drop it. Set voice details
Enter a name for the voice and select the gender.
Clone
Click Clone Voice. The system processes the audio and creates a voice clone, typically in a few seconds.
Record directly in the browser
Switch to Record mode
Click Upload Audio, then select the Record tab.
Choose a language
Select the language you’ll speak in. The system generates a reading script optimized for voice cloning.
Read the script
Click Start Recording and read the script clearly. It’s designed to capture the full range of phonemes.
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.