feat: criado monitoramento contínuo de trilhas com varredura recur
- criado monitoramento contínuo de trilhas com varredura recursiva e baixa prioridade - gerado e validado plano editorial revisável do depoimento da Erika sem aplicação na timeline - adicionada leitura e comparação estrutural da timeline após aplicar planos de edição - limitadas as classificações de trilhas às duas maiores probabilidades de cada categoria - limpo o catálogo musical para reiniciar as análises sem remover dados de vídeo Resumo: - 34 arquivos alterados - 6 novos - 28 modificados - 0 removidos 28 files changed, 833 insertions(+), 75 deletions(-) Arquivos: - .jhonny/analises.db - code/cep-plugin/index.html - code/cep-plugin/main.js - code/engine/analisar_trilhas.py - code/engine/aplicar_plano_de_edicao.py - code/engine/consultar_detalhes_de_trilha.py - code/engine/editor/__init__.py - code/engine/editor/aplicador_de_plano_de_edicao.py - code/engine/editor/backup_de_sequencia.py - code/engine/editor/escrita/escrita_no_editor.py - code/engine/editor/modelos.py - code/engine/editor/validacao_semantica.py - code/engine/integracoes/audio/classificador_de_musica_essentia.py - code/engine/integracoes/audio/modelos_de_analise_musical.py - code/engine/integracoes/audio/provider_de_analise_musical_essentia.py - code/engine/persistencia/esquema.py - code/engine/persistencia/repositorio_de_trilhas.py - code/engine/testes/duplos_de_premiere.py - code/engine/testes/test_aplicador_de_plano_de_edicao.py - code/engine/testes/test_aplicar_plano_de_edicao.py - code/engine/testes/test_escrita_no_editor.py - code/engine/testes/test_leitor_de_plano_de_edicao.py - code/engine/testes/test_validador_semantico_de_plano.py - code/plugins/premiere-pro/skills/editar-por-voz/SKILL.md - code/plugins/premiere-pro/skills/editar-por-voz/criterios/08-formato-de-saida.md - code/plugins/premiere-pro/skills/editar-por-voz/criterios/10-revisao-humana.md - code/src/tools/timeline.ts - code/tests/tools/tool-modules.test.ts - .jhonny/planos/ - code/.jhonny/analises.db-shm - code/.jhonny/analises.db-wal - code/engine/editor/verificador_da_aplicacao.py - code/engine/testes/test_verificador_da_aplicacao.py - code/plugins/premiere-pro/skills/editar-por-voz/criterios/11-gancho.md
This commit is contained in:
@@ -15,6 +15,9 @@ em `planos_de_edicao` e `acoes_do_plano`. Você nunca escreve XML.
|
||||
"actions": [
|
||||
{"kind": "cut", "start": 21.9, "end": 127.6,
|
||||
"reason": "tomadas descartadas, frases interrompidas e conversa com a equipe"},
|
||||
{"kind": "hook", "start": 141.2, "end": 147.8,
|
||||
"params": {"target": 0, "keep_original": true},
|
||||
"reason": "frase completa escolhida como gancho de abertura"},
|
||||
{"kind": "zoom", "start": 2.0, "end": 10.7,
|
||||
"params": {"scale": 1.15}, "reason": "abertura: \"Aquela mama\" (ênfase 0.42)"},
|
||||
{"kind": "text", "start": 127.7, "end": 129.0,
|
||||
@@ -39,13 +42,14 @@ erro é silencioso.
|
||||
Ambos ≥ 0. Um `end <= start` é rejeitado.
|
||||
|
||||
### 3. Tipos
|
||||
`cut` · `zoom` · `text` · `marker`
|
||||
`cut` · `hook` · `zoom` · `text` · `marker`
|
||||
|
||||
### 4. Parâmetros por tipo
|
||||
|
||||
| Tipo | `params` |
|
||||
|---|---|
|
||||
| `cut` | nenhum |
|
||||
| `hook` | `target: 0` e `keep_original: true` |
|
||||
| `zoom` | `scale` entre 1.0 e 3.0 (padrão 1.3 se omitido) |
|
||||
| `text` | `content` **obrigatório**, até 120 caracteres |
|
||||
| `marker` | opcional: `content` vira o nome do marcador |
|
||||
@@ -70,6 +74,14 @@ ao menos 0,30s de respiro junto às palavras mantidas. A engine bloqueia borda
|
||||
dentro de palavra, continuação gramatical e margem insuficiente. Detalhes em
|
||||
`06-texto-corte-marcador.md` e `10-revisao-humana.md`.
|
||||
|
||||
### 7. Gancho: uma cópia completa para o início
|
||||
|
||||
Use no máximo um `hook`. O intervalo deve estar contido em um único clipe de
|
||||
vídeo e seu áudio vinculado, em velocidade normal. A frase copiada precisa ter
|
||||
começo, fechamento e 0,30s de margem nas duas bordas. O aplicador aceita apenas
|
||||
o destino `0` e preserva a ocorrência original; nenhuma outra ação pode
|
||||
sobrepor esse intervalo.
|
||||
|
||||
## Persistência
|
||||
|
||||
Depois de validar o JSON, crie um registro em `planos_de_edicao` ligado ao
|
||||
@@ -81,8 +93,11 @@ confirmada.
|
||||
|
||||
- **Plano ou ação inválida** → o plano inteiro é bloqueado antes de alterar a
|
||||
timeline.
|
||||
- **Borda de corte semanticamente insegura** → o plano inteiro é bloqueado
|
||||
- **Borda de corte ou gancho semanticamente insegura** → o plano inteiro é bloqueado
|
||||
antes da conexão com o Premiere e antes do backup.
|
||||
- **Gancho com faixas adicionais ocupadas, mídia retimada ou par A/V
|
||||
ambíguo** → recusado; use uma sequência simples de diálogo ou faça a
|
||||
duplicação manualmente.
|
||||
- **Ação apontando para material cortado** → descartada e reportada, nunca
|
||||
deslizada para o conteúdo vizinho.
|
||||
- **Ação fora da mídia** → reportada como não colocada.
|
||||
|
||||
@@ -10,22 +10,26 @@ presuma que uma etapa posterior corrigirá bordas editoriais imprecisas.
|
||||
|
||||
## Preview obrigatório
|
||||
|
||||
Antes de pedir aprovação, apresente para cada corte:
|
||||
Antes de pedir aprovação, apresente para cada corte ou gancho:
|
||||
|
||||
- intervalo removido e motivo;
|
||||
- intervalo afetado e motivo;
|
||||
- última frase completa que ficará antes;
|
||||
- primeira frase completa que ficará depois;
|
||||
- texto da emenda resultante;
|
||||
- texto da emenda resultante quando houver remoção;
|
||||
- margem acústica em cada lado;
|
||||
- qualquer incerteza que exija escuta humana.
|
||||
|
||||
Para `hook`, apresente também a frase completa que passará a abrir o vídeo e
|
||||
confirme que a ocorrência original será preservada.
|
||||
|
||||
O editor deve aprovar o conteúdo sobrevivente, não apenas a quantidade de
|
||||
ações. Se o preview mostrar palavra truncada, oração incompleta ou continuação
|
||||
sem contexto, o plano volta para edição e recebe novos limites.
|
||||
|
||||
## Defesa automática
|
||||
|
||||
Ao clicar em **Aplicar plano na timeline**, a engine revalida os cortes antes
|
||||
Ao clicar em **Aplicar plano na timeline**, a engine revalida cortes e
|
||||
ganchos antes
|
||||
de se conectar ao Premiere e antes de criar o backup. A aplicação é bloqueada
|
||||
quando encontra:
|
||||
|
||||
@@ -33,6 +37,7 @@ quando encontra:
|
||||
- menos de 0,30s entre a borda e a palavra mantida;
|
||||
- fala mantida interrompida antes do corte;
|
||||
- retomada no meio de frase depois do corte.
|
||||
- gancho sem frase completa ou sem margem nas duas extremidades.
|
||||
|
||||
Essa validação é uma rede de segurança, não substitui o preview. Depois que o
|
||||
plano passa, a engine cria uma única cópia de segurança, aplica as ações e
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
# 11 — Gancho duplicado
|
||||
|
||||
> **Escopo:** Copiar uma fala do meio do vídeo para a abertura.
|
||||
> **Quando:** pedidos de gancho ou abertura forte com repetição intencional.
|
||||
|
||||
## Semântica atual
|
||||
|
||||
`hook` cria uma cópia: a fala permanece no corpo do vídeo e sua cópia passa a
|
||||
abrir a sequência. Use somente:
|
||||
|
||||
```json
|
||||
{
|
||||
"kind": "hook",
|
||||
"start": 141.2,
|
||||
"end": 147.8,
|
||||
"params": {"target": 0, "keep_original": true},
|
||||
"reason": "frase completa escolhida como gancho de abertura"
|
||||
}
|
||||
```
|
||||
|
||||
## Escolha editorial
|
||||
|
||||
O gancho deve funcionar sem a frase anterior. Prefira uma promessa, contraste,
|
||||
resultado, pergunta ou afirmação específica que desperte curiosidade e continue
|
||||
verdadeira fora da posição original. Evite pronomes sem referente, continuações
|
||||
como “por isso” ou “então” e conclusões que dependam de explicação anterior.
|
||||
|
||||
Selecione a menor unidade que preserve o sentido completo. Una segmentos do
|
||||
Whisper quando a gramática continuar entre eles. A primeira palavra precisa
|
||||
iniciar a frase, a última precisa fechá-la e cada extremidade precisa conservar
|
||||
ao menos 0,30s de respiro.
|
||||
|
||||
## Limites da execução segura
|
||||
|
||||
A versão atual aceita um único `hook`, destinado a `0s`, dentro de um único
|
||||
clipe de vídeo em velocidade normal e seu áudio correspondente. Ela recusa
|
||||
faixas adicionais ocupadas, par A/V ambíguo, mídia retimada ou invertida e
|
||||
qualquer outra ação que sobreponha o trecho do gancho.
|
||||
|
||||
A operação cria a cópia a partir do mesmo intervalo da mídia de origem; o
|
||||
original conserva seus efeitos, mas a cópia nasce sem efeitos específicos do
|
||||
clipe. Por isso o gancho deve rodar antes de zooms e outros efeitos do plano.
|
||||
Ela só prossegue quando o backup da sequência foi confirmado pelo Premiere.
|
||||
|
||||
## Preview
|
||||
|
||||
Antes da aprovação, mostre:
|
||||
|
||||
- a frase completa escolhida;
|
||||
- o intervalo original e as margens de cada borda;
|
||||
- a nova abertura seguida da primeira frase do conteúdo anterior;
|
||||
- a confirmação de que a ocorrência original será preservada;
|
||||
- o aumento esperado da duração total pelo tamanho do gancho.
|
||||
|
||||
O plano está pronto somente quando a nova emenda preserva sentido, ritmo e
|
||||
respiração.
|
||||
Reference in New Issue
Block a user