Communitygithub.com

AutoPulse Captions

Génère et grave des sous-titres viraux en micro-lignes (2-3 mots par ligne, mot actif surligné avec couleurs/styles personnalisables) sur des vidéos en anglais ou indonésien, en utilisant faster-whisper avec sélection automatique GPU/CPU, un correcteur de mots Mini-ML auto-apprenant, un éditeur de mots dans le navigateur, et l'incrustation FFmpeg.

Qu'est-ce que AutoPulse Captions ?

AutoPulse Captions est un pipeline de sous-titrage conçu pour créer des légendes de style viral (TikTok, Reels, Shorts) directement à partir de vidéos. Il utilise faster-whisper pour transcrire l'audio avec des horodatages par mot, puis découpe ces mots en micro-lignes de 2-3 mots chacune, où le mot actif est surligné avec des couleurs et styles personnalisables. Une fonctionnalité clé est son correcteur Mini-ML auto-apprenant (en anglais et indonésien), qui améliore les transcriptions basées sur les corrections de l'utilisateur via un éditeur de mots dans le navigateur (prévisualisation HTML). Le résultat est un fichier .ass (sous-titres avancés) qui peut être incrusté dans la vidéo avec FFmpeg. L'outil gère automatiquement la détection de l'orientation vidéo (portrait, paysage, carré) pour adapter la taille de police et les marges. La sélection du modèle Whisper (GPU ou CPU) est automatique grâce à un script de détection matérielle (`gpu_check.py`), avec une gestion avancée des erreurs mémoire (fallback automatique vers des modèles plus légers).

Compatible avec✓Claude Code~Codex CLI~Cursor✓Antigravity✓Gemini CLI
npx skills add https://github.com/RaphaelEvanW/autopulse-captions/tree/HEAD/.agents/skills/autopulse-captions

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait AutoPulse Captions ?

Pipeline : vidéo → Whisper (horodatages par mot) → Correction Mini-ML (EN/ID) → micro-lignes .ass (surlignage du mot actif) → éditeur de prévisualisation optionnel → incrustation FFmpeg.

Localisez PROJECT_DIR (le dossier contenant generate_captions.py et gpu_check.py) :

  1. Si generate_captions.py se trouve dans le même répertoire que ce SKILL.md, PROJECT_DIR est ce répertoire.
  2. Si ce SKILL.md est à l'intérieur de .agents/skills/autopulse-captions/, PROJECT_DIR est la racine du dépôt (../../..).
  3. Sinon, par défaut : C:\Users\Evan\.gemini\antigravity\scratch\autopulse-captions.

Toutes les commandes ci-dessous sont exécutées depuis PROJECT_DIR. Exécutable Python (PY) : PROJECT_DIR/.venv/Scripts/python.exe (Windows) ou PROJECT_DIR/.venv/bin/python (macOS/Linux).

0. Configuration initiale (uniquement si .venv/ ou hardware_profile.json est manquant)

  1. Vérifiez d'abord le matériel (pas d'installation requise, pas de réseau) : python gpu_check.py — indique quel modèle Whisper convient (ex. RTX 3060 → large-v3, GTX 1650 Ti 4 GB → large-v3-turbo, pas de GPU → CPU large-v3-turbo/small).
  2. Créez l'environnement virtuel avec Python 3.10–3.12 (3.13 max ; 3.14 n'a pas de wheels CTranslate2) : py -3.11 -m venv .venv (Windows) / python3.11 -m venv .venv.
  3. Installez les dépendances adaptées au matériel (nécessite un réseau) : PY install.py --download-model (ajoutez --install-ffmpeg sur Windows si FFmpeg est manquant). Il installe les bibliothèques d'exécution CUDA 12 uniquement lorsqu'un GPU NVIDIA est détecté, effectue un test GPU, et écrit hardware_profile.json.
  4. Vérifiez : l'installateur se termine par SELESAI -> Whisper : <modèle> / <périphérique> / <calcul>.

1. Demander avant d'exécuter (OBLIGATOIRE)

Avant de transcrire une nouvelle vidéo, demandez TOUJOURS d'abord à l'utilisateur (en utilisant ask_question ou du texte brut si non spécifié dans l'invite) — ne devinez pas :

  • Langue des sous-titres :
    1. Anglais (--lang en)
    2. Bahasa Indonesia (--lang id)
    3. Audio indonésien → sous-titres anglais (--lang id --translate)
    4. Détection automatique (--lang auto)
  • Uniquement si ce n'est pas clair : s'il faut incruster dans la vidéo (--burn) ou générer uniquement le fichier .ass.

Transmettez toujours --lang explicitement lorsque l'agent exécute le script (l'invite interactive propre du script n'apparaît que dans un terminal interactif réel).

2. Générer les sous-titres

PY generate_captions.py "<vidéo>" --lang en --burn --output-video "<sortie>.mp4"
  • Modèle/périphérique/calcul par défaut sur auto (depuis gpu_check.py) avec repli automatique (ex. large-v3 → large-v3-turbo → CPU) en cas d'épuisement de la mémoire ou d'erreurs CUDA. Ne remplacez pas --model sauf demande explicite de l'utilisateur.
  • L'orientation (portrait / paysage / carré) est détectée via ffprobe ; la taille de police, les marges et la longueur des lignes s'adaptent automatiquement.
  • La première exécution d'un modèle le télécharge depuis Hugging Face (nécessite un réseau).
  • Les sorties sont placées à côté de l'entrée : <nom>.ass, <nom>_raw_words.json, <nom>_captioned.mp4 ; plus last_run.json et un preview_player.html mis à jour.

Validez : code de sortie 0, la ligne de log model dipakai : ..., et la vidéo de sortie existe. Signalez à l'utilisateur le modèle utilisé et la liste des mots suspects imprimés par le script.

3. Révision et correction (en cas de mots suspects ou si l'utilisateur souhaite des modifications)

  1. Ouvrez PROJECT_DIR/preview_player.html dans le navigateur (--open-preview le fait). L'utilisateur modifie les mots/horodatages, insère des mots manquants (➕ Kata), puis clique sur 💾 Sauvegarder words.json (télécharge words_revised.json).
  2. Régénérez à partir du JSON révisé — cela entraîne également Mini-ML (learned_memory.json, profils en/id séparés) en comparant avec la dernière sortie brute de Whisper :
    PY generate_captions.py "<chemin>/words_revised.json" --burn --output-video "<sortie>.mp4"
    
    La vidéo source est extraite de last_run.json (remplacez avec --video).

4. Enchaînement après génération vidéo

Lorsqu'une autre étape a produit une vidéo (ex. draft.mp4), posez la question sur la langue, puis exécutez l'étape 2 sur ce fichier avec --output-video final.mp4.

Dépannage

SymptômeCorrectif
No module named faster_whisperUtilisez PY depuis .venv, ou exécutez l'étape 0
Toutes les options GPU échouent, bascule vers CPUMettez à jour le pilote NVIDIA, relancez PY install.py
Lent sur CPUAttendu (~1× temps réel). Suggérez --model small pour les brouillons
ffmpeg tidak ditemukanwinget install Gyan.FFmpeg / brew install ffmpeg / apt install ffmpeg
Mots incorrects / argot / nomsUtilisez l'éditeur (étape 3) pour que Mini-ML apprenne ; ou --hotwords "Nom1 Nom2"
Mauvaise qualité de traduction--translate n'utilise jamais turbo (non entraîné pour cela) ; nécessite ~ ≥ 3,6 Go de VRAM libre pour large-v3

Référence complète des options : references/cli.md · Fonctionnement de Mini-ML : references/mini-ml.md

Skills associés