feat: exibida a quantidade de falantes detectados e o campo para n
- exibida a quantidade de falantes detectados e o campo para nomeá-los na guia Editar vídeo - reposicionado o formulário de nomes dos falantes para ficar abaixo da opção de diarização Resumo: - 2 arquivos alterados - 0 novos - 2 modificados - 0 removidos 2 files changed, 17 insertions(+), 12 deletions(-) Arquivos: - code/cep-plugin/index.html - code/cep-plugin/main.js
This commit is contained in:
+11
-10
@@ -138,6 +138,15 @@
|
||||
<span>Detectar quem fala 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">
|
||||
@@ -169,19 +178,11 @@
|
||||
<div class="step-body">
|
||||
<div class="mini-action">
|
||||
<div>
|
||||
<strong>Quem fala</strong>
|
||||
<span id="silenceDiarizeInfo">Separa os locutores por trecho. Precisa do token Hugging Face.</span>
|
||||
<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>
|
||||
</div>
|
||||
<div class="speaker-config" id="silenceSpeakerConfig" hidden>
|
||||
<div class="speaker-config-head">
|
||||
<strong>Falantes identificados</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">
|
||||
<div>
|
||||
<strong>Métricas de voz</strong>
|
||||
|
||||
@@ -1835,7 +1835,9 @@ function silenceDiarizeSpeakers() {
|
||||
var parsed = null;
|
||||
try { parsed = JSON.parse(fs.readFileSync(silenceState.transcriptPath, "utf-8")).diarization; } catch (e) {}
|
||||
if (parsed && Array.isArray(parsed.speakers)) renderSpeakerConfiguration(parsed.speakers);
|
||||
var msg = parsed ? parsed.num_speakers + " locutor(es): " + parsed.speakers.join(", ") : "Locutores detectados.";
|
||||
var msg = parsed
|
||||
? "Foram detectados " + parsed.num_speakers + (parsed.num_speakers === 1 ? " falante" : " falantes") + ": " + parsed.speakers.join(", ") + "."
|
||||
: "Falantes detectados.";
|
||||
silenceLog(msg, "ok");
|
||||
info.textContent = msg;
|
||||
setStep(3, "done", "Enriquecido");
|
||||
@@ -1865,7 +1867,8 @@ function renderSpeakerConfiguration(speakerIds) {
|
||||
active: !old || old.active !== false,
|
||||
};
|
||||
});
|
||||
count.textContent = silenceState.speakers.length + (silenceState.speakers.length === 1 ? " identificado" : " identificados");
|
||||
count.textContent = silenceState.speakers.length +
|
||||
(silenceState.speakers.length === 1 ? " falante detectado" : " falantes detectados");
|
||||
list.innerHTML = "";
|
||||
silenceState.speakers.forEach(function (speaker, index) {
|
||||
var row = document.createElement("div");
|
||||
@@ -1877,6 +1880,7 @@ function renderSpeakerConfiguration(speakerIds) {
|
||||
input.type = "text";
|
||||
input.className = "select-field speaker-name-input";
|
||||
input.value = speaker.name;
|
||||
input.placeholder = "Nome do falante";
|
||||
input.maxLength = 120;
|
||||
input.setAttribute("aria-label", "Nome de " + speaker.id);
|
||||
input.addEventListener("input", function () { silenceState.speakers[index].name = input.value.trim() || speaker.id; });
|
||||
|
||||
Reference in New Issue
Block a user