NestJS + Swagger + OAuth2 + Sherpa-ONNX

Diarização de áudio e vídeo

O navegador grava áudio ou seleciona uma mídia, a API NestJS extrai a faixa sonora quando necessário, identifica os locutores e o Chrome transcreve cada trecho.

Verificando API… Sem token OAuth Verificando Chrome…
0

API e OAuth2

Obtenha um token pelo fluxo client_credentials antes de enviar o áudio ou vídeo.

Abrir Swagger
Informe o Client Secret e obtenha um token.
1

Áudio ou vídeo

Grave pelo microfone ou selecione um arquivo de áudio ou vídeo existente.

Nenhuma gravação em andamento. 00:00
2

Diarização pela API

Áudio ou vídeo é enviado com Bearer Token. Em vídeos, o NestJS envia os bytes diretamente ao FFmpeg, extrai somente o áudio e executa o sherpa-onnx-node.

Aguardando áudio ou vídeo e token. 0%
3

Transcrição pelo Chrome

Os intervalos retornados pela API são reproduzidos um por vez para a Web Speech API.

Aguardando a diarização. 0%
Segurança e funcionamento

O arquivo é enviado para a API NestJS somente após a obtenção do token. Vídeos permanecem apenas na memória durante o upload; o servidor envia seus bytes diretamente ao FFmpeg e não grava o vídeo original no sistema de arquivos.

Somente o WAV extraído pode existir temporariamente para a diarização e para a transcrição no Chrome. Ele exige o mesmo Bearer Token e é apagado após a primeira entrega ou ao expirar.

O fluxo client_credentials é indicado para clientes internos e servidores. Em uma página pública de produção, prefira Authorization Code + PKCE com um provedor como Keycloak.