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 - reorganizada a tela Scanner em blocos separados de imagem e som Resumo: - 7 arquivos alterados - 1 novos - 6 modificados - 0 removidos 6 files changed, 92 insertions(+), 40 deletions(-) Arquivos: - .jhonny/analises.db - code/cep-plugin/index.html - code/cep-plugin/main.js - code/cep-plugin/styles.css - code/engine/integracoes/whisper/provider_de_transcricao_local.py - code/engine/scanner/transcricao_da_timeline.py - code/engine/testes/test_provider_de_transcricao_local.py
This commit is contained in:
@@ -50,24 +50,23 @@ class TranscricaoDaTimeline:
|
||||
clipes.append(clipe)
|
||||
|
||||
transcricoes: dict[str, list[SegmentoDeTranscricao]] = {}
|
||||
chaves_por_arquivo: dict[str, str] = {}
|
||||
for clipe in clipes:
|
||||
chave = self._chave_do_arquivo(clipe.arquivo)
|
||||
chave = chaves_por_arquivo.get(clipe.arquivo)
|
||||
if chave is None:
|
||||
chave = self._chave_do_arquivo(clipe.arquivo)
|
||||
chaves_por_arquivo[clipe.arquivo] = chave
|
||||
if chave not in transcricoes:
|
||||
transcricoes[chave] = self._transcrever_arquivo(clipe.arquivo, chave)
|
||||
|
||||
resultados: list[TranscricaoDoClipe] = []
|
||||
vistos: set[tuple[str, float, float, float, float]] = set()
|
||||
for clipe in clipes:
|
||||
intervalo = clipe.intervalo_na_timeline
|
||||
origem = clipe.intervalo_na_origem
|
||||
inicio_origem = origem.inicio if origem else 0.0
|
||||
fim_origem = origem.fim if origem else float("inf")
|
||||
chave = (self._chave_do_arquivo(clipe.arquivo), inicio_origem, fim_origem,
|
||||
chave = (chaves_por_arquivo[clipe.arquivo], inicio_origem, fim_origem,
|
||||
intervalo.inicio, intervalo.fim)
|
||||
# Vídeo e áudio vinculados podem representar o mesmo corte.
|
||||
if chave in vistos:
|
||||
continue
|
||||
vistos.add(chave)
|
||||
segmentos = []
|
||||
for segmento in transcricoes[chave[0]]:
|
||||
fim = min(segmento.fim, fim_origem)
|
||||
|
||||
Reference in New Issue
Block a user