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

# Text-to-Speech

> Genera audio parlato dal testo con i modelli text-to-speech di Venice, voci specifiche per modello e l'endpoint /audio/speech.

Il text-to-speech trasforma il testo scritto in audio parlato. Scegli un modello TTS, seleziona una voce supportata da quel modello, invia il testo a `/audio/speech` e salva la risposta audio binaria.

Usa questa guida per la generazione vocale standard. Se vuoi creare audio a partire da una voce di riferimento personalizzata, consulta il [Voice Cloning](/guides/media/voice-cloning).

## Utilizzo di Base

<CodeGroup>
  ```python Python theme={"system"}
  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={"system"}
  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={"system"}
  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>

## Scelta di Modello e Voce

Le voci sono specifiche per modello. Il valore di `voice` deve essere valido per il `model` che scegli.

Usa la pagina [Modelli Text-to-Speech](/models/text-to-speech) per esplorare i modelli e le voci disponibili. Il selettore delle voci elenca gli ID esatti da passare nella richiesta.

<Note>
  Gli ID delle voci fanno distinzione tra maiuscole e minuscole. Se cambi modello TTS, aggiorna contemporaneamente il valore di `voice`.
</Note>

## Struttura della Richiesta

| Parametro | Tipo   | Obbligatorio | Descrizione                                       |
| --------- | ------ | ------------ | ------------------------------------------------- |
| `model`   | string | Sì           | ID del modello text-to-speech.                    |
| `voice`   | string | Sì           | ID della voce supportata dal modello selezionato. |
| `input`   | string | Sì           | Testo da sintetizzare.                            |

## Consigli per la Produzione

* Metti in cache l'audio generato quando il testo sorgente e la voce vengono riutilizzati.
* Normalizza e revisiona il testo prima della sintesi. La punteggiatura influenza ritmo e intonazione.
* Salva l'output con l'estensione di file corretta in base al formato di risposta del modello.

## Risorse Correlate

* [API Audio Speech](/api-reference/endpoint/audio/speech)
* [Modelli Text-to-Speech](/models/text-to-speech)
* [Guida al Voice Cloning](/guides/media/voice-cloning)
