¿Qué hace AutoPulse Captions?
Pipeline: video → Whisper (marcas de tiempo de palabras) → Corrección Mini-ML (EN/ID) →
micro-chunks .ass (resaltado de palabra activa) → editor de vista previa opcional → quema FFmpeg.
Localiza PROJECT_DIR (la carpeta que contiene generate_captions.py y gpu_check.py):
- Si
generate_captions.pyestá en el mismo directorio que esteSKILL.md,PROJECT_DIRes este directorio. - Si este
SKILL.mdestá dentro de.agents/skills/autopulse-captions/,PROJECT_DIRes la raíz del repositorio (../../..). - De lo contrario, por defecto
C:\Users\Evan\.gemini\antigravity\scratch\autopulse-captions.
Todos los comandos siguientes se ejecutan desde PROJECT_DIR.
Ejecutable de Python (PY): PROJECT_DIR/.venv/Scripts/python.exe (Windows) o PROJECT_DIR/.venv/bin/python (macOS/Linux).
0. Configuración inicial (solo si falta .venv/ o hardware_profile.json)
- Verifica el hardware primero (no necesita instalación, no requiere red):
python gpu_check.py— muestra qué modelo de Whisper es adecuado (ej. RTX 3060 →large-v3, GTX 1650 Ti 4 GB →large-v3-turbo, sin GPU → CPUlarge-v3-turbo/small). - Crea el venv con Python 3.10–3.12 (3.13 máximo; 3.14 no tiene ruedas de CTranslate2):
py -3.11 -m venv .venv(Windows) /python3.11 -m venv .venv. - Instala las dependencias según el hardware (necesita red):
PY install.py --download-model(añade--install-ffmpegen Windows si falta FFmpeg). Instala las bibliotecas de runtime de CUDA 12 solo cuando se detecta una GPU NVIDIA, prueba la GPU, y escribehardware_profile.json. - Verifica: el instalador termina con
SELESAI -> Whisper: <modelo> / <dispositivo> / <cómputo>.
1. Preguntar antes de ejecutar (OBLIGATORIO)
Antes de transcribir un nuevo video, SIEMPRE pregúntale primero al usuario (usando ask_question o texto sin formato si no se especifica en el prompt) — no adivines:
- Idioma de los subtítulos:
- Inglés (
--lang en) - Bahasa Indonesia (
--lang id) - Audio en indonesio → subtítulos en inglés (
--lang id --translate) - Detección automática (
--lang auto)
- Inglés (
- Solo si no está claro: si quemar los subtítulos en el video (
--burn) o solo generar.ass.
Pasa siempre --lang explícitamente cuando el agente ejecute el script (el mensaje interactivo
propio del script solo aparece en una terminal interactiva real).
2. Generar subtítulos
PY generate_captions.py "<video>" --lang en --burn --output-video "<out>.mp4"
- Modelo/dispositivo/cómputo por defecto son
auto(degpu_check.py) con fallback automático (ej.large-v3 → large-v3-turbo → CPU) en caso de falta de memoria o errores de CUDA. No sobrescribas--modela menos que el usuario lo pida. - La orientación (retrato / paisaje / cuadrado) se detecta mediante ffprobe; el tamaño de fuente, márgenes y longitud de línea se adaptan automáticamente.
- La primera ejecución de un modelo lo descarga de Hugging Face (necesita red).
- Las salidas se colocan junto a la entrada:
<nombre>.ass,<nombre>_raw_words.json,<nombre>_captioned.mp4; además delast_run.jsony unpreview_player.htmlactualizado.
Valida: código de salida 0, la línea de registro model dipakai: ..., y que el video de salida exista.
Reporta al usuario el modelo utilizado y la lista de palabras sospechosas que el script imprime.
3. Revisar y corregir (cuando hay palabras sospechosas o el usuario quiere cambios)
- Abre
PROJECT_DIR/preview_player.htmlen el navegador (--open-previewlo hace). El usuario edita palabras/marcas de tiempo, inserta palabras omitidas (➕ Kata), luego hace clic en 💾 Simpan words.json (descargawords_revised.json). - Vuelve a renderizar desde el JSON revisado — esto también entrena a Mini-ML (
learned_memory.json, perfiles separadosen/id) comparando con la última salida de Whisper en bruto:El video de origen se toma dePY generate_captions.py "<ruta>/words_revised.json" --burn --output-video "<out>.mp4"last_run.json(sobrescribe con--video).
4. Encadenar después de la generación de video
Cuando otro paso produjo un video (ej. draft.mp4), pregunta el idioma, luego ejecuta
el paso 2 en ese archivo con --output-video final.mp4.
Solución de problemas
| Síntoma | Solución |
|---|---|
No module named faster_whisper | Usa PY desde .venv, o ejecuta el paso 0 |
| Todas las opciones de GPU fallan, cae a CPU | Actualiza el controlador NVIDIA, vuelve a ejecutar PY install.py |
| Lento en CPU | Esperado (~1× tiempo real). Sugiere --model small para borradores |
ffmpeg tidak ditemukan | winget install Gyan.FFmpeg / brew install ffmpeg / apt install ffmpeg |
| Palabras incorrectas / jerga / nombres | Usa el editor (paso 3) para que Mini-ML aprenda; o --hotwords "Nombre1 Nombre2" |
| Mala calidad de traducción | --translate nunca usa turbo (no entrenado para ello); necesita ≥ ~3.6 GB de VRAM libre para large-v3 |
Referencia completa de banderas: references/cli.md · Cómo funciona Mini-ML: references/mini-ml.md