Skip to content

Latest commit

 

History

History
201 lines (125 loc) · 9.1 KB

File metadata and controls

201 lines (125 loc) · 9.1 KB
VideoLingo Logo

Connecter le Monde, Image par Image

Huanshere%2FVideoLingo | Trendshift

English简体中文繁體中文日本語EspañolРусскийFrançais

VideoLingo est un outil tout-en-un de traduction, de localisation et de doublage vidéo visant à générer des sous-titres de qualité Netflix. Il élimine les traductions automatiques rigides et les sous-titres multi-lignes tout en ajoutant un doublage de haute qualité, permettant le partage des connaissances à l'échelle mondiale au-delà des barrières linguistiques.

Fonctionnalités principales :

  • 🎥 Téléchargement de vidéos YouTube via yt-dlp

  • 🎙️ Reconnaissance de sous-titres au niveau des mots et à faible illusion avec WhisperX

  • 📝 Segmentation des sous-titres basée sur le NLP et l'IA

  • 📚 Terminologie personnalisée + générée par IA pour une traduction cohérente

  • 🔄 Processus en 3 étapes : Traduction-Réflexion-Adaptation pour une qualité cinématographique

  • ✅ Sous-titres uniquement sur une ligne, aux normes Netflix

  • 🗣️ Doublage avec GPT-SoVITS, Azure, OpenAI et plus

  • 🚀 Démarrage et traitement en un clic dans Streamlit

  • 🌍 Support multi-langues dans l'interface utilisateur Streamlit

  • 📝 Journalisation détaillée avec reprise de la progression

  • 🔍 Sélecteur de modèles avec recherche — récupère automatiquement la liste complète des modèles depuis votre API

  • ⏯️ Contrôle des tâches — mettez en pause, reprenez ou arrêtez le traitement à n'importe quelle étape

Différence par rapport aux projets similaires : Sous-titres sur une seule ligne uniquement, qualité de traduction supérieure, expérience de doublage transparente

🎥 Démo

Sous-titres Doubles


trans.mp4

Clonage Vocal Cosy2


dubbing.mp4

GPT-SoVITS avec ma voix


sovits.mp4

Support des langues

Support des langues d'entrée (d'autres à venir) :

🇺🇸 Anglais 🤩 | 🇷🇺 Russe 😊 | 🇫🇷 Français 🤩 | 🇩🇪 Allemand 🤩 | 🇮🇹 Italien 🤩 | 🇪🇸 Espagnol 🤩 | 🇯🇵 Japonais 😐 | 🇨🇳 Chinois* 😊

*Le chinois utilise un modèle whisper séparé amélioré par la ponctuation, pour l'instant...

La traduction prend en charge toutes les langues, tandis que la langue de doublage dépend de la méthode TTS choisie.

Installation

Vous rencontrez un problème ? Discutez avec notre agent IA gratuit en ligne ici pour vous aider.

Note : Pour les utilisateurs Windows avec un GPU NVIDIA, suivez ces étapes avant l'installation :

  1. Installez CUDA Toolkit 12.6
  2. Installez CUDNN 9.3.0
  3. Ajoutez C:\Program Files\NVIDIA\CUDNN\v9.3\bin\12.6 à votre PATH système
  4. Redémarrez votre ordinateur

Note : FFmpeg est requis. Veuillez l'installer via les gestionnaires de paquets :

  • Windows : choco install ffmpeg (via Chocolatey)
  • macOS : brew install ffmpeg (via Homebrew)
  • Linux : sudo apt install ffmpeg (Debian/Ubuntu)

Option A : Utiliser uv (Recommande)

uv telecharge automatiquement Python 3.10 et cree un environnement isole. Pas besoin d'installer Python ou Anaconda manuellement.

  1. Clonez le depot
git clone https://github.com/Huanshere/VideoLingo.git
cd VideoLingo
  1. Configuration en une commande (installe uv + Python 3.10 + toutes les dependances)
