### Authentication

**X-Hume-Api-Keystring**

API Key authentication via header

### Request

This endpoint expects an object.

**utterances** list of objects Required

A list of **Utterances** to be converted to speech output.

An **Utterance** is a unit of input for [Octave](https://dev.hume.ai/docs/text-to-speech-tts/overview), and includes input `text`, an optional `description` to serve as the prompt for how the speech should be delivered, an optional `voice` specification, and additional controls to guide delivery for `speed` and `trailing_silence`.

**context** object or null Optional

Utterances to use as context for generating consistent speech style and prosody across multiple requests. These will not be converted to speech output.

**format** object Optional Defaults to `{"type":"mp3"}`

Specifies the output audio file format.

**include_timestamp_types** list of enums Optional Defaults to `[]`

The set of timestamp types to include in the response. Only supported for Octave 2 requests.

Allowed values: word, phoneme

**num_generations** integer Optional `1-5` Defaults to `1`

Number of audio generations to produce from the input utterances.

Using `num_generations` enables faster processing than issuing multiple sequential requests. Additionally, specifying `num_generations` allows prosody continuation across all generations without repeating context, ensuring each generation sounds slightly different while maintaining contextual consistency.

**split_utterances** boolean Optional Defaults to `true`

Controls how audio output is segmented in the response.

- When **enabled** (`true`), input utterances are automatically split into natural-sounding speech segments.

- When **disabled** (`false`), the response maintains a strict one-to-one mapping between input utterances and output snippets.

This setting affects how the `snippets` array is structured in the response, which may be important for applications that need to track the relationship between input text and generated audio segments. When setting to `false`, avoid including utterances with long `text`, as this can result in distorted output.

**strip_headers** boolean Optional Defaults to `false`

If enabled, the audio for all the chunks of a generation, once concatenated together, will constitute a single audio file. Otherwise, if disabled, each chunk’s audio will be its own audio file, each with its own headers (if applicable).

**temperature** double or null Optional `0.1-1`

Sampling temperature for the speech generation model. Higher values increase variation; lower values increase consistency.

**This is an experimental parameter.** It is recommended to use the default values for most use cases.

Defaults when omitted:

- Octave 1 voice creation (no voice specified): `0.9`
- Octave 1 text-to-speech: `0.8`
- Octave 2 text-to-speech: `0.75`

**version** enum Optional

Selects the Octave model version used to synthesize speech for this request. If you omit this field, Hume automatically routes the request to the most appropriate model. Setting a specific version ensures stable and repeatable behavior across requests.

Use `2` to opt into the latest Octave capabilities. When you specify version `2`, you must also provide a `voice`. Requests that set `version: 2` without a voice will be rejected.

Allowed values: 1, 2

**instant_mode** boolean Optional Defaults to `true`

Enables ultra-low latency streaming, significantly reducing the time until the first audio chunk is received. Recommended for real-time applications requiring immediate audio playback. For further details, see our documentation on [instant mode](https://dev.hume.ai/docs/text-to-speech-tts/overview#ultra-low-latency-streaming-instant-mode).

- A [voice](https://dev.hume.ai/reference/text-to-speech-tts/synthesize-json-streaming#request.body.utterances.voice) must be specified when instant mode is enabled. Dynamic voice generation is not supported with this mode.
- Instant mode is only supported for streaming endpoints (e.g., [/v0/tts/stream/json](https://dev.hume.ai/reference/text-to-speech-tts/synthesize-json-streaming), [/v0/tts/stream/file](https://dev.hume.ai/reference/text-to-speech-tts/synthesize-file-streaming)).
- Ensure only a single generation is requested ( [num_generations](https://dev.hume.ai/reference/text-to-speech-tts/synthesize-json-streaming#request.body.num_generations) must be `1` or omitted).
