4.2 KiB
name, description
| name | description |
|---|---|
| editar-por-voz | Edita um vídeo a partir da análise de voz — lê a timeline de voz (JSON) de uma gravação, separa o roteiro da conversa de bastidor, escolhe a melhor tomada de cada frase, decide cortes/zooms/textos e devolve a lista de decisões em JSON. Use quando o usuário pedir para editar por voz, montar um corte automático, limpar tomadas repetidas, escolher as melhores tomadas, ou marcar os momentos de ênfase de uma fala. |
Editar por voz
Você recebe um JSON com o que foi dito, por quem e como; devolve um JSON com o que fazer. Quem aplica é o programa — você nunca escreve XML.
Princípio
O sistema já mede como a pessoa falou, de forma reprodutível. Não recalcule nada disso nem reestime tempos "no olho".
Seu trabalho é o que nenhum limiar resolve: o que aquilo significa. O índice diz que uma palavra foi dita com força; só você sabe se ela é o argumento central ou uma piada com o câmera.
Entrada e saída
Entrada: <mídia>_voice_timeline.json (de build_voice_timeline). Se
não existir, rode a ferramenta; se existir, leia direto — a análise leva
minutos.
Saída: JSON com a lista de ações → criterios/08-formato-de-saida.md
apply_voice_actions aplica direto, mas é para teste. O produto do seu
trabalho é a lista de decisões.
Ordem de trabalho
Siga nesta ordem. Pular a Fase 2 ou a 3 leva a decisões erradas.
| Fase | O que fazer | Critérios |
|---|---|---|
| 0 | Ler layers — saber o que rodou |
criterios/09-analise-incompleta.md |
| 1 | Ler o JSON em camadas | criterios/01-leitura-do-json.md |
| 2 | Separar roteiro de conversa de bastidor | criterios/02-triagem-roteiro-vs-conversa.md |
| 3 | Escolher a melhor tomada de cada frase | criterios/03-escolha-da-melhor-tomada.md |
| 4 | Reanalisar o material que sobrou | criterios/04-reanalise-do-material-restante.md |
| 5 | Decidir zooms | criterios/05-zoom.md |
| 6 | Decidir textos, cortes e marcadores | criterios/06-texto-corte-marcador.md |
| 7 | Cortar a lista pelo ritmo | criterios/07-ritmo.md |
| 8 | Montar o JSON de saída | criterios/08-formato-de-saida.md |
As três armadilhas
Cada uma já causou erro silencioso em material real:
-
A conversa de bastidor tem a maior ênfase do vídeo. O índice acústico favorece a fala solta sobre o texto decorado. Separar é tarefa de texto, nunca de limiar — e nem de diarização, já que costuma ser a mesma pessoa.
-
Ênfase é relativa ao conjunto analisado. Depois de cortar, os números da análise bruta apontam para as palavras erradas. Sempre reanalise (Fase 4) antes de escolher zooms.
-
Tempos sempre na mídia original. Nunca compense para "depois do corte" — o programa faz isso sozinho, e compensar por conta própria joga todo destaque no frame errado, sem erro visível.
Ordem no sistema
Sua edição roda primeiro, na timeline intacta. Os posicionamentos (zoom, texto, marcador) são deslocados a partir da sua lista de cortes; se outra ferramenta já tiver rippado a timeline antes, esse deslocamento não sabe disso e o efeito cai no frame errado — sem erro visível.
build_voice_timeline → [você decide] → refine_voice_timeline → [você corta
pelo ritmo] → apply_voice_actions → remove_media_silence →
generate_dynamic_subtitles
Vícios de linguagem e lacunas longas entram na sua lista, num ripple só
(06-texto-corte-marcador.md). Silêncio fino e legendas vêm depois.
generate_dynamic_subtitles nunca é o passo final por si só — sempre
seguido de validate_subtitle_layout antes de dar a legenda como pronta.
Detalhe do porquê e das regras específicas dessa etapa:
code/Engine/docs/03_SERVER_TOOLS.md, seção "Legendas dinâmicas".
Ao relatar
Sempre em português, com o raciocínio e não só o resultado:
- quantas tomadas encontrou de cada frase e qual escolheu, com o motivo;
- o que descartou como bastidor;
- por que cada zoom caiu onde caiu (palavra + ênfase);
- o que foi descartado ou rejeitado — nunca relate só os acertos;
- o que você não conseguiu decidir. Em dúvida entre duas tomadas, marque as duas e deixe para o editor.