Utiliser votre propre transcription

Créez un projet de doublage à partir de votre propre transcription et fournissez vos propres traductions.

Guide pratique · Suppose que vous savez créer des projets de doublage, comme indiqué dans le guide de démarrage rapide du doublage.

La fourniture de votre propre transcription et de vos propres traductions est réservée aux Workspaces Enterprise. Contactez les ventes pour y accéder.

Par défaut, l’API de doublage transcrit votre média source et traduit automatiquement la transcription dans chaque langue cible. Si vous disposez déjà d’une transcription précise, de sous-titres, d’un script ou d’un texte traduit par des professionnels, vous pouvez la fournir à la place. Ce guide présente le format du fichier de transcription, la création d’un projet à partir d’une transcription et la fourniture de vos propres traductions lors de l’ajout d’une langue.

Format du fichier de transcription

Une transcription est un fichier JSON comportant un unique tableau segments de premier niveau. Chaque segment correspond à une énonciation : le texte prononcé, ses heures de début et de fin, et éventuellement son locuteur.

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."
}
]
}
ChampObligatoireDescription
textOuiLe texte prononcé pendant le segment.
start_sOuiHeure de début du segment, en secondes.
end_sOuiHeure de fin du segment, en secondes.
speaker_idNonIdentifiant regroupant les segments prononcés par le même locuteur, afin que chaque locuteur soit doublé avec une voix cohérente. Les segments qui l’omettent partagent un locuteur par défaut unique.
external_idNonVotre propre identifiant pour le segment, limité à 128 caractères et unique dans la transcription. Utilisé pour identifier les traductions et renvoyé lors de chaque lecture de transcription.
translationNonTexte traduit pour le segment, utilisé pour initialiser la cible de langue créée via target_language. Si un segment l’inclut, tous les segments doivent l’inclure.

Règles relatives aux segments

La transcription est validée lors de la création du projet :

  • Les segments doivent être triés selon start_s.
  • Un segment doit durer entre 0,1 et 25 secondes, et end_s doit être supérieur à start_s.
  • Les segments ayant le même speaker_id ne doivent pas se chevaucher, bien qu’ils puissent se toucher à une extrémité. Les segments de locuteurs différents peuvent se chevaucher pour représenter des paroles simultanées.
  • Une transcription peut contenir au maximum 20 000 segments et le fichier peut peser au maximum 4 Mio.

Préférez les segments courts aux segments longs : découpez les phrases à chaque pause d’une seconde ou plus. Les limites des segments déterminent la synchronisation de l’audio doublé avec la source ; une transcription avec des pauses précises et naturelles produit donc un doublage mieux synchronisé.

Créer un projet à partir de votre transcription

Transmettez le fichier de transcription lors de la création du projet. source_language est requis lorsque vous fournissez une transcription, car le média source n’est pas transcrit automatiquement. Les langues sont indiquées sous forme de balises BCP-47, par exemple es ou fr-CA. Consultez les langues et dialectes pris en charge pour connaître toutes les valeurs acceptées.

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)

Le projet importe toujours le média source avant de pouvoir le doubler. Interrogez donc son état jusqu’à ce qu’il soit ready, comme indiqué dans le guide de démarrage rapide. Vos segments sont utilisés tels quels ; aucune transcription automatique n’est effectuée.

Fournir vos propres traductions

Lors de l’ajout d’une cible de langue, transmettez une table translations pour utiliser vos propres traductions plutôt qu’une traduction automatique. La table est indexée par l’external_id de chaque segment source, ou par son id de segment interne si vous n’en avez pas fourni. Elle doit couvrir chaque segment source exactement une fois.

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

Chaque cible de langue nécessite un appel de création ; répétez donc cette requête pour chaque langue dans laquelle vous souhaitez doubler. Une table translations peut contenir au maximum 20 000 entrées totalisant au plus 4 Mio de texte.

Si vos segments n’ont pas d’external_id, lisez la transcription source pour obtenir l’id interne de chaque segment et utilisez-les à la place comme clés :

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

Initialiser les traductions lors de la création du projet

Pour une seule langue cible, vous pouvez éviter la table translations distincte en incluant une translation dans chaque segment du fichier de transcription et en transmettant target_language lors de la création du projet. La cible de langue est créée avec le statut queued avec vos traductions, puis commence à générer une fois le projet prêt.

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

Considérations de qualité

La qualité du doublage dépend de celle de la transcription et des traductions sur lesquelles il repose. Les horaires des segments et le texte servent directement à synchroniser et interpréter le doublage ; des horaires ou un texte imprécis dégradent donc le résultat. Les traductions sont restituées pour correspondre à la durée de leur segment : une traduction beaucoup plus longue ou plus courte que l’original affecte le rythme de la parole doublée. Visez donc des traductions de durée parlée comparable.

Prochaines étapes