chore: atualização geral

This commit is contained in:
João Henrique
2026-08-19 16:35:29 -04:00
parent 8fca456ceb
commit e7748c2c58
66 changed files with 13037 additions and 4237 deletions
@@ -0,0 +1,70 @@
# 04 — Reanálise do material que sobrou
**Não escolha zooms com os números da análise bruta.**
## O problema
Ênfase e energia são **relativas ao conjunto analisado**. Energia é
normalizada contra o momento mais alto da gravação; ênfase deriva dela.
Se esse momento mais alto foi cortado — uma piada, um grito, uma conversa
de bastidor — tudo que sobrou continua pontuado contra uma referência que o
espectador **nunca verá**. As notas do corte final ficam artificialmente
comprimidas, e o ranking aponta para as palavras erradas.
Caso real: o pico do vídeo era *"Amor, eu tô intacto!"* (energia 1,00),
descartado na triagem. Todo o material restante estava sendo medido contra
ele.
## A solução
Depois de definir os cortes, renormalize sobre os sobreviventes. Chame a
ferramenta **`refine_voice_timeline`**, passando a mídia e a lista de
cortes que você já decidiu:
```
refine_voice_timeline(media_path, cuts=[{start, end}, ...], min_gap=8.0)
```
Ela devolve, numa chamada só, a comparação bruto × sobreviventes, os picos
re-ranqueados e os candidatos a zoom. É barata: renormaliza os números já
medidos, sem reabrir o áudio.
Efeito medido no mesmo material:
| | Bruto | Só o que sobrou |
|---|---|---|
| Ênfase média | 0,179 | **0,197** |
| *"Aquela"* | 0,39 | **0,42** |
| *"mastopexia"* | 0,26 | **0,34** |
| *"devolver"* | — | **0,35** |
*"mastopexia"* só virou candidata legítima depois da reanálise.
## As janelas que ela propõe
A seção **Zoom Candidates** da resposta já vem com três coisas resolvidas:
1. **Pega a palavra de conteúdo mais enfática de cada frase.** Artigos e
conectivos são filtrados — um *"a"* falado alto continua sendo um artigo.
Sem esse filtro, o ranking bruto apontava para "o", "a", "eu": picos de
*entrega*, não de *sentido*.
2. **Estende a janela até o fim da frase**, não do segmento (ver
`05-zoom.md`).
3. **Mantém distância mínima** entre zooms.
São **candidatos, não obrigações.** Corte a lista pelo ritmo
(`07-ritmo.md`). Os tempos continuam na mídia original — vão direto para
`apply_voice_actions`.
`max_zooms` limita a lista, mas prefira cortá-la você mesmo: o corte por
ritmo é decisão editorial, não um teto numérico.
## Princípio geral
> "Qual o momento mais forte da **gravação**?" e "qual o momento mais forte
> do **vídeo final**?" são perguntas diferentes sempre que a métrica for
> relativa.
Toda métrica normalizada precisa ser recalculada quando o conjunto muda —
senão ela responde a pergunta errada, silenciosamente.