> ## Documentation Index
> Fetch the complete documentation index at: https://docs.audixa.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Voice Library

> Browse and select voices for your text-to-speech projects

Audixa exposes a catalog of system and account-owned voices. This guide explains how to list voices, check model compatibility, and use a `voice_id` in an API request.

## Voice Models

Audixa provides two model tiers:

| Model | Description | Use Case |
| - | - | - |
| **Base** | Voices compatible with `model: "base"` | Supports the `speed` delivery control |
| **Advanced** | Voices compatible with `model: "advanced"` | Supports `cfg_weight` and `exaggeration` |

## Listing Voices via API

Fetch available voices using the `/voices` endpoint:

<CodeGroup>
  ```bash cURL theme={null}
  # Get Base model voices
  curl -X GET "https://api.audixa.ai/v3/voices?model=base" \
    -H "x-api-key: YOUR_API_KEY"

  # Get Advanced model voices
  curl -X GET "https://api.audixa.ai/v3/voices?model=advanced" \
    -H "x-api-key: YOUR_API_KEY"
  ```

  ```python Python requests theme={null}
  import requests

  response = requests.get(
      "https://api.audixa.ai/v3/voices",
      headers={"X-API-Key": "YOUR_API_KEY"},
      params={"model": "base"},
      timeout=30,
  )
  response.raise_for_status()

  for voice in response.json()["voices"]:
      print(f"{voice['name']} ({voice['voice_id']}) - {voice.get('accent', 'N/A')}")
  ```

  ```javascript JavaScript fetch theme={null}
  const query = new URLSearchParams({ model: 'base' });
  const response = await fetch(`https://api.audixa.ai/v3/voices?${query}`, {
    headers: { 'X-API-Key': 'YOUR_API_KEY' }
  });
  if (!response.ok) throw new Error(await response.text());

  const { voices } = await response.json();
  for (const voice of voices) {
    console.log(`${voice.name} (${voice.voice_id}) - ${voice.accent ?? 'N/A'}`);
  }
  ```
</CodeGroup>

<Note>
  The `model` query parameter is optional. Use `base` or `advanced` to filter.
</Note>

## Response Format

<ResponseExample>
  ```json Voice List Response theme={null}
  {
    "limit": 100,
    "offset": 0,
    "length": 3,
    "voices": [
      {
        "voice_id": "am_ethan",
        "name": "Ethan",
        "gender": "Male",
        "accent": "American",
        "description": "Clear, professional male voice"
      },
      {
        "voice_id": "af_luna",
        "name": "Luna",
        "gender": "Female",
        "accent": "British",
        "description": "Warm, friendly British female voice"
      }
    ]
  }
  ```
</ResponseExample>

## Voice Properties

Each voice object includes:

| Property | Type | Description |
| - | - | - |
| `voice_id` | string | Unique identifier to use in `/tts` requests |
| `name` | string | Human-friendly voice name |
| `gender` | string | `Male` or `Female` |
| `accent` | string | Voice accent/language (e.g., "American") |
| `description` | string | Brief description of voice characteristics |
| `free` | boolean | Internal voice-access classification used by plan rules; it does not make generation free |
| `is_custom` | boolean | Whether this is your custom voice |

## Using a Voice

Once you've selected a voice, use its `voice_id` in your TTS request:

```json theme={null}
{
  "text": "Hello, this example contains enough text for a generation.",
  "voice_id": "am_ethan",
  "model": "base",
  "audio_format": "mp3"
}
```

<Warning>
  Make sure the `model` in your TTS request matches the model the voice belongs to.
</Warning>

## Custom Voices (Advanced Model)

With the **Advanced** model, you can:

<CardGroup cols={2}>
  <Card title="Clone Your Voice" icon="clone">
    Create a custom voice from audio samples.
  </Card>

  <Card title="Adjust Emotions" icon="face-smile">
    Control emotional tone via `exaggeration` and `cfg_weight`.
  </Card>

  <Card title="Fine-tune Settings" icon="sliders">
    Adjust expressiveness for creativity control.
  </Card>

  <Card title="Branded Voices" icon="building">
    Create unique voices for your brand.
  </Card>
</CardGroup>

Custom voices appear in your `/voices?model=advanced` response with `is_custom: true`.

## Voice Selection Tips

1. **Match your audience**: Choose accents that resonate with your target users
2. **Consider context**: Professional content may need authoritative voices; casual content benefits from friendly tones
3. **Preview first**: Compare the fixed samples at [audixa.ai/voices](https://audixa.ai/voices) before purchasing
4. **Validate compatibility**: Use the model returned with each voice instead of guessing

## Browse in Dashboard

For fixed, pre-generated audio previews:

<Card title="Voice Preview Gallery" icon="users" href="https://audixa.ai/voices">
  Listen to fixed samples without custom text or a generated trial.
</Card>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.