Communitygithub.com

AungMinThu1722/subtitle-voiceover

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.

O que é subtitle-voiceover?

Este skill permite que agentes de IA (como Claude Code) transformem um arquivo de vídeo ou áudio em uma narração completa em birmanês (myanmar). Ele detecta automaticamente os diferentes falantes, mede a altura de suas vozes e atribui vozes sintéticas apropriadas (feminina com my-MM-NilarNeural, masculina com my-MM-ThihaNeural). O fluxo de trabalho é totalmente roteirizado em Python, exigindo apenas que o agente traduza as legendas diarizadas e, opcionalmente, escreva uma frase de abertura. O resultado final inclui um arquivo de áudio de narração (sem música), legendas em SRT, e arquivos de intercâmbio para editores de vídeo (FCPXML, EDL, CSV). O skill é especialmente útil para profissionais de localização de mídia ou criadores de conteúdo que precisam dublar filmes para o birmanês de forma eficiente e consistente, mantendo a separação de falantes e permitindo que o editor adicione trilha sonora posteriormente. Ele suporta plataformas como Claude e Cursor, e inclui um conjunto completo de testes e documentação.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add AungMinThu1722/subtitle-voiceover

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação


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.

PastaO 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 masculinos my-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.

Habilidades Relacionadas