NestJS + Swagger + OAuth2 + BullMQ + Sherpa-ONNX
Diarização de áudio e vídeo
O navegador envia a mídia, a API cria um job no BullMQ, workers isolados extraem somente o áudio e identificam os locutores, e a página acompanha o status antes de seguir para a transcrição.
API e OAuth2
Obtenha um token pelo fluxo client_credentials antes de enviar o áudio ou vídeo.
Áudio ou vídeo
Grave pelo microfone ou selecione um arquivo de áudio ou vídeo existente.
Diarização pela API
Áudio ou vídeo é enviado com Bearer Token. Em vídeos, o FFmpeg seleciona somente a primeira faixa de áudio; imagens, legendas e metadados são ignorados. A diarização roda depois sobre esse áudio.
Trechos encontrados
Transcrição pelo Chrome
Os intervalos retornados pela API são reproduzidos um por vez para a Web Speech API.
Após o POST, a API devolve um jobId e a página consulta o status até a conclusão. O arquivo aguardando worker fica temporariamente em /dev/shm (RAM), não no Redis nem em armazenamento permanente. O worker apaga a entrada assim que extrai a primeira faixa de áudio.
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.