> ## Documentation Index
> Fetch the complete documentation index at: https://veniceai-mintlify-86b9f77a.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Texto para Fala

> Gere áudio falado a partir de texto com os modelos de texto para fala da Venice via /audio/speech: escolha modelo, voz e salve o áudio binário.

A conversão de texto para fala transforma texto escrito em áudio falado. Escolha um modelo TTS, selecione uma voz suportada por esse modelo, envie o texto para `/audio/speech` e salve a resposta binária de áudio.

Use este guia para geração padrão de voz. Se você quiser criar fala a partir de uma voz de referência personalizada, veja [Clonagem de Voz](/guides/media/voice-cloning).

## Uso Básico

<CodeGroup>
  ```python Python theme={null}
  import os
  from pathlib import Path

  import requests

  response = requests.post(
      "https://api.venice.ai/api/v1/audio/speech",
      headers={
          "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}",
          "Content-Type": "application/json",
      },
      json={
          "model": "tts-kokoro",
          "voice": "af_sky",
          "input": "Hello, welcome to Venice Voice.",
      },
  )

  response.raise_for_status()
  Path("speech.mp3").write_bytes(response.content)
  ```

  ```javascript Node.js theme={null}
  import { writeFile } from "node:fs/promises";

  const response = await fetch("https://api.venice.ai/api/v1/audio/speech", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.VENICE_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "tts-kokoro",
      voice: "af_sky",
      input: "Hello, welcome to Venice Voice.",
    }),
  });

  if (!response.ok) {
    throw new Error(await response.text());
  }

  await writeFile("speech.mp3", Buffer.from(await response.arrayBuffer()));
  ```

  ```bash cURL theme={null}
  curl https://api.venice.ai/api/v1/audio/speech \
    -H "Authorization: Bearer $VENICE_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "tts-kokoro",
      "voice": "af_sky",
      "input": "Hello, welcome to Venice Voice."
    }' \
    --output speech.mp3
  ```
</CodeGroup>

O corpo da resposta bem-sucedida é áudio binário no formato padrão do modelo, e não JSON. Atualmente, o `tts-kokoro` usa MP3 como padrão.

## Escolha um Modelo e uma Voz

As vozes são específicas por modelo. O valor de `voice` deve ser válido para o `model` que você escolher.

Use a página [Modelos de Texto para Fala](/models/text-to-speech) para navegar pelos modelos e vozes disponíveis. O seletor de vozes lista os IDs exatos de voz para passar na sua requisição.

<Note>
  Os IDs de voz diferenciam maiúsculas de minúsculas. Se você trocar de modelo TTS, atualize o valor de `voice` ao mesmo tempo.
</Note>

## Formato da Requisição

| Parâmetro         | Tipo   | Obrigatório | Descrição                                                                                                                                    |
| ----------------- | ------ | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `model`           | string | Sim         | ID do modelo de texto para fala.                                                                                                             |
| `voice`           | string | Sim         | ID da voz suportada pelo modelo selecionado.                                                                                                 |
| `input`           | string | Sim         | Texto a ser sintetizado, com até 4096 caracteres.                                                                                            |
| `response_format` | string | Não         | Formato de saída solicitado: `mp3`, `opus`, `aac`, `flac`, `wav` ou `pcm`. Os formatos suportados e o padrão são específicos de cada modelo. |

## Formato de Saída

Você pode omitir `response_format` para usar o padrão do modelo. Antes de escolher uma extensão de arquivo ou substituir o formato, consulte a API de Modelos para obter os valores atuais de `default_format` e `supported_formats` do modelo:

```bash theme={null}
curl "https://api.venice.ai/api/v1/models?type=tts" \
  -H "Authorization: Bearer $VENICE_API_KEY" |
  jq '.data[] | select(.id == "tts-kokoro") | .model_spec | {default_format, supported_formats}'
```

O `Content-Type` da resposta identifica o formato de áudio retornado. Solicitar um formato que o modelo selecionado não suporta retorna HTTP `400`.

## Dicas de Produção

* Faça cache do áudio gerado quando o texto de origem e a voz forem reutilizados.
* Normalize e revise o texto antes da síntese. A pontuação afeta o ritmo e a entonação.
* Salve a saída com a extensão de arquivo correta para o formato de resposta do modelo.

## Recursos Relacionados

<Tip>
  Narrando algo mais longo do que algumas frases? [Narração de Artigos com Texto para Fala](/guides/media/article-narration) aborda o limite de 4096 caracteres na entrada, a divisão do texto em fronteiras de frase, a junção dos pedaços em um único arquivo de áudio e o streaming para reprodução interativa.
</Tip>

* [API de Áudio Speech](/api-reference/endpoint/audio/speech)
* [Modelos de Texto para Fala](/models/text-to-speech)
* [Narração de Artigos com Texto para Fala](/guides/media/article-narration)
* [Guia de Clonagem de Voz](/guides/media/voice-cloning)