python setup_env.py
  1. Demarrer l'application
.venv\Scripts\streamlit run st.py        # Windows
.venv/bin/streamlit run st.py            # macOS / Linux

Ou double-cliquez sur OneKeyStart_uv.bat sous Windows.

Option B : Utiliser Conda

⚠️ Non recommandé. Cette méthode ne sera plus maintenue à l'avenir. Veuillez utiliser uv (Option A) ci-dessus.

Cliquez pour afficher les etapes d'installation avec Conda
  1. Clonez le depot
git clone https://github.com/Huanshere/VideoLingo.git
cd VideoLingo
  1. Installez les dependances (necessite python=3.10)
conda create -n videolingo python=3.10.0 -y
conda activate videolingo
python install.py
  1. Demarrer l'application
streamlit run st.py

Docker

Alternativement, vous pouvez utiliser Docker (nécessite CUDA 12.4 et NVIDIA Driver version >550), voir Documentation Docker :

docker build -t videolingo .
docker run -d -p 8501:8501 --gpus all videolingo

APIs

VideoLingo prend en charge le format d'API OpenAI et diverses interfaces TTS :

  • LLM : claude-sonnet-4.6, gpt-5.4, gemini-3.1-pro, deepseek-v3, grok-4.1, ... (triés par qualité ; pour les options économiques essayez gemini-3-flash ou gpt-5.4-mini)
  • WhisperX : Exécutez whisperX localement ou utilisez l'API 302.ai
  • TTS : azure-tts, openai-tts, siliconflow-fishtts, fish-tts, GPT-SoVITS, edge-tts, *custom-tts(Vous pouvez modifier votre propre TTS dans custom_tts.py !)

Note : VideoLingo fonctionne avec 302.ai - une seule clé API pour tous les services (LLM, WhisperX, TTS). Ou exécutez localement avec Ollama et Edge-TTS gratuitement, sans API nécessaire !

Pour des instructions détaillées sur l'installation, la configuration de l'API et le mode batch, veuillez consulter la documentation : English | 中文

Limitations actuelles

  1. Les performances de transcription de WhisperX peuvent être affectées par le bruit de fond de la vidéo, car il utilise le modèle wav2vac pour l'alignement. Pour les vidéos avec une musique de fond forte, veuillez activer l'amélioration de la séparation vocale. De plus, les sous-titres se terminant par des chiffres ou des caractères spéciaux peuvent être tronqués prématurément en raison de l'incapacité de wav2vac à mapper les caractères numériques (par exemple, "1") à leur forme parlée ("un").

  2. L'utilisation de modèles plus faibles peut entraîner des erreurs lors des processus intermédiaires en raison des exigences strictes de format JSON pour les réponses. Si cette erreur se produit, veuillez supprimer le dossier output et réessayer avec un LLM différent, sinon l'exécution répétée lira la réponse erronée précédente causant la même erreur.

  3. La fonction de doublage peut ne pas être parfaite à 100% en raison des différences de débit et d'intonation entre les langues, ainsi que de l'impact de l'étape de traduction. Cependant, ce projet a mis en œuvre un traitement d'ingénierie extensif pour les débits de parole afin d'assurer les meilleurs résultats de doublage possibles.

  4. La reconnaissance de transcription vidéo multilingue ne conservera que la langue principale. C'est parce que whisperX utilise un modèle spécialisé pour une seule langue lors de l'alignement forcé des sous-titres au niveau des mots, et supprimera les langues non reconnues.

  5. Impossible de doubler séparément plusieurs personnages, car la capacité de distinction des locuteurs de whisperX n'est pas suffisamment fiable.

📄 Licence

Ce projet est sous licence Apache 2.0. Remerciements spéciaux aux projets open source suivants pour leurs contributions :

whisperX, yt-dlp, json_repair, BELLE

📬 Contactez-moi

⭐ Historique des étoiles

Star History Chart


Si vous trouvez VideoLingo utile, donnez-moi une ⭐️ !