name: subtitle-voiceover description: Filme → narração em birmanês: transcrição diarizada, atribuição de vozes medida, legendas prontas para editor + faixa sem música. Inclui pacote skill-forge.
Narração de filmes birmaneses — Habilidades de Agente
Duas Habilidades de Agente para criar uma narração (dublagem) birmanesa a partir de um filme, e para criar habilidades como esta.
| Pasta | O que é |
|---|---|
subtitle-voiceover/ | A habilidade: transforma um arquivo de vídeo ou áudio em uma narração birmanesa com detecção de falantes, um gancho de abertura escrito pelo agente, um par de legendas pronto para o editor e uma limpeza automática. |
skill-forge/ | As ferramentas: cria, valida e empacota habilidades SKILL.md — e mantém as duas habilidades deste repositório dentro das especificações. |
O que subtitle-voiceover faz?
O pipeline é Python roteirizado do início ao fim. O agente faz exatamente um trabalho: traduzir o SRT com identificação de falantes para o birmanês — mais uma linha opcional, o gancho de abertura. Nada mais no pipeline pede que o modelo atue.
movie.mp4 ──transcribe.py──▶ transcript.json ──srt_from_transcript.py──▶ movie.en.srt
└─ detect_voices.py mede a altura de cada falante ──▶ voices.detected.yaml (sem mapeamento manual)
└── AGENTE preenche translation.my.json (+ hook.text) ──apply_translation.py──▶ movie.my.srt
└── render_voiceover.py ──▶ voiceover.mp3 (faixa do tamanho do filme, sem música)
└── verificações, saída FCPXML/EDL, cleanup.py
Instale copiando a pasta para o diretório de habilidades do seu agente, ou descompacte o arquivo empacotado:
cp -r subtitle-voiceover ~/.claude/skills/ # a partir de um clone
unzip subtitle-voiceover/packages/subtitle-voiceover.skill -d ~/.claude/skills/
Requisitos: python3 -m pip install --user edge-tts pyyaml, ffmpeg + ffprobe, e uma chave AssemblyAI
em subtitle-voiceover/.env (ASSEMBLYAI_API_KEY=..., ignorado pelo git).
Um comando para um filme inteiro:
python3 scripts/run_pipeline.py night-shift.mp4 --work-dir work --config voiceover.config.yaml \
--language en --speakers-expected 2 --hook --stages python
# o agente preenche work/translation.my.json (texto de cada legenda, mais hook.text)
python3 scripts/run_pipeline.py --work-dir work --config voiceover.config.yaml --stages post
O que é gerado: voiceover.mp3 (a faixa de narração, começando em 00:00:00, preenchida até a duração do
filme, sem música), movie.my.srt (rótulos dos falantes) e movie.my.subs.srt (faixa de legenda simples),
voiceover.fcpxml / .edl / .cue-list.csv, relatórios de qualidade JSON — e um diretório work/ com os
arquivos de trabalho removidos. O editor coloca sua própria trilha sonora sob a faixa; as legendas caem diretamente em
uma faixa de legendas no Premiere Pro, DaVinci Resolve ou Final Cut Pro.
Destaques:
- Atribuição automática de vozes. A altura do falante é medida a partir do áudio original do filme
(autocorrelação, com um fallback em Python puro) — personagens femininas recebem
my-MM-NilarNeural, personagens masculinosmy-MM-ThihaNeural. Nada é mapeado manualmente; a configuração ainda pode fixar um falante. - Os timestamps são controlados pelos roteiros. A tradução nunca vê um timecode editável; a mesclagem religa os originais e relata qualquer edição que teve que descartar.
- Gancho de abertura. Os primeiros 5–10 segundos podem ser substituídos por uma linha escrita pelo agente na própria voz do
filme, indistinguível do diálogo original, com um exemplo prático em
references/hook-guide.md. - Nada é gerado durante uma execução. Cada etapa é um roteiro pré-escrito que recebe sinalizadores; a habilidade
inclui seu próprio conjunto de testes, filme de teste e duas execuções completas registradas em
demo-film/.
Veja subtitle-voiceover/README.md para o guia completo e
SKILL.md para o que o agente lê.
skill-forge
Cria um diretório de habilidade, verifica SKILL.md contra o formato aberto (regras de nome/descrição,
divulgação progressiva, referências a arquivos empacotados, orçamento de linhas) e empacota uma habilidade em um
arquivo .skill distribuível sem vazar segredos.
python3 skill-forge/scripts/validate_skill.py subtitle-voiceover --strict
python3 skill-forge/scripts/package_skill.py subtitle-voiceover --out subtitle-voiceover/packages
Testes
bash skill-forge/tests/run_tests.sh # suíte do validador/empacotador (offline, <1 s)
cd subtitle-voiceover && bash tests/run_tests.sh # testes de fumaça do pipeline (chamadas reais do edge-tts)
Ambas as suítes estão conectadas ao CI (ci/github-actions-ci.yml — mova-o para
.github/workflows/ci.yml para ativá-lo, veja o cabeçalho desse arquivo); a suíte do pipeline não usa chave
AssemblyAI — ela executa os roteiros reais contra um transcript de teste.
Estrutura do repositório
subtitle-voiceover/ a habilidade (scripts/, references/, assets/, tests/, demo/, demo-film/, packages/)
skill-forge/ ferramentas de validação e empacotamento (scripts/, references/, assets/, tests/, packages/)
ci/github-actions-ci.yml Definição do CI (mova para .github/workflows/ci.yml para ativar)
Licença
MIT — veja LICENSE.