> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Usa la tua trascrizione

> **Note**
>
> **Guida pratica** · Presuppone che tu abbia familiarità con la creazione di progetti di doppiaggio, come mostrato nella
> [guida rapida al doppiaggio](/docs/it/eleven-api/guides/cookbooks/dubbing).

> **Warning**
>
> La possibilità di fornire la propria trascrizione e le proprie traduzioni è disponibile solo per i workspace Enterprise. Contatta
> il [team commerciale](https://elevenlabs.io/contact-sales) per ottenere l'accesso.

Per impostazione predefinita, l'API di doppiaggio trascrive i tuoi contenuti multimediali sorgente e traduce automaticamente la trascrizione in ogni lingua di destinazione. Se disponi già di una trascrizione accurata — sottotitoli, una sceneggiatura o un testo tradotto professionalmente — puoi fornirla al suo posto. Questa guida illustra il formato del file di trascrizione, come creare un progetto da una trascrizione e come fornire le tue traduzioni quando aggiungi una lingua.

## Formato del file di trascrizione

Una trascrizione è un file JSON con un singolo array `segments` di primo livello. Ogni segmento corrisponde a un'enunciazione: il testo pronunciato, quando inizia e finisce e, facoltativamente, chi lo pronuncia.

**`transcript.json`**

```json title="transcript.json"
{
  "segments": [
    {
      "external_id": "line_0",
      "speaker_id": "speaker_0",
      "start_s": 0.0,
      "end_s": 14.5,
      "text": "With my soft and whispery American accent, I'm the ideal choice for creating ASMR content, meditation guides, or adding an intimate feel to your narrative projects."
    }
  ]
}
```

| Campo         | Obbligatorio | Descrizione                                                                                                                                                                                                  |
| ------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `text`        | Sì           | Il testo pronunciato durante il segmento.                                                                                                                                                                    |
| `start_s`     | Sì           | Ora di inizio del segmento, in secondi.                                                                                                                                                                      |
| `end_s`       | Sì           | Ora di fine del segmento, in secondi.                                                                                                                                                                        |
| `speaker_id`  | No           | Identificatore che raggruppa i segmenti pronunciati dalla stessa persona, così ogni persona viene doppiata con una voce coerente. I segmenti che lo omettono condividono un unico interlocutore predefinito. |
| `external_id` | No           | Il tuo identificatore per il segmento, lungo al massimo 128 caratteri e univoco nella trascrizione. Usato come chiave per le traduzioni e restituito in ogni lettura della trascrizione.                     |
| `translation` | No           | Testo tradotto per il segmento, usato per inizializzare la lingua di destinazione creata tramite `target_language`. Se un segmento ne include uno, devono farlo tutti.                                       |

### Regole per i segmenti

La trascrizione viene convalidata quando crei il progetto:

* I segmenti devono essere ordinati per `start_s`.
* Un segmento deve durare tra 0,1 e 25 secondi e `end_s` deve essere maggiore di `start_s`.
* I segmenti con lo stesso `speaker_id` non devono sovrapporsi, anche se possono toccarsi in un punto finale. I segmenti di interlocutori diversi possono sovrapporsi per rappresentare parlato simultaneo.
* Una trascrizione può contenere al massimo 20.000 segmenti e il file può avere una dimensione massima di 4 MiB.

Preferisci segmenti più brevi a quelli più lunghi: dividi le frasi in corrispondenza di ogni pausa di un secondo o più. I confini dei segmenti determinano la sincronizzazione dell'audio doppiato con la sorgente, quindi una trascrizione con interruzioni accurate e naturali produce un doppiaggio meglio sincronizzato.

## Crea un progetto dalla tua trascrizione

Passa il file di trascrizione quando crei il progetto. `source_language` è obbligatorio quando fornisci una trascrizione, poiché i contenuti multimediali sorgente non vengono trascritti automaticamente. Le lingue sono specificate come tag BCP-47, ad esempio `es` o `fr-CA`. Consulta le [lingue e i dialetti supportati](/docs/it/overview/capabilities/dubbing#supported-languages) per tutti i valori accettati.

```python
import os
from dotenv import load_dotenv
from elevenlabs.client import ElevenLabs

load_dotenv()

elevenlabs = ElevenLabs(api_key=os.getenv("ELEVENLABS_API_KEY"))

with open("transcript.json", "rb") as transcript:
    project = elevenlabs.dubbing.project.create(
        source_url="https://storage.googleapis.com/eleven-public-cdn/audio/marketing/nicole.mp3",
        source_language="en",
        transcript=transcript,
    )

print(project.project_id)
```

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
import "dotenv/config";
import { createReadStream } from "fs";

const elevenlabs = new ElevenLabsClient();

const project = await elevenlabs.dubbing.project.create({
  sourceUrl: "https://storage.googleapis.com/eleven-public-cdn/audio/marketing/nicole.mp3",
  sourceLanguage: "en",
  transcript: createReadStream("transcript.json"),
});

console.log(project.projectId);
```

Il progetto acquisisce comunque i contenuti multimediali sorgente prima di poter essere doppiato, quindi esegui il polling finché lo stato non è `ready`, come mostrato nella [guida rapida](/docs/it/eleven-api/guides/cookbooks/dubbing). I tuoi segmenti vengono usati così come sono; non viene eseguita alcuna trascrizione automatica.

## Fornisci le tue traduzioni

Quando aggiungi una lingua di destinazione, passa una mappa `translations` per usare le tue traduzioni anziché la traduzione automatica. La mappa usa come chiave l'`external_id` di ciascun segmento sorgente o il relativo `id` interno se non ne hai fornito uno, e deve includere ogni segmento sorgente esattamente una volta.

```python
project_id = "proj_1601kwkyxp0hfzvtmyxwqxx6mcy3"

language = elevenlabs.dubbing.project.language.create(
    project_id,
    target_language="fr",
    translations={
        "line_0": "Avec mon accent américain doux et murmuré, je suis le choix idéal pour créer du contenu ASMR, des guides de méditation, ou pour apporter une touche d'intimité à vos projets narratifs.",
    },
)
```

```typescript
const projectId = "proj_1601kwkyxp0hfzvtmyxwqxx6mcy3";

const language = await elevenlabs.dubbing.project.language.create(projectId, {
  targetLanguage: "fr",
  translations: {
    line_0:
      "Avec mon accent américain doux et murmuré, je suis le choix idéal pour créer du contenu ASMR, des guides de méditation, ou pour apporter une touche d'intimité à vos projets narratifs.",
  },
});
```

Ogni lingua di destinazione richiede una chiamata di creazione, quindi ripeti questa richiesta per ogni lingua in cui vuoi doppiare. Una mappa `translations` può contenere al massimo 20.000 voci per un totale massimo di 4 MiB di testo.

Se i tuoi segmenti non hanno `external_id`, leggi la trascrizione sorgente per ottenere l'`id` interno di ogni segmento e usa quelli come chiavi:

```python
transcript = elevenlabs.dubbing.project.transcript.get(project_id)
for segment in transcript.segments:
    print(segment.id, segment.text)
```

```typescript
const transcript = await elevenlabs.dubbing.project.transcript.get(projectId);
for (const segment of transcript.segments) {
  console.log(segment.id, segment.text);
}
```

### Inizializza le traduzioni alla creazione del progetto

Per una sola lingua di destinazione, puoi evitare la mappa `translations` separata includendo una `translation` in ogni segmento del file di trascrizione e passando `target_language` quando crei il progetto. La lingua di destinazione viene creata in stato di attesa con le tue traduzioni e inizia la generazione quando il progetto è pronto.

**`transcript.json`**

```json title="transcript.json"
{
  "segments": [
    {
      "external_id": "line_0",
      "speaker_id": "speaker_0",
      "start_s": 0.0,
      "end_s": 14.5,
      "text": "With my soft and whispery American accent, I'm the ideal choice for creating ASMR content, meditation guides, or adding an intimate feel to your narrative projects.",
      "translation": "Avec mon accent américain doux et murmuré, je suis le choix idéal pour créer du contenu ASMR, des guides de méditation, ou pour apporter une touche d'intimité à vos projets narratifs."
    }
  ]
}
```

## Considerazioni sulla qualità

La qualità del doppiaggio dipende dalla trascrizione e dalle traduzioni su cui si basa. Le tempistiche dei segmenti e il testo vengono usati direttamente per definire tempi e voce della performance doppiata, quindi tempistiche o testo imprecisi peggiorano il risultato. Le traduzioni vengono riprodotte per adattarsi all'intervallo di tempo del segmento: una traduzione molto più lunga o più breve dell'originale influenza il ritmo del parlato doppiato, quindi punta a traduzioni di lunghezza parlata comparabile.

## Passaggi successivi

#### [Perfeziona e rigenera un doppiaggio](/docs/it/eleven-api/guides/how-to/dubbing/refine-and-regenerate)

Modifica la trascrizione sorgente e le traduzioni, quindi rigenera il doppiaggio

#### [Doppia in più lingue](/docs/it/eleven-api/guides/how-to/dubbing/multiple-languages)

Aggiungi più lingue di destinazione a un singolo progetto

#### [Riferimento API](/docs/it/api-reference/dubbing/create-project)

Esplora tutti i parametri e i formati di risposta dell'API di doppiaggio