feat: carregamento automático da análise do Scanner ao abrir a aba

- carregamento automático da análise do Scanner ao abrir a aba Refinar
- simplificada a aba Editar vídeo para exibir análises disponíveis sem carregamento manual
- movida a visualização do tipo de vídeo para a guia Projeto com leitura do banco

Resumo:
- 10 arquivos alterados
- 2 novos
- 8 modificados
- 0 removidos

 8 files changed, 114 insertions(+), 11 deletions(-)

Arquivos:
  - .jhonny/analises.db
  - code/cep-plugin/abas/projeto/projeto.js
  - code/cep-plugin/index.html
  - code/cep-plugin/main.js
  - code/engine/integracoes/audio/__init__.py
  - code/engine/integracoes/audio/modelos_de_analise_musical.py
  - code/engine/integracoes/audio/provider_de_analise_musical_essentia.py
  - code/engine/testes/test_analisador_de_musica_essentia.py
  - code/engine/consultar_edicao_concluida.py
  - code/engine/integracoes/audio/classificador_de_musica_essentia.py
This commit is contained in:
João Henrique
2026-09-10 13:30:10 -04:00
parent a4286bbd8a
commit 5644b42722
10 changed files with 305 additions and 11 deletions
@@ -3,6 +3,7 @@ import unittest
from pathlib import Path
from engine.integracoes.audio import AnalisadorDeMusicaInstrumentalEssentia
from engine.integracoes.audio import PontuacaoDeEtiqueta
class TesteAnalisadorDeMusicaInstrumentalEssentia(unittest.TestCase):
@@ -54,3 +55,25 @@ class TesteAnalisadorDeMusicaInstrumentalEssentia(unittest.TestCase):
self.assertEqual(resultado.duracao_em_segundos, 10.0)
self.assertEqual(resultado.batidas_por_minuto, 110.0)
self.assertEqual(resultado.tonalidade, "D")
def test_incorpora_classificacoes_do_audio_ao_resultado(self):
classificador = type("Classificador", (), {
"classificar": lambda self, _arquivo: (
(PontuacaoDeEtiqueta("Jazz-Funk", 0.8),),
(PontuacaoDeEtiqueta("energética", 0.7),),
),
})()
def extrator(_caminho: str):
return {"rhythm.bpm": 100.0}, {}
with tempfile.TemporaryDirectory() as pasta:
arquivo = Path(pasta) / "instrumental.wav"
arquivo.write_bytes(b"audio")
resultado = AnalisadorDeMusicaInstrumentalEssentia(
extrator, classificador=classificador,
).analisar(arquivo)
self.assertEqual(resultado.generos, ("Jazz-Funk",))
self.assertEqual(resultado.humores, ("energética",))
self.assertEqual(resultado.pontuacoes_de_genero[0].confianca, 0.8)