Passer à la navigation

Traduction et doublage

Traduction et doublage

Si vous avez seulement besoin d’une traduction de langue standard avec lipsync, le flux dubParams en un seul appel est plus simple, voir le guide Doublage. Ce tutoriel s’adresse aux utilisateurs qui veulent un contrôle fin de l’orchestration entre ElevenLabs, OpenAI et Sync Labs.

La traduction et le doublage vidéo vous permettent de convertir votre contenu dans différentes langues tout en conservant des mouvements de lèvres naturels et une bonne qualité de voix. Ce tutoriel vous montre comment traduire et doubler des vidéos de manière programmatique, pour rendre votre contenu accessible à un public mondial.

Suivez ces étapes pour exécuter l’exemple de traduction/doublage:

1

Cloner le repository Github

Clonez le repository sync-examples.

git clone https://github.com/synchronicity-labs/sync-examples.git
cd sync-examples/translation/python
2

Configurer l'environnement

Créez un environnement virtuel et installez les dépendances requises:

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
3

Configurer les entrées et les paramètres

Modifiez le fichier args.py pour configurer les entrées et paramètres suivants:

  • SYNCLABS_API_KEY: votre clé API Sync Labs
  • ELEVENLABS_API_KEY: votre clé API ElevenLabs
  • OPENAI_API_KEY: votre clé API OpenAI

Paramètres requis:

  • input_vid_url: URL de la vidéo à traduire/doubler.
  • target_language: langue cible pour la traduction (par ex. “Spanish”)
  • output_json_path: chemin du fichier de sortie JSON

Paramètres optionnels:

  • source_language: langue source de la vidéo (laisser vide pour détection automatique)
  • voice_id: ID de voix ElevenLabs (laisser vide pour cloner automatiquement la voix de la vidéo d’entrée)
  • sync_mode: mode de synchronisation du texte à la vidéo quand les durées ne correspondent pas (par défaut: “bounce”)
  • lipsync_model: modèle lipsync Sync.so (par défaut: “lipsync-2”)
  • tts_model: modèle synthèse vocale ElevenLabs (par défaut: “eleven_multilingual_v2”)
  • gpt_model: modèle GPT OpenAI pour la traduction (par défaut: “gpt-3.5-turbo”)
  • transcription_model: modèle OpenAI pour la transcription (par défaut: “whisper-1”)
  • segment_start: heure de début du segment vidéo à traduire/doubler (en secondes, -1 pour toute la vidéo)
  • segment_end: heure de fin du segment vidéo à traduire/doubler (en secondes, -1 pour toute la vidéo)
  • Le fichier vidéo d’entrée doit contenir l’audio qui sera utilisé pour le clonage de voix, si aucun ID de voix n’est fourni.
  • Consultez ElevenLabs et OpenAI pour plus d’informations sur les langues et modèles pris en charge.
4

Traduire/Doubler des vidéos

Exécutez le script Python:

python main.py

Cette commande lance le processus de traduction/doublage de la vidéo selon la configuration de args.py.

À la fin, un fichier JSON est enregistré dans le chemin indiqué par output_json_path, avec les informations suivantes:

  • input_video: URL de la vidéo originale traitée
  • generated_audio: URL du fichier audio traduit
  • lipsync_jobID: ID unique du job lip-sync
  • outputUrl: URL d’accès à la vidéo finale traduite/doublée
  • voice_id: ID de la voix utilisée pour la traduction (généré automatiquement s’il n’est pas fourni)
  • Hébergement de fichier temporaire: ce code utilise le service d’hébergement temporaire Uguu pour générer des URLs de fichiers audio TTS. Ces URLs expirent après 3 heures. Pour utiliser votre propre service d’hébergement, modifiez upload_file_uguu() dans FileProcessor.py.
  • Polling de job: le polling de fin de job lipsync expire après 60 minutes. Ajustez cette limite dans LipSyncService.py ou utilisez fetch_updates.py pour récupérer les URLs de sortie via output_json_path.

Ressources associées