> 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.

# Eigenes Transkript verwenden

> **Note**
>
> **Anleitung** · Setzt voraus, dass Sie mit dem Erstellen von Synchronisationsprojekten vertraut sind, wie im
> [Synchronisations-Schnellstart](/docs/de/eleven-api/guides/cookbooks/dubbing) gezeigt.

> **Warning**
>
> Eigene Transkripte und Übersetzungen sind nur für Enterprise-Workspaces verfügbar. Wenden Sie sich für Zugang an den
> [Vertrieb](https://elevenlabs.io/contact-sales).

Standardmäßig transkribiert die Dubbing API Ihre Quellmedien und übersetzt das Transkript maschinell in jede Zielsprache. Wenn Sie bereits ein präzises Transkript haben – Untertitel, ein Skript oder professionell übersetzten Text –, können Sie dieses stattdessen bereitstellen. Dieser Leitfaden behandelt das Format der Transkriptdatei, das Erstellen eines Projekts aus einem Transkript und die Bereitstellung eigener Übersetzungen beim Hinzufügen einer Sprache.

## Format der Transkriptdatei

Ein Transkript ist eine JSON-Datei mit einem einzelnen `segments`-Array auf oberster Ebene. Jedes Segment ist eine Äußerung: der gesprochene Text, dessen Start- und Endzeit sowie optional der Sprecher.

**`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."
    }
  ]
}
```

| Feld          | Erforderlich | Beschreibung                                                                                                                                                                                                        |
| ------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `text`        | Ja           | Der während des Segments gesprochene Text.                                                                                                                                                                          |
| `start_s`     | Ja           | Startzeit des Segments in Sekunden.                                                                                                                                                                                 |
| `end_s`       | Ja           | Endzeit des Segments in Sekunden.                                                                                                                                                                                   |
| `speaker_id`  | Nein         | Kennung, die von demselben Sprecher gesprochene Segmente gruppiert, damit jeder Sprecher mit einer einheitlichen Stimme synchronisiert wird. Segmente ohne diese Angabe teilen sich einen einzigen Standardspeaker. |
| `external_id` | Nein         | Ihre eigene Kennung für das Segment: maximal 128 Zeichen und innerhalb des Transkripts eindeutig. Wird zum Zuordnen von Übersetzungen verwendet und bei jedem Abruf des Transkripts zurückgegeben.                  |
| `translation` | Nein         | Übersetzter Text für das Segment. Wird verwendet, um die über `target_language` erstellte Zielsprache vorzubelegen. Enthält ein Segment diese Angabe, müssen alle Segmente sie enthalten.                           |

### Segmentregeln

Das Transkript wird bei der Projekterstellung validiert:

* Segmente müssen nach `start_s` sortiert sein.
* Ein Segment muss zwischen 0,1 und 25 Sekunden lang sein, und `end_s` muss größer als `start_s` sein.
* Segmente mit derselben `speaker_id` dürfen sich nicht überschneiden, können sich aber an einem Endpunkt berühren. Segmente unterschiedlicher Sprecher können sich überschneiden, um gleichzeitiges Sprechen darzustellen.
* Ein Transkript darf höchstens 20.000 Segmente enthalten und die Datei darf maximal 4 MiB groß sein.

Bevorzugen Sie kürzere Segmente gegenüber längeren: Teilen Sie Sätze an jeder Pause von mindestens einer Sekunde. Die Segmentgrenzen bestimmen das Timing des synchronisierten Audios im Verhältnis zur Quelle. Ein Transkript mit präzisen, natürlichen Unterbrechungen erzeugt daher eine besser synchronisierte Tonspur.

## Projekt aus Ihrem Transkript erstellen

Übergeben Sie die Transkriptdatei beim Erstellen des Projekts. `source_language` ist bei der Bereitstellung eines Transkripts erforderlich, da die Quellmedien nicht automatisch transkribiert werden. Sprachen werden als BCP-47-Tags angegeben, beispielsweise `es` oder `fr-CA`. Alle akzeptierten Werte finden Sie unter [unterstützte Sprachen und Dialekte](/docs/de/overview/capabilities/dubbing#supported-languages).

```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);
```

Das Projekt importiert die Quellmedien weiterhin, bevor es synchronisiert werden kann. Fragen Sie daher seinen Status ab, bis er `ready` ist, wie im [Schnellstart](/docs/de/eleven-api/guides/cookbooks/dubbing) gezeigt. Ihre Segmente werden unverändert verwendet; es wird keine automatische Transkription ausgeführt.

## Eigene Übersetzungen bereitstellen

Übergeben Sie beim Hinzufügen einer Zielsprache eine `translations`-Map, um eigene Übersetzungen statt der maschinellen Übersetzung zu verwenden. Die Map wird über die `external_id` jedes Quellsegments oder über dessen interne Segment-`id`, falls Sie keine angegeben haben, referenziert und muss jedes Quellsegment genau einmal abdecken.

```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.",
  },
});
```

Jede Zielsprache benötigt einen eigenen Erstellungsaufruf. Wiederholen Sie diese Anfrage daher für jede Sprache, in die Sie synchronisieren möchten. Eine `translations`-Map darf höchstens 20.000 Einträge mit insgesamt maximal 4 MiB Text enthalten.

Wenn Ihre Segmente keine `external_id` haben, lesen Sie das Quelltranskript aus, um die interne `id` jedes Segments zu erhalten, und verwenden Sie stattdessen diese als Schlüssel:

```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);
}
```

### Übersetzungen bei der Projekterstellung vorbelegen

Für eine einzelne Zielsprache können Sie auf die separate `translations`-Map verzichten, indem Sie in der Transkriptdatei bei jedem Segment eine `translation` einschließen und beim Erstellen des Projekts `target_language` übergeben. Die Zielsprache wird mit Ihren Übersetzungen in die Warteschlange gestellt und beginnt mit der Generierung, sobald das Projekt bereit ist.

**`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."
    }
  ]
}
```

## Qualitätsaspekte

Die Qualität der Synchronisation hängt von dem Transkript und den Übersetzungen ab, auf denen sie basiert. Segment-Timings und Text werden direkt für Timing und Stimme der synchronisierten Wiedergabe verwendet. Ungenaue Timings oder Texte verschlechtern daher die Ausgabe. Übersetzungen werden an die Zeitspanne ihres Segments angepasst: Eine Übersetzung, die deutlich länger oder kürzer als das Original ist, beeinflusst das Sprechtempo der synchronisierten Sprache. Streben Sie daher Übersetzungen mit vergleichbarer gesprochener Länge an.

## Nächste Schritte

#### [Synchronisation verfeinern und neu generieren](/docs/de/eleven-api/guides/how-to/dubbing/refine-and-regenerate)

Bearbeiten Sie das Quelltranskript und die Übersetzungen und generieren Sie die Synchronisation neu.

#### [In mehrere Sprachen synchronisieren](/docs/de/eleven-api/guides/how-to/dubbing/multiple-languages)

Fügen Sie einem einzelnen Projekt mehrere Zielsprachen hinzu.

#### [API-Referenz](/docs/de/api-reference/dubbing/create-project)

Entdecken Sie alle Parameter und Antwortformate der Dubbing API.