Skip to navigation

Gebruik je eigen transcript

Maak een nasynchronisatieproject op basis van je eigen transcript en gebruik je eigen vertalingen.

Handleiding · Hierbij wordt ervan uitgegaan dat je bekend bent met het maken van nasynchronisatieprojecten, zoals getoond in de Dubbing quickstart.

Je eigen transcript en vertalingen gebruiken is alleen beschikbaar voor enterprise-workspaces. Neem contact op met sales voor toegang.

Standaard transcribeert de Dubbing API je bronmedia en vertaalt deze het transcript automatisch naar elke doeltaal. Als je al een nauwkeurig transcript hebt — ondertiteling, een script of professioneel vertaalde tekst — kun je dat in plaats daarvan gebruiken. Deze handleiding behandelt de bestandsindeling van het transcript, hoe je een project maakt op basis van een transcript en hoe je je eigen vertalingen opgeeft wanneer je een taal toevoegt.

Bestandsindeling voor transcript

Een transcript is een JSON-bestand met één segments-array op het hoogste niveau. Elk segment is één uiting: de gesproken tekst, de begin- en eindtijd, en optioneel wie deze uitspreekt.

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."
}
]
}
VeldVereistBeschrijving
textJaDe tekst die tijdens het segment wordt uitgesproken.
start_sJaBegintijd van het segment, in seconden.
end_sJaEindtijd van het segment, in seconden.
speaker_idNeeID waarmee segmenten van dezelfde spreker worden gegroepeerd, zodat elke spreker met een consistente stem wordt nagesynchroniseerd. Segmenten zonder dit veld delen één standaardspreker.
external_idNeeJe eigen ID voor het segment, maximaal 128 tekens en uniek binnen het transcript. Wordt gebruikt als sleutel voor vertalingen en teruggegeven bij elke keer dat het transcript wordt gelezen.
translationNeeVertaalde tekst voor het segment, gebruikt om de via target_language gemaakte doeltaal te vullen. Als één segment dit bevat, moeten alle segmenten dit bevatten.

Regels voor segmenten

Het transcript wordt gevalideerd wanneer je het project maakt:

  • Segmenten moeten zijn gesorteerd op start_s.
  • Een segment moet tussen 0,1 en 25 seconden lang zijn en end_s moet groter zijn dan start_s.
  • Segmenten met dezelfde speaker_id mogen niet overlappen, maar mogen elkaar wel raken op een eindpunt. Segmenten van verschillende sprekers mogen overlappen om gelijktijdige spraak weer te geven.
  • Een transcript mag maximaal 20.000 segmenten bevatten en het bestand mag maximaal 4 MiB zijn.

Geef de voorkeur aan kortere segmenten boven langere: splits zinnen waar er een pauze van één seconde of langer is. De segmentgrenzen bepalen hoe de nagesynchroniseerde audio wordt getimed ten opzichte van de bron, dus een transcript met nauwkeurige, natuurlijke onderbrekingen levert een beter gesynchroniseerde nasynchronisatie op.

Een project maken op basis van je transcript

Geef het transcriptbestand door wanneer je het project maakt. source_language is vereist wanneer je een transcript opgeeft, omdat de bronmedia niet automatisch worden getranscribeerd. Talen worden opgegeven als BCP-47-tags, bijvoorbeeld es of fr-CA. Bekijk de ondersteunde talen en dialecten voor alle geaccepteerde waarden.

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)

Het project verwerkt de bronmedia nog steeds voordat deze kan worden nagesynchroniseerd, dus poll het totdat de status ready is, zoals getoond in de quickstart. Je segmenten worden ongewijzigd gebruikt; er wordt geen automatische transcriptie uitgevoerd.

Je eigen vertalingen gebruiken

Wanneer je een doeltaal toevoegt, geef je een translations-map door om je eigen vertalingen te gebruiken in plaats van automatische vertaling. De map gebruikt als sleutel de external_id van elk bronsegment, of de interne segment-id als je er geen hebt opgegeven, en moet elk bronsegment precies één keer bevatten.

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

Elke doeltaal vereist één create-aanroep, dus herhaal deze aanvraag voor elke taal waarin je wilt nasynchroniseren. Een translations-map mag maximaal 20.000 invoeren bevatten, met in totaal maximaal 4 MiB aan tekst.

Als je segmenten geen external_id hebben, lees je het brontranscript om de interne id van elk segment op te halen en gebruik je die als sleutels:

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

Vertalingen toevoegen bij het maken van een project

Voor één doeltaal kun je de afzonderlijke translations-map overslaan door bij elk segment in het transcriptbestand een translation op te nemen en target_language door te geven wanneer je het project maakt. De doeltaal wordt in de wachtrij gemaakt met je vertalingen en begint met genereren zodra het project klaar is.

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

Kwaliteitsoverwegingen

De kwaliteit van de nasynchronisatie is afhankelijk van het transcript en de vertalingen waarop deze is gebaseerd. Segmenttimings en tekst worden rechtstreeks gebruikt om de timing en stem van de nagesynchroniseerde uitvoering te bepalen, dus onnauwkeurige timings of tekst verminderen de kwaliteit van de output. Vertalingen worden weergegeven binnen het tijdsbestek van hun segment: een vertaling die veel langer of korter is dan het origineel, beïnvloedt het tempo van de nagesynchroniseerde spraak. Streef daarom naar vertalingen met een vergelijkbare gesproken lengte.

Volgende stappen