feat: removido o tamanho do modelo do seletor da tela Editar vídeo

- removido o tamanho do modelo do seletor da tela Editar vídeo
- acelerada a transcrição do Scanner com inferência Whisper em lote e cache de hashes
- garantido um resultado separado para cada clipe de áudio selecionado no Scanner
- adicionado cancelamento do processamento do Scanner pela barra de progresso
- exibido estado visual próprio para Scanner cancelado na barra de progresso
- criado modo explícito de análise do Scanner para separar som, imagem ou ambos
- adicionadas métricas opcionais de fala ao Scanner com análise acústica na engine
- corrigido o progresso da transcrição do Scanner durante o processamento do Whisper
- refatorado o runner Swift do Apple Vision para executar requests em lote com retry CPU-only, corrigindo falhas de CVPixelBuffer/ANE/OCR
- documentado o fluxo de edição de vídeo por voz integrado ao Scanner, banco e engine
- formalizado o protocolo de edição por chat com perfil editorial e consultas progressivas
- gerado plano JSON de corte para depoimento vertical da Erika no Instagram
- esquematizado o fluxo de colar e executar planos da IA pela engine após o Scanner
- ajustado o plano para manter somente as três etapas existentes da tela de edição
- adicionado processamento incremental de locutores e métricas no Scanner com confirmação de reprocessamento
- implementado o plano JSON colado na tela e a persistência idempotente das análises do Scanner

Resumo:
- 8 arquivos alterados
- 1 novos
- 7 modificados
- 0 removidos

 7 files changed, 437 insertions(+), 55 deletions(-)

Arquivos:
  - code/cep-plugin/index.html
  - code/cep-plugin/main.js
  - code/cep-plugin/styles.css
  - code/engine/executar_scanner.py
  - code/engine/persistencia/repositorio_de_analises_sqlite.py
  - code/engine/testes/test_persistencia_sqlite.py
  - docs/PLANO-EDICAO-DE-VIDEO-POR-VOZ.md
  - code/relatorios/plano-edicao-depoimento-erika-instagram.json
This commit is contained in:
João Henrique
2026-09-09 19:10:20 -04:00
parent c4c942044f
commit f6dd03f7b4
8 changed files with 526 additions and 55 deletions
@@ -0,0 +1,89 @@
{
"schema": "plano_edicao_v1",
"source": "0E6A8829.MP4",
"analysis": {
"video_id": "12669c9c-038d-4a3f-99f9-fe6f6827b5f4",
"clip_id": "000f476b",
"profile": "depoimento",
"platform": "instagram",
"aspect_ratio": "9:16",
"target_duration_seconds": 60,
"maximum_duration_seconds": 120,
"voice_metrics_available": false,
"diarization_available": false
},
"editorial_intent": {
"video_type": "Depoimento de cliente",
"goal": "Gerar credibilidade e confiança",
"narrative": "problema vivido -> decisão de mudar -> resultado percebido",
"preserve": [
"autenticidade",
"fala espontânea",
"transformação pessoal",
"pausas naturais"
],
"remove": [
"perguntas do entrevistador",
"hesitações",
"repetições",
"desvios da narrativa"
],
"captions": "complete",
"broll": false,
"music": "discreta"
},
"preserved_ranges": [
{
"start": 256.3,
"end": 294.18,
"purpose": "Problema vivido e decisão de mudar de vida."
},
{
"start": 856.33,
"end": 879.55,
"purpose": "Resultado, autoestima e transformação percebida."
}
],
"actions": [
{
"id": "corte-001",
"kind": "cut",
"start": 0.0,
"end": 256.3,
"reason": "Remover introdução, preparação da entrevista e conteúdo anterior ao depoimento principal.",
"params": {
"tipo": "conteudo_fora_da_narrativa",
"confianca": 0.98
}
},
{
"id": "corte-002",
"kind": "cut",
"start": 294.18,
"end": 856.33,
"reason": "Remover perguntas do entrevistador, desenvolvimento intermediário e trechos fora do corte curto para Instagram.",
"params": {
"tipo": "selecao_de_narrativa",
"confianca": 0.86
}
},
{
"id": "corte-003",
"kind": "cut",
"start": 879.55,
"end": 1018.225542,
"reason": "Remover encerramento longo e recomendação final para manter o vídeo próximo de 60 segundos nesta primeira versão.",
"params": {
"tipo": "duracao_maxima",
"confianca": 0.9
}
}
],
"implementation_notes": [
"As ações usam segundos do arquivo de origem, não posições depois dos cortes.",
"O resultado estimado é de aproximadamente 61,1 segundos.",
"As legendas completas ainda precisam ser geradas pelo fluxo de legendagem; esta versão não cria clipes de texto automaticamente.",
"O plano não insere B-roll nem música porque essas ações ainda não fazem parte do contrato atual.",
"Revisar o primeiro e o último frame no Premiere antes de aplicar definitivamente."
]
}