Hume’s text-to-speech (TTS) API lets you specify which voice to use when synthesizing speech. You can use a custom voice that you have saved or select one from Hume’s [Voice Library](https://app.hume.ai/voices).

This guide explains how to specify a voice across all of Hume’s TTS endpoints.

To learn how to create or manage voices, see the [Voice Design Guide](https://dev.hume.ai/docs/voice/voice-design), [Voice Cloning Guide](https://dev.hume.ai/docs/voice/voice-cloning), and [Voice Management Guide](https://dev.hume.ai/docs/voice/management).

## Voice reference options

You can specify a voice by `name` or `id`. If you use `name`, include a `provider` (defaults to `CUSTOM_VOICE`). To reference a voice from Hume’s Voice Library by name, set the `provider` to `HUME_AI`.

###### By ID

###### By Name

Specify either a custom voice or one from Hume's Voice Library by ID

```
{
  "voice": {
    "id": "9e068547-5ba4-4c8e-8e03-69282a008f04"
  }
}
```

Get voice IDs and names from [/v0/tts/voices](https://dev.hume.ai/reference/voices/list) or from the Platform’s [Voice Library](https://app.hume.ai/voices).

## Specify a voice in your request

To set a voice, include the [voice](https://dev.hume.ai/reference/text-to-speech-tts/synthesize-json-streaming#request.body.utterances.voice) field in the first [utterance](https://dev.hume.ai/reference/text-to-speech-tts/synthesize-json-streaming#request.body.utterances) of your request. That voice is used for all following utterances unless you override it later.

Voice specification works the same across streaming and non-streaming endpoints. The code snippets below demonstrate how to set the voice in your TTS request.

### cURL

```
curl https://api.hume.ai/v0/tts/stream/json \
  -H "X-Hume-Api-Key: <apiKey>" \
  --json '{\
  "version": "2",\
  "utterances": [\\
    {\\
      "text": "Beauty is no quality in things themselves: It exists merely in the mind which contemplates them.",\
      "voice": {\\
        "id": "9e068547-5ba4-4c8e-8e03-69282a008f04"\\
      }\\
    }\\
  ]\\
}'
```

Octave 1 voices are supported for both Octave 1 and Octave 2 requests, while Octave 2 voices are only supported for Octave 2 requests. If you specify an Octave 2 voice for an Octave 1 request, it will return an error.

## Resources

[Voice Design Guide](https://dev.hume.ai/docs/voice/voice-design)  
[Voice Cloning Guide](https://dev.hume.ai/docs/voice/voice-cloning)  
[Acting Instructions](https://dev.hume.ai/docs/text-to-speech-tts/acting-instructions)  
[Continuation Guide](https://dev.hume.ai/docs/text-to-speech-tts/continuation)
