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

# Fish Audio Text to Speech

> [!NOTE]
>
> For best results, upload reference audio using the [create model](/api-reference/model-apis-fish-audio-voice-cloning) before using this one. This improves speech quality and reduces latency.

Fish Audio converts text into speech.

Audio formats supported:

* WAV / PCM
  * Sample Rate: 8kHz, 16kHz, 24kHz, 32kHz, 44.1kHz
  * Default Sample Rate: 44.1kHz
  * 16-bit, mono

* MP3
  * Sample Rate: 32kHz, 44.1kHz
  * Default Sample Rate: 44.1kHz
  * mono
  * Bitrate: 64kbps, 128kbps (default), 192kbps

* Opus
  * Sample Rate: 48kHz
  * Default Sample Rate: 48kHz
  * mono
  * Bitrate: -1000 (auto), 24kbps, 32kbps (default), 48kbps, 64kbps

## Request Headers

**Content-Type** `string` *required*

Enum: `application/json`

**Authorization** `string` *required*

Bearer authentication format, for example: Bearer \{\{API Key}}.

**model** `enum\<string\>` (default: s1)

Specify which TTS model to use. Only supports model: `s1`.

## Request Body

**text** `string` *required*

Text to be converted to speech.

**temperature** `number` (default: 0.9)

Controls randomness in the speech generation. Higher values (e.g., 1.0) make the output more random, while lower values (e.g., 0.1) make it more deterministic. We recommend `0.9` for `s1` model.

Required range: `0 <= x <= 1`

**top\_p** `number` (default: 0.9)

Controls diversity via nucleus sampling. Lower values (e.g., 0.1) make the output more focused, while higher values (e.g., 1.0) allow more diversity. We recommend `0.9` for `s1` model.

Required range: `0 <= x <= 1`

**references** `ReferenceAudio · object[] | null`

References to be used for the speech, this requires MessagePack serialization, this will override reference\_voices and reference\_texts.

**properties**

**audio** `file` *required*

Reference audio file.

**text** `string` *required*

Reference text corresponding to the audio.

**reference\_id** `string | null`

ID of the reference model to be used for the speech.

**prosody** `ProsodyControl · object`

Prosody to be used for the speech.

**properties**

**speed** `number` (default: 1)

Speech speed control.

**volume** `number` (default: 0)

Speech volume control.

**chunk\_length** `integer` (default: 200)

Chunk length to be used for the speech.

Required range: `100 <= x <= 300`

**normalize** `boolean` (default: true)

Whether to normalize the speech, this will reduce the latency but may reduce performance on numbers and dates.

**format** `enum\<string\>` (default: mp3)

Format to be used for the speech.

Available options: `wav`, `pcm`, `mp3`, `opus`

**sample\_rate** `integer | null`

Sample rate to be used for the speech.

**mp3\_bitrate** `enum\<integer\>` (default: 128)

MP3 Bitrate to be used for the speech.

Available options: `64`, `128`, `192`

**opus\_bitrate** `enum\<integer\>` (default: 32)

Opus Bitrate to be used for the speech.

Available options: `-1000`, `24`, `32`, `48`, `64`

**latency** `enum\<string\>` (default: normal)

Latency to be used for the speech, balanced will reduce the latency but may lead to performance degradation.

Available options: `normal`, `balanced`

## Response

The API will directly return the audio stream in the format specified by the `format` parameter (default: mp3).


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