Hoppa till navigering

Använd ditt eget transkript

Skapa ett dubbningsprojekt från ditt eget transkript och använd dina egna översättningar.

Instruktionsguide · Förutsätter att du är bekant med att skapa dubbningsprojekt, enligt snabbstarten för dubbning.

Att använda egna transkript och översättningar är endast tillgängligt för företagsarbetsytor. Kontakta säljteamet för åtkomst.

Som standard transkriberar Dubbing API ditt källmaterial och maskinöversätter transkriptet till varje målspråk. Om du redan har ett korrekt transkript — undertexter, ett manus eller professionellt översatt text — kan du använda det i stället. Den här guiden täcker transkriptfilformatet, hur du skapar ett projekt från ett transkript och hur du tillhandahåller egna översättningar när du lägger till ett språk.

Transkriptfilformat

Ett transkript är en JSON-fil med en enda segments-array på toppnivå. Varje segment är ett yttrande: den talade texten, när den börjar och slutar samt valfritt vem som säger den.

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."
}
]
}
FältKrävsBeskrivning
textJaTexten som sägs under segmentet.
start_sJaSegmentets starttid i sekunder.
end_sJaSegmentets sluttid i sekunder.
speaker_idNejIdentifierare som grupperar segment från samma talare, så att varje talare dubbas med en konsekvent röst. Segment som saknar den delar en standardtalare.
external_idNejDin egen identifierare för segmentet, högst 128 tecken och unik inom transkriptet. Används för att nyckla översättningar och returneras vid varje läsning av transkriptet.
translationNejÖversatt text för segmentet, som används för att initiera det språkmål som skapas via target_language. Om ett segment innehåller en måste alla segment göra det.

Segmentregler

Transkriptet valideras när du skapar projektet:

  • Segment måste vara sorterade efter start_s.
  • Ett segment måste vara mellan 0,1 och 25 sekunder långt, och end_s måste vara större än start_s.
  • Segment med samma speaker_id får inte överlappa varandra, men de kan mötas vid en slutpunkt. Segment från olika talare kan överlappa för att representera samtidigt tal.
  • Ett transkript kan innehålla högst 20 000 segment och filen får vara högst 4 MiB.

Föredra kortare segment framför längre: dela upp meningar där det finns en paus på en sekund eller längre. Segmentgränser avgör hur det dubbade ljudet synkroniseras med källan, så ett transkript med korrekta, naturliga pauser ger en bättre synkroniserad dubbning.

Skapa ett projekt från ditt transkript

Skicka transkriptfilen när du skapar projektet. source_language krävs när du tillhandahåller ett transkript, eftersom källmaterialet inte transkriberas automatiskt. Språk anges som BCP-47-taggar, till exempel es eller fr-CA. Se språk och dialekter som stöds för alla godkända värden.

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)

Projektet läser fortfarande in källmaterialet innan det kan dubbas, så kontrollera dess status tills den är ready, enligt snabbstarten. Dina segment används som de är; ingen automatisk transkribering körs.

Tillhandahåll dina egna översättningar

När du lägger till ett språkmål skickar du en translations-mappning för att använda egna översättningar i stället för maskinöversättning. Mappningen nycklas av varje källsegments external_id, eller dess interna segment-id om du inte angav något, och måste täcka varje källsegment exakt en gång.

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

Varje språkmål kräver ett skapandeanrop, så upprepa denna begäran för varje språk du vill dubba till. En translations-mappning kan innehålla högst 20 000 poster med sammanlagt högst 4 MiB text.

Om dina segment saknar external_id läser du källtranskriptet för att hämta varje segments interna id och använder dem som nycklar i stället:

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

Initiera översättningar när projektet skapas

För ett enda målspråk kan du hoppa över den separata translations-mappningen genom att inkludera en translation i varje segment i transkriptfilen och skicka target_language när du skapar projektet. Språkmålet skapas i kö med dina översättningar och börjar genereras när projektet är klart.

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

Kvalitetsaspekter

Dubbningen blir bara så bra som transkriptet och översättningarna den bygger på. Segmentens tidsangivelser och text används direkt för att tajma och röstsätta den dubbade produktionen, så felaktiga tidsangivelser eller text försämrar resultatet. Översättningar återges för att passa segmentets tidsintervall: en översättning som är mycket längre eller kortare än originalet påverkar tempot i det dubbade talet, så sträva efter översättningar med jämförbar talad längd.

Nästa steg