Eigenes Transkript verwenden

Erstellen Sie ein Synchronisationsprojekt aus Ihrem eigenen Transkript und stellen Sie eigene Übersetzungen bereit.

Anleitung · Setzt voraus, dass Sie mit dem Erstellen von Synchronisationsprojekten vertraut sind, wie im Synchronisations-Schnellstart gezeigt.

Eigene Transkripte und Übersetzungen sind nur für Enterprise-Workspaces verfügbar. Wenden Sie sich für Zugang an den Vertrieb.

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
{
"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."
}
]
}
FeldErforderlichBeschreibung
textJaDer während des Segments gesprochene Text.
start_sJaStartzeit des Segments in Sekunden.
end_sJaEndzeit des Segments in Sekunden.
speaker_idNeinKennung, 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_idNeinIhre 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.
translationNeinÜ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.

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)

Das Projekt importiert die Quellmedien weiterhin, bevor es synchronisiert werden kann. Fragen Sie daher seinen Status ab, bis er ready ist, wie im Schnellstart 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.

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

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:

transcript = elevenlabs.dubbing.project.transcript.get(project_id)
for segment in transcript.segments:
print(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
{
"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