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) :
- Si
generate_captions.pyse trouve dans le même répertoire que ceSKILL.md,PROJECT_DIRest ce répertoire. - Si ce
SKILL.mdest à l'intérieur de.agents/skills/autopulse-captions/,PROJECT_DIRest la racine du dépôt (../../..). - 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)
- 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 → CPUlarge-v3-turbo/small). - 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. - Installez les dépendances adaptées au matériel (nécessite un réseau) :
PY install.py --download-model(ajoutez--install-ffmpegsur 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 écrithardware_profile.json. - 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 :
- Anglais (
--lang en) - Bahasa Indonesia (
--lang id) - Audio indonésien → sous-titres anglais (
--lang id --translate) - Détection automatique (
--lang auto)
- Anglais (
- 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(depuisgpu_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--modelsauf 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; pluslast_run.jsonet unpreview_player.htmlmis à 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)
- Ouvrez
PROJECT_DIR/preview_player.htmldans le navigateur (--open-previewle fait). L'utilisateur modifie les mots/horodatages, insère des mots manquants (➕ Kata), puis clique sur 💾 Sauvegarder words.json (téléchargewords_revised.json). - Régénérez à partir du JSON révisé — cela entraîne également Mini-ML (
learned_memory.json, profilsen/idséparés) en comparant avec la dernière sortie brute de Whisper :La vidéo source est extraite dePY generate_captions.py "<chemin>/words_revised.json" --burn --output-video "<sortie>.mp4"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ôme | Correctif |
|---|---|
No module named faster_whisper | Utilisez PY depuis .venv, ou exécutez l'étape 0 |
| Toutes les options GPU échouent, bascule vers CPU | Mettez à jour le pilote NVIDIA, relancez PY install.py |
| Lent sur CPU | Attendu (~1× temps réel). Suggérez --model small pour les brouillons |
ffmpeg tidak ditemukan | winget install Gyan.FFmpeg / brew install ffmpeg / apt install ffmpeg |
| Mots incorrects / argot / noms | Utilisez 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