> This page is for Voice APIs.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://dev.hume.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://dev.hume.ai/_mcp/server.

# Voice

EVI can use any voice from the Voice Library or a Custom Voice you have created. You can choose from more than 100
predesigned voices or design and clone voices with the voice model to create a unique sound.

This guide explains the available voice types, how to set them in your EVI configuration, and how to override the
configured voice for a single session.

## Voice options

EVI supports two types of voices:

<table>
  <tbody>
    <tr>
      <th width="20%">
         Voice Type 
      </th>

      <th width="20%">
         Provider 
      </th>

      <th>
         Description 
      </th>
    </tr>

    <tr>
      <td>
         Voice Library 
      </td>

      <td>
         

        `HUME_AI`

         
      </td>

      <td>
        Predesigned voices available to all users. Includes over 100 styles you can preview and use immediately.
      </td>
    </tr>

    <tr>
      <td>
         Custom Voice 
      </td>

      <td>
         

        `CUSTOM_VOICE`

         
      </td>

      <td>
        Voices you have designed or cloned. These are stored in your account and only accessible to you.
      </td>
    </tr>
  </tbody>
</table>

You can browse and preview both in the Platform's [Voice Library](https://app.hume.ai/voices) page.

## Voice configuration

You can set the voice for your EVI configuration through the Platform UI or the API.

### UI

1. Visit the [EVI Playground](https://app.hume.ai/evi/playground).
2. In the config panel on the right, select the configuration you want to update.
3. Select a voice from your saved voices or from the Voice Library.
4. Click **Save** to update the configuration.

### API

When creating or updating an EVI configuration via the API, include the
[`voice`](/reference/speech-to-speech-evi/configs/create-config#request.body.voice) field in the request body.

* You can specify a voice by its `id` or `name`.
* Each voice belongs to a `provider`.

<table>
  <tbody>
    <tr>
      <th width="24%">
         Provider 
      </th>

      <th>
         Description 
      </th>
    </tr>

    <tr>
      <td>
         

        `HUME_AI`

         
      </td>

      <td>
        Voices from the Voice Library. These are available to all users.
      </td>
    </tr>

    <tr>
      <td>
         

        `CUSTOM_VOICE`

         
      </td>

      <td>
        Voices you have designed or cloned. These are private to your account.
      </td>
    </tr>
  </tbody>
</table>

> **Info**
>
> **`CUSTOM_VOICE` is the default provider.** To use a Voice Library voice, explicitly set **`provider`** to **`HUME_AI`**.

#### cURL

```cURL maxLines={0} highlight={6-9}
curl https://api.hume.ai/v0/evi/configs \
 -H "X-Hume-Api-Key: $HUME_API_KEY" \
 --json '{
    "evi_version": "3",
    "name": "Example Config",
    "voice": {
      "id": "9e068547-5ba4-4c8e-8e03-69282a008f04",
      "provider": "HUME_AI"
    }
  }'
```

#### TypeScript

```typescript maxLines={0} highlight={7-10}
import { HumeClient } from "hume";

const client = new HumeClient({ apiKey: "YOUR_API_KEY" });
await client.empathicVoice.configs.createConfig({
  eviVersion: "3",
  name: "Example Config",
  voice: {
    id: "9e068547-5ba4-4c8e-8e03-69282a008f04",
    provider: "HUME_AI",
  },
});

```

#### Python

```python maxLines={0} highlight={8-11}
from hume import HumeClient
from hume.empathic_voice import PostedVoice

client = HumeClient(api_key="YOUR_API_KEY")
client.empathic_voice.configs.create_config(
    evi_version="3",
    name="Example Config",
    voice=PostedVoice(
        id="9e068547-5ba4-4c8e-8e03-69282a008f04",
        provider="HUME_AI",
    ),
)
```

## Dynamic voice selection

You can override the voice in your EVI configuration for a single chat session by including a
[`voice_id`](/reference/speech-to-speech-evi/chat#request.query.voice_id) as a query parameter in your [handshake request](/reference/speech-to-speech-evi/chat).

The `voice_id` must reference either a Custom Voice in your account or a Voice Library voice available to all users.

> **Info**
>
> **This override applies only to the current chat session** and does not update the saved configuration.

#### React

```tsx maxLines={0} highlight={14}
'use client';
import { useVoice } from "@humeai/voice-react";

export function Chat({ accessToken }: { accessToken: string }) {
  const { connect, disconnect, status } = useVoice();
  return (
    <button
      onClick={() =>
        status.value === 'connected'
          ? disconnect()
          : connect({
              auth: { type: 'accessToken', value: accessToken },
              configId: process.env.NEXT_PUBLIC_HUME_CONFIG_ID,
              voiceId: "9e068547-5ba4-4c8e-8e03-69282a008f04"
            })
      }
    >
      {status.value === 'connected' ? 'End Call' : 'Start Call'}
    </button>
  );
}
```

#### TypeScript

```typescript maxLines={0} highlight={6}
import { HumeClient } from "hume";

const client = new HumeClient({ apiKey: HUME_API_KEY });
const socket = client.empathicVoice.chat.connect({ 
  configId: HUME_CONFIG_ID,
  voiceId: "9e068547-5ba4-4c8e-8e03-69282a008f04"
});
```

#### Python

```python maxLines={0} highlight={9}
from hume.client import AsyncHumeClient
from hume.empathic_voice.chat.socket_client import ChatConnectOptions

client = AsyncHumeClient(api_key=HUME_API_KEY)

async with client.empathic_voice.chat.connect_with_callbacks(
    options=ChatConnectOptions(
        config_id=HUME_CONFIG_ID,
        voice_id="9e068547-5ba4-4c8e-8e03-69282a008f04"
    ),
) as socket:
    # ...etc.
```

## Resources

#### [Voice Library](https://app.hume.ai/voices)

Browse predesigned voices.

#### [Voice Design Guide](/docs/voice/voice-design)

Design and create a custom voice.

#### [Voice Cloning Guide](/docs/voice/voice-cloning)

Clone a voice from a live recording or audio file.

#### [Voice Management Guide](/docs/voice/management)

View, rename, and delete saved voices.

---