feat: removidos da tela Editar vídeo os passos legados de transcri

- removidos da tela Editar vídeo os passos legados de transcrição, falantes e métricas.

Resumo:
- 4 arquivos alterados
- 0 novos
- 4 modificados
- 0 removidos

 4 files changed, 35 insertions(+), 161 deletions(-)

Arquivos:
  - .jhonny/analises.db
  - admin/PremiereMCP.command
  - code/cep-plugin/index.html
  - code/cep-plugin/main.js
This commit is contained in:
João Henrique
2026-09-10 10:38:18 -04:00
parent b01482d0e7
commit e16244d68d
4 changed files with 35 additions and 161 deletions
+6 -116
View File
@@ -95,7 +95,7 @@
<section class="card scanner-analysis-card" id="scannerAnalysisCard">
<div class="card-head"><h2>Análise do Scanner</h2><span class="step-chip" id="scannerAnalysisStatus">Não carregada</span></div>
<p class="field-help" id="scannerAnalysisInfo">Carregue a análise mais recente do Scanner antes de gerar o plano de edição.</p>
<p class="field-help" id="scannerAnalysisInfo">Carregue a análise mais recente do Scanner antes de concluir a edição.</p>
<ul class="scanner-analysis-checks" id="scannerAnalysisChecks" aria-label="Componentes carregados da análise">
<li id="scannerCheckTranscription" data-state="pending"><span class="check-dot" aria-hidden="true"></span><span>Transcrição</span><em>Aguardando</em></li>
<li id="scannerCheckDiarization" data-state="pending"><span class="check-dot" aria-hidden="true"></span><span>Detecção de falantes</span><em>Aguardando</em></li>
@@ -122,124 +122,14 @@
</div>
</section>
<section class="step editar-video-legado" id="step2" data-state="locked">
<section class="step" id="step2" data-state="locked">
<div class="step-head">
<span class="step-number" aria-hidden="true">2</span>
<div class="step-title">
<h2>Transcrever a fala</h2>
<p>Gera o texto com marcação de tempo usando o Whisper local.</p>
</div>
<span class="step-chip" id="step2Chip">Bloqueado</span>
</div>
<div class="step-body">
<div class="callout callout-info" id="silenceCachedSection" hidden>
<strong>Este vídeo já foi transcrito antes</strong>
<p>Reaproveite e pule direto para o plano de cortes — leva segundos em vez de minutos.</p>
<label class="field-label" for="silenceCachedSelect">Transcrição salva</label>
<select id="silenceCachedSelect" class="select-field"></select>
<button id="btnUseCachedTranscript" class="button button-primary" onclick="silenceUseCachedTranscript()" type="button">Usar esta transcrição</button>
</div>
<!-- LEGADO comentado em 2026-09-09: transcrição/diarização/métricas de voz
feitas aqui duplicavam o que a aba Scanner já faz e persiste no banco.
Funções JS correspondentes (silenceTranscribe, silenceDiarizeSpeakers,
silenceComputeVoiceFeatures) comentadas em main.js.
<div class="field-grid">
<div>
<label class="field-label" for="silenceModel">Modelo</label>
<select id="silenceModel" class="select-field">
<option value="small" selected>small (recomendado)</option>
<option value="base">base (mais rápido)</option>
<option value="medium">medium (mais preciso)</option>
</select>
</div>
<div>
<span class="field-label">Idioma</span>
<p class="field-static" id="silenceLanguageInfo">Português</p>
</div>
</div>
<label class="checkbox-field">
<input type="checkbox" id="silenceDiarize">
<span>Detectar quem fala logo após transcrever</span>
</label>
<label class="checkbox-field">
<input type="checkbox" id="silenceVoiceFeaturesAuto">
<span>Calcular métricas de voz logo após transcrever</span>
</label>
-->
<div class="speaker-config" id="silenceSpeakerConfig" hidden>
<div class="speaker-config-head">
<strong>Falantes detectados</strong>
<span id="silenceSpeakerCount"></span>
</div>
<p class="field-help">Dê um nome a cada falante e desative quem não deve aparecer no vídeo. A decisão será enviada no JSON para a IA.</p>
<div id="silenceSpeakerList"></div>
</div>
<div class="mini-action" id="silenceRemovalRow">
<div>
<label class="checkbox-field" style="border:none;padding:0;background:none">
<input type="checkbox" id="silenceRemovalEnabled">
<span>Remoção de silêncios</span>
</label>
<span>Só grava a preferência no JSON — não corta nada aqui. A IA decide os cortes usando esse valor.</span>
</div>
<div style="display:flex;align-items:center;gap:6px;flex:0 0 auto">
<label class="field-label" for="silenceRemovalMinDuration" style="margin:0">Mín. (s)</label>
<input type="number" id="silenceRemovalMinDuration" class="select-field" style="width:64px" step="0.1" min="0" value="0.8">
</div>
</div>
<!-- LEGADO comentado em 2026-09-09 (ver nota acima).
<button id="btnTranscribe" class="button button-primary" onclick="silenceTranscribe()" type="button" disabled>Transcrever</button>
<p class="field-help" id="silenceCacheInfo"></p>
-->
</div>
</section>
<!-- LEGADO comentado em 2026-09-09: "Refazer" chamava silenceDiarizeSpeakers()
e silenceComputeVoiceFeatures(), agora comentadas em main.js — a aba
Refinar já cobre revisão de falantes com dados vindos do Scanner.
<section class="step step-optional" id="step3" data-state="locked">
<div class="step-head">
<span class="step-number" aria-hidden="true">3</span>
<div class="step-title">
<h2>Revisar falantes e áudio <span class="badge-optional">opcional</span></h2>
<p>Confira os resultados processados e ajuste os dados antes de gerar o JSON.</p>
</div>
<span class="step-chip" id="step3Chip">Bloqueado</span>
</div>
<div class="step-body">
<div class="mini-action">
<div>
<strong>Detecção de falantes</strong>
<span id="silenceDiarizeInfo">Separa os falantes por trecho. Precisa do token Hugging Face.</span>
</div>
<button id="btnDiarize" class="button" onclick="silenceDiarizeSpeakers()" type="button" disabled>Refazer</button>
</div>
<div class="mini-action">
<div>
<strong>Métricas de voz</strong>
<span id="silenceVoiceFeaturesInfo">Pitch, energia, velocidade de fala e pausas de cada trecho.</span>
</div>
<button id="btnVoiceFeatures" class="button" onclick="silenceComputeVoiceFeatures()" type="button" disabled>Refazer</button>
</div>
</div>
</section>
-->
<section class="step" id="step4" data-state="locked">
<div class="step-head">
<span class="step-number" aria-hidden="true">4</span>
<div class="step-title">
<h2>Concluir edição</h2>
<p>Salva no banco a análise carregada, o tipo de vídeo e as configurações editoriais escolhidas. O JSON para a IA poderá ser gerado depois, quando necessário.</p>
</div>
<span class="step-chip" id="step4Chip">Bloqueado</span>
<span class="step-chip" id="step2Chip">Bloqueado</span>
</div>
<div class="step-body">
<button id="btnBuildPlan" class="button button-primary" onclick="silenceConcluirEdicao()" type="button" disabled>Concluir edição</button>
@@ -255,14 +145,14 @@
</div>
</section>
<section class="step" id="step5" data-state="locked">
<section class="step" id="step3" data-state="locked">
<div class="step-head">
<span class="step-number" aria-hidden="true">5</span>
<span class="step-number" aria-hidden="true">3</span>
<div class="step-title">
<h2>Aplicar na timeline</h2>
<p>Selecione o plano de edição que a IA devolveu (cortes, zooms, textos, marcadores) e execute na sequência.</p>
</div>
<span class="step-chip" id="step5Chip">Bloqueado</span>
<span class="step-chip" id="step3Chip">Bloqueado</span>
</div>
<div class="step-body">
<label class="field-label" for="editorialPlanJson">JSON de ações devolvido pela IA</label>