name: subtítulos-locución description: Película → locución en birmano: transcripción con diarización de hablantes, asignación de voces medida, subtítulos listos para el editor y pista sin música. Incluye empaquetador skill-forge.
Locución de películas en birmano — Habilidades de agente
Dos Habilidades de agente para crear una locución en birmano (doblaje) a partir de una película, y para crear habilidades similares.
| Carpeta | Qué es |
|---|---|
subtítulos-locución/ | La habilidad: convierte un archivo de video o audio en una locución en birmano con detección de hablantes, un gancho de apertura escrito por el agente, un par de subtítulos listos para el editor y una limpieza automática. |
skill-forge/ | Las herramientas: crea, valida y empaqueta habilidades SKILL.md — y mantiene las dos habilidades de este repositorio limpias según las especificaciones. |
¿Qué hace subtítulos-locución?
El pipeline es Python con scripts de principio a fin. El agente hace exactamente un trabajo: traducir los subtítulos etiquetados por hablante al birmano — más una línea opcional, el gancho de apertura. Nada más en el pipeline le pide al modelo que actúe.
movie.mp4 ──transcribe.py──▶ transcript.json ──srt_from_transcript.py──▶ movie.en.srt
└─ detect_voices.py mide el tono de cada hablante ──▶ voices.detected.yaml (sin mapeo manual)
└── AGENT rellena translation.my.json (+ hook.text) ──apply_translation.py──▶ movie.my.srt
└── render_voiceover.py ──▶ voiceover.mp3 (pista con duración de la película, sin música)
└── comprobaciones, entrega FCPXML/EDL, cleanup.py
Instálelo copiando la carpeta en el directorio de habilidades de su agente, o descomprimiendo el archivo empaquetado:
cp -r subtítulos-locución ~/.claude/skills/ # desde un clon
unzip subtítulos-locución/packages/subtitle-voiceover.skill -d ~/.claude/skills/
Requisitos: python3 -m pip install --user edge-tts pyyaml, ffmpeg + ffprobe, y una clave de AssemblyAI
en subtítulos-locución/.env (ASSEMBLYAI_API_KEY=..., ignorada por git).
Un solo comando para una película completa:
python3 scripts/run_pipeline.py night-shift.mp4 --work-dir work --config voiceover.config.yaml \
--language en --speakers-expected 2 --hook --stages python
# el agente rellena work/translation.my.json (texto de cada señal, más hook.text)
python3 scripts/run_pipeline.py --work-dir work --config voiceover.config.yaml --stages post
Lo que se obtiene: voiceover.mp3 (la pista de locución, comenzando en 00:00:00, rellenada hasta la duración de la
película, sin música), movie.my.srt (etiquetas de hablante) y movie.my.subs.srt (pista de subtítulos simple),
voiceover.fcpxml / .edl / .cue-list.csv, informes de calidad JSON — y un directorio work/ con los
archivos de trabajo eliminados. El editor coloca su propia banda sonora debajo de la pista; los subtítulos caen
directamente en una pista de subtítulos en Premiere Pro, DaVinci Resolve o Final Cut Pro.
Aspectos destacados:
- Asignación automática de voces. El tono del hablante se mide a partir del audio de la propia película
(autocorrelación, con un fallback en Python puro) — los personajes femeninos reciben
my-MM-NilarNeural, los masculinosmy-MM-ThihaNeural. Nada se asigna manualmente; la configuración puede fijar un hablante. - Las marcas de tiempo son propiedad de los scripts. La traducción nunca ve un código de tiempo modificable; la fusión vuelve a adjuntar las originales e informa de cualquier edición que haya tenido que descartar.
- Gancho de apertura. Los primeros 5–10 segundos pueden ser reemplazados por una línea escrita por el agente
con la propia voz de la película, indetectable junto al diálogo original, con un ejemplo trabajado en
references/hook-guide.md. - No se genera nada durante una ejecución. Cada etapa es un script preescrito que recibe indicadores; la
habilidad incluye su propio conjunto de pruebas, una película de ejemplo y dos ejecuciones completas grabadas en
demo-film/.
Consulte subtítulos-locución/README.md para obtener el tutorial completo y
SKILL.md para lo que el agente lee.
skill-forge
Crea una estructura de directorio de habilidad, verifica SKILL.md según el formato abierto (reglas de nombre/descripción,
divulgación progresiva, referencias a archivos empaquetados, presupuesto de líneas) y empaqueta una habilidad en un
archivo .skill distribuible sin filtrar secretos.
python3 skill-forge/scripts/validate_skill.py subtítulos-locución --strict
python3 skill-forge/scripts/package_skill.py subtítulos-locución --out subtítulos-locución/packages
Pruebas
bash skill-forge/tests/run_tests.sh # suite de validador/empaquetador (sin conexión, <1 s)
cd subtítulos-locución && bash tests/run_tests.sh # pruebas de humo del pipeline (llamadas reales a edge-tts)
Ambas suites están conectadas a CI (ci/github-actions-ci.yml — muévalo a
.github/workflows/ci.yml para activarlo, consulte el encabezado de ese archivo); la suite del pipeline no usa
ninguna clave de AssemblyAI — ejecuta los scripts reales contra una transcripción de ejemplo.
Estructura del repositorio
subtitle-voiceover/ la habilidad (scripts/, references/, assets/, tests/, demo/, demo-film/, packages/)
skill-forge/ herramientas de validación y empaquetado (scripts/, references/, assets/, tests/, packages/)
ci/github-actions-ci.yml definición de CI (muévalo a .github/workflows/ci.yml para habilitarlo)
Licencia
MIT — consulte LICENSE.