feat: alinhada a remoção da engine Python ao fluxo ripple do execu
- alinhada a remoção da engine Python ao fluxo ripple do executor CEP para cortar vídeo e áudio - criada remoção atômica para manter vídeo e áudio vinculados sincronizados - criada aba de configuração de legendas offline e inclusão das preferências no pacote para a IA - criado gerador offline de blocos de legenda sincronizados com palavras da transcrição e cortes aprovados - criada uma versão base portátil da skill edit-video-by-voice para testes em outros agentes de IA - incorporado perfil editorial opcional à skill portátil para orientar decisões de edição Resumo: - 14 arquivos alterados - 4 novos - 10 modificados - 0 removidos 10 files changed, 278 insertions(+), 33 deletions(-) Arquivos: - code/cep-plugin/index.html - code/cep-plugin/main.js - code/docs/supported-actions.md - code/engine/editor/aplicador_de_plano_de_edicao.py - code/engine/editor/escrita/escrita_no_editor.py - code/engine/testes/duplos_de_premiere.py - code/engine/testes/test_aplicador_de_plano_de_edicao.py - code/src/tools/timeline.ts - code/tests/tools/structural-verification.test.ts - code/tests/tools/tool-modules.test.ts - code/engine/arquitetura/legendas.md - code/engine/editor/legendas/ - code/engine/testes/test_gerador_de_legendas.py - skills/
This commit is contained in:
@@ -234,6 +234,7 @@ function switchTab(name) {
|
||||
{ key: "models", panel: "tabModels", btn: "tabBtnModels" },
|
||||
{ key: "settings", panel: "tabSettings", btn: "tabBtnSettings" },
|
||||
{ key: "testar-acoes", panel: "tabTestarAcoes", btn: "tabBtnTestarAcoes" },
|
||||
{ key: "legendas", panel: "tabLegendas", btn: "tabBtnLegendas" },
|
||||
];
|
||||
tabs.forEach(function (t) {
|
||||
var active = t.key === name;
|
||||
@@ -253,6 +254,44 @@ function switchTab(name) {
|
||||
if (name === "tipos-video") tiposVideoAoAbrir();
|
||||
}
|
||||
|
||||
var LEGENDAS_CONFIGURACAO_CHAVE = "schedule_light_configuracao_legendas";
|
||||
|
||||
function configuracaoDeLegendasPadrao() {
|
||||
return { habilitadas: false, estilo: "word_top_down", faixa_video: 3, max_palavras: 5, max_caracteres: 32, mogrt_path: "" };
|
||||
}
|
||||
|
||||
function carregarConfiguracaoDeLegendas() {
|
||||
var configuracao = configuracaoDeLegendasPadrao();
|
||||
try {
|
||||
var salva = JSON.parse(localStorage.getItem(LEGENDAS_CONFIGURACAO_CHAVE) || "null");
|
||||
if (salva && typeof salva === "object") configuracao = Object.assign(configuracao, salva);
|
||||
} catch (e) {}
|
||||
return configuracao;
|
||||
}
|
||||
|
||||
function restaurarConfiguracaoDeLegendas() {
|
||||
var configuracao = carregarConfiguracaoDeLegendas();
|
||||
document.getElementById("legendasHabilitadas").checked = configuracao.habilitadas;
|
||||
document.getElementById("legendasEstilo").value = configuracao.estilo;
|
||||
document.getElementById("legendasFaixa").value = configuracao.faixa_video;
|
||||
document.getElementById("legendasMaxPalavras").value = configuracao.max_palavras;
|
||||
document.getElementById("legendasMaxCaracteres").value = configuracao.max_caracteres;
|
||||
document.getElementById("legendasMogrtPath").value = configuracao.mogrt_path;
|
||||
}
|
||||
|
||||
function salvarConfiguracaoDeLegendas() {
|
||||
var configuracao = {
|
||||
habilitadas: !!document.getElementById("legendasHabilitadas").checked,
|
||||
estilo: document.getElementById("legendasEstilo").value,
|
||||
faixa_video: Number(document.getElementById("legendasFaixa").value),
|
||||
max_palavras: Number(document.getElementById("legendasMaxPalavras").value),
|
||||
max_caracteres: Number(document.getElementById("legendasMaxCaracteres").value),
|
||||
mogrt_path: document.getElementById("legendasMogrtPath").value.trim(),
|
||||
};
|
||||
try { localStorage.setItem(LEGENDAS_CONFIGURACAO_CHAVE, JSON.stringify(configuracao)); } catch (e) {}
|
||||
document.getElementById("legendasStatus").textContent = "Configuração de legendas salva neste computador.";
|
||||
}
|
||||
|
||||
// ---- Teste isolado de ações pela engine Python ----------------------------
|
||||
var TESTAR_ACOES_ENGINE_SCRIPT = "/Volumes/Merongo/SISTEMAS/GENIAL SISTEMAS/Jhonny/code/engine/aplicar_plano_de_edicao.py";
|
||||
|
||||
@@ -2530,6 +2569,7 @@ function silenceGenerateJson() {
|
||||
};
|
||||
transcript.settings = Object.assign({}, transcript.settings, {
|
||||
silence_removal: { enabled: silenceEnabled, min_silence_seconds: minSilence },
|
||||
legendas: carregarConfiguracaoDeLegendas(),
|
||||
});
|
||||
transcript.speaker_configuration = speakerConfigurationForJson();
|
||||
|
||||
@@ -3296,6 +3336,7 @@ function downloadModel(model, btn, approxMB) {
|
||||
syncTranscribeModelSelect();
|
||||
syncLanguageInfo();
|
||||
renderEditorPersonalities();
|
||||
restaurarConfiguracaoDeLegendas();
|
||||
|
||||
// Passo 1 é o único liberado até o vídeo ser detectado.
|
||||
setStep(1, "ready", "Comece aqui");
|
||||
|
||||
Reference in New Issue
Block a user