Skip to navigation

Naar meerdere talen nasynchroniseren

Voeg meerdere doeltalen toe aan één project en download elke nasynchronisatie.

Handleiding · Hierbij wordt ervan uitgegaan dat je een nasynchronisatieproject hebt gemaakt, zoals getoond in de Dubbing quickstart.

Eén project bevat één brontranscript en je kunt zoveel doeltalen toevoegen als je nodig hebt. Elke taal wordt onafhankelijk gegenereerd en heeft een eigen status en output, zodat je de bron één keer vertaalt en daaruit elke nasynchronisatie maakt.

Meerdere talen toevoegen

Voeg één doeltaal toe voor elke taal waarin je wilt nasynchroniseren. Elke taal begint met de status queued en wordt gegenereerd zodra het project ready is.

import os
from dotenv import load_dotenv
from elevenlabs.client import ElevenLabs
load_dotenv()
elevenlabs = ElevenLabs(api_key=os.getenv("ELEVENLABS_API_KEY"))
project_id = "proj_1601kwkyxp0hfzvtmyxwqxx6mcy3"
target_languages = ["es", "fr", "de", "ja"]
languages = [
elevenlabs.dubbing.project.language.create(project_id, target_language=lang)
for lang in target_languages
]

Je kunt ook de eerste taal in de wachtrij zetten wanneer je het project maakt door target_language door te geven aan project.create. Voeg verdere talen toe met language.create, zoals hierboven getoond.

Talen worden opgegeven als BCP-47-tags, bijvoorbeeld es of fr-CA. Bekijk de ondersteunde talen en dialecten voor alle geaccepteerde waarden.

Elke taal afzonderlijk volgen

Talen worden parallel gegenereerd en zijn op verschillende momenten klaar. Geef de talen van het project weer om de status van elke taal te controleren, in plaats van ze één voor één te pollen.

import time
while True:
result = elevenlabs.dubbing.project.language.list(project_id)
pending = [l for l in result.languages if l.status in ("queued", "processing")]
if not pending:
break
print(f"{len(pending)} language(s) still generating...")
time.sleep(5)

Elke voltooide nasynchronisatie downloaden

Zodra een taal de status completed bereikt, bevat outputs.lossless_audio een ondertekende download-URL. Download elke nasynchronisatie en sla talen over die zijn mislukt.

import requests
result = elevenlabs.dubbing.project.language.list(project_id)
for language in result.languages:
if language.status != "completed":
print(f"Skipping {language.target_language}: {language.status}")
continue
audio = requests.get(language.outputs.lossless_audio)
with open(f"dubbed_{language.target_language}.wav", "wb") as f:
f.write(audio.content)
print(f"Saved dubbed_{language.target_language}.wav")

Ondertekende URL’s verlopen ongeveer een uur nadat ze zijn uitgegeven. Als een download mislukt omdat de URL is verlopen, haal je de taal opnieuw op met language.get om een nieuwe URL te krijgen.

Als een taal niet kan worden gegenereerd, voeg je deze opnieuw toe met language.create aan hetzelfde project, in plaats van een nieuw project te maken. Het project en het transcript kunnen opnieuw worden gebruikt, dus alleen de mislukte taal wordt opnieuw gegenereerd.