> ## 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.

# Design a Voice — Quickstart

> Create a custom synthetic voice step-by-step using the Telnyx Voice Design Lab portal or API, including prompts, reference audio, and provider selection.

## Portal walkthrough

<Steps>
  <Step title="Choose a provider">
    Select **Telnyx** or **Minimax** using the provider toggle.
  </Step>

  <Step title="Describe the voice">
    Write a natural language description of the voice you want — gender, age, tone, pace, texture, personality.
  </Step>

  <Step title="Generate samples">
    Click **Generate Samples** to create three audio previews. Each reads a different script in your chosen language.
  </Step>

  <Step title="Preview and iterate">
    Listen to each sample. Click **Regenerate All** to try again, or refine your description.
  </Step>

  <Step title="Save as a voice clone">
    Click **Save This Voice**. Give it a name and gender tag — this creates a production-ready voice clone.
  </Step>
</Steps>

## Using the API

### 1. Create a voice design

```http theme={null}
POST /v2/voice_designs

{
  "name": "Friendly Receptionist",
  "prompt": "Female, mid-thirties. Warm and full, slightly husky.",
  "text": "Hello, thank you for calling. How can I help you today?",
  "language": "en",
  "provider": "telnyx"
}
```

Set `"provider": "minimax"` to use the Minimax provider instead.

### 2. Listen to the generated sample

```http theme={null}
GET /v2/voice_designs/{id}/sample
```

Returns `audio/wav`.

### 3. Save as a usable voice clone

A voice design is a draft. To use it in production, save it as a clone:

```http theme={null}
POST /v2/voice_clones

{
  "name": "Friendly Receptionist",
  "voice_design_id": "DESIGN_ID",
  "version": 1,
  "language": "en",
  "gender": "female"
}
```

## Full example

<CodeGroup>
  ```python Python theme={null}
  import telnyx

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

  # 1. Create a voice design
  design = client.voice_designs.create(
      name="Friendly Receptionist",
      prompt="Female, mid-thirties. Warm and full, slightly husky.",
      text="Hello, thank you for calling. How can I help you today?",
      language="en",
      provider="telnyx",
  )
  design_id = design.data.id
  print(f"Voice design created: {design_id}")

  # 2. Download the generated audio sample
  sample = client.voice_designs.download_sample(design_id)
  with open("sample.wav", "wb") as f:
      f.write(sample.content)
  print("Sample saved to sample.wav")

  # 3. Save the design as a usable voice clone
  clone = client.voice_clones.create(
      params={
          "voice_design_id": design_id,
          "name": "Friendly Receptionist",
          "language": "en",
          "gender": "female",
      }
  )
  print(f"Voice clone ready: {clone.data.id}")
  # Use this clone ID in TTS, Call Control, or AI Assistants
  ```

  ```javascript Node.js theme={null}
  import Telnyx from 'telnyx';
  import fs from 'fs';

  const client = new Telnyx({ apiKey: 'YOUR_TELNYX_API_KEY' });

  // 1. Create a voice design
  const design = await client.voiceDesigns.create({
    name: 'Friendly Receptionist',
    prompt: 'Female, mid-thirties. Warm and full, slightly husky.',
    text: 'Hello, thank you for calling. How can I help you today?',
    language: 'en',
    provider: 'telnyx',
  });
  console.log(`Voice design created: ${design.data.id}`);

  // 2. Download the generated audio sample
  const sample = await client.voiceDesigns.downloadSample(design.data.id);
  const buffer = Buffer.from(await sample.arrayBuffer());
  fs.writeFileSync('sample.wav', buffer);
  console.log('Sample saved to sample.wav');

  // 3. Save the design as a usable voice clone
  const clone = await client.voiceClones.create({
    params: {
      voice_design_id: design.data.id,
      name: 'Friendly Receptionist',
      language: 'en',
      gender: 'female',
    },
  });
  console.log(`Voice clone ready: ${clone.data.id}`);
  // Use this clone ID in TTS, Call Control, or AI Assistants
  ```
</CodeGroup>

Once saved, see [Using Custom Voices](/docs/voice/voice-design-lab/using-custom-voices) for how to use it in AI Assistants, Call Control, and the TTS API.
