feat: adicionada opção para calcular métricas de voz automaticamen
- adicionada opção para calcular métricas de voz automaticamente após a transcrição - reorganizada a etapa opcional para revisar falantes e métricas processados automaticamente Resumo: - 2 arquivos alterados - 0 novos - 2 modificados - 0 removidos 2 files changed, 24 insertions(+), 8 deletions(-) Arquivos: - code/cep-plugin/index.html - code/cep-plugin/main.js
This commit is contained in:
@@ -138,6 +138,11 @@
|
||||
<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>
|
||||
@@ -170,8 +175,8 @@
|
||||
<div class="step-head">
|
||||
<span class="step-number" aria-hidden="true">3</span>
|
||||
<div class="step-title">
|
||||
<h2>Enriquecer a transcrição <span class="badge-optional">opcional</span></h2>
|
||||
<p>Dados extras que deixam o corte por IA mais preciso.</p>
|
||||
<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>
|
||||
@@ -181,14 +186,14 @@
|
||||
<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>Detectar</button>
|
||||
<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>Calcular</button>
|
||||
<button id="btnVoiceFeatures" class="button" onclick="silenceComputeVoiceFeatures()" type="button" disabled>Refazer</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
+15
-4
@@ -1786,15 +1786,25 @@ function silenceTranscribe() {
|
||||
}
|
||||
taskEnd(true, "Transcrição pronta: " + resumo);
|
||||
unlockAfterTranscript();
|
||||
if (document.getElementById("silenceDiarize").checked) {
|
||||
silenceDiarizeSpeakers();
|
||||
}
|
||||
silenceRunAutomaticEnrichments();
|
||||
},
|
||||
hfSpawnOptions()
|
||||
);
|
||||
}
|
||||
|
||||
function silenceDiarizeSpeakers() {
|
||||
function silenceRunAutomaticEnrichments() {
|
||||
var shouldDiarize = document.getElementById("silenceDiarize").checked && !!loadHfToken();
|
||||
var shouldMeasureVoice = document.getElementById("silenceVoiceFeaturesAuto").checked;
|
||||
if (shouldDiarize) {
|
||||
silenceDiarizeSpeakers(function () {
|
||||
if (shouldMeasureVoice) silenceComputeVoiceFeatures();
|
||||
});
|
||||
} else if (shouldMeasureVoice) {
|
||||
silenceComputeVoiceFeatures();
|
||||
}
|
||||
}
|
||||
|
||||
function silenceDiarizeSpeakers(onFinished) {
|
||||
if (!silenceState.transcriptPath) return;
|
||||
if (!silenceState.mediaPath) {
|
||||
silenceLog("Detecte o clipe/sequência primeiro (passo 1) para saber qual vídeo diarizar.", "err");
|
||||
@@ -1843,6 +1853,7 @@ function silenceDiarizeSpeakers() {
|
||||
setStep(3, "done", "Enriquecido");
|
||||
taskEnd(true, msg);
|
||||
syncTranscriptToCache();
|
||||
if (typeof onFinished === "function") onFinished();
|
||||
},
|
||||
hfSpawnOptions()
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user