Como transcrever vídeos automaticamente
Otimize seu SaaS de vídeos transcrevendo áudios longos via GPU com baixo custo e altíssima performance.
Por que isso é importante
Como transcrever vídeos automaticamente. Otimize seu SaaS de vídeos transcrevendo áudios longos via GPU com baixo custo e altíssima performance.
O desafio da transcrição em projetos com vídeo
Quando você constrói um SaaS que gera títulos e capítulos automaticamente de vídeos, precisa extrair o áudio e transcrever com precisão. No começo, a API do Whisper da OpenAI parecia uma boa ideia, mas as limitações de tamanho, latência e custo apareceram logo depois.
Por que não usar diretamente APIs comerciais?
APIs como Whisper e Gemini funcionam, mas têm limites de tamanho ou cobram caro por segundo de áudio. Acelerar o áudio para pagar menos compromete a qualidade da transcrição. Foi aí que rodar o próprio modelo se mostrou muito mais eficiente.
APIs comerciais (Whisper, Gemini)
Serviços prontos de terceiros que recebem áudio e retornam a transcrição
Prós
- Pronto para uso
- Fácil integração
Contras
- Custo elevado por segundo
- Latência em vídeos longos
- Customização limitada
Modelo WhisperX hospedado
Hospedagem manual de modelo open-source com otimizações
Prós
- Customização completa
- Controle da performance
- Custo sob demanda
Contras
- Maior esforço de setup
- Necessidade de GPU dedicada
WhisperX e WhisperJax: comparando os modelos open-source
WhisperJax e WhisperX são versões otimizadas do Whisper da OpenAI. O WhisperX traz dois recursos poderosos: timestamps precisos por palavra e diarização (ele identifica quem falou o quê em podcasts ou entrevistas).
Onde e como hospedar seu modelo WhisperX
Hospedar localmente não rola em infra serverless comum ou máquinas sem potência. Por isso, plataformas como Replicate ou Modal rodam em GPU sob demanda. Escolhi o Modal porque você pode configurar diferentes GPUs e executar qualquer código Python como se fosse uma Lambda Serverless.
Como moldar uma arquitetura performática e econômica
No começo, o Trigger fazia uma chamada síncrona ao Modal e aguardava até finalizar. Isso gerava cobrança mesmo quando o código estava parado, esperando. Com a arquitetura assíncrona, o Trigger dispara uma requisição para o Modal com uma callback URL. Quando termina, o Modal aciona essa URL e o workflow continua — sem cobrar tempo ocioso.
FastAPI para criar o endpoint no Modal
FastAPI cuida da orquestração HTTP fazendo duas coisas: expõe um endpoint para receber os dados do áudio e a URL de callback, e roda um serviço separado que carrega o WhisperX, transcreve e dispara o webhook. O endpoint responde na hora com 202 Accepted, enquanto a transcrição processa em background.
Como a transcrição funciona na prática com WhisperX
Depois de baixar o áudio, o WhisperX entra em ação usando a GPU. O modelo Whisper Large V2 se mostrou muito preciso, acertando até termos técnicos como HTTP, RabbitMQ e CI/CD. O resultado traz timestamps, idioma detectado e falas separadas com precisão por palavra.
Testando localmente usando Webhook.site
Durante o desenvolvimento, sites como webhook.site simulam uma callback URL pra você verificar se a transcrição está chegando direitinho. Isso te deixa iterar rápido antes de integrar tudo com o Trigger.
Reduzindo custos com Wait Points do Trigger.dev
O Wait Point do Trigger suspende o job até a callback ser disparada. Isso corta a cobrança do tempo de espera — você só paga pelo tempo real de execução da transcrição.
Resultados e observações finais
Essa abordagem reduz custos de forma significativa, deixa o sistema mais rápido e elimina as limitações de APIs comerciais. A lógica com callbacks escala muito bem — cada job roda em containers independentes com GPU, tudo paralelo.
Atenção
Máquinas com GPU têm cold start de 15 a 30 segundos. Lembre disso ao lidar com os primeiros requests ou ambientes pouco ativos.
Dica valiosa
Use o WhisperX com "large-v2" e configure sua instância do Modal com no mínimo 10GB de VRAM, como a NVIDIA A10G, para performance estável.
Cuidado com concorrência
Garanta que seu job de transcrição não sobrescreva ou compartilhe arquivos temporários entre execuções simultâneas pra evitar conflito de dados.
Checklist de Implementação
Continue lendo
RESTful APIs: Descubra o que quase ninguém faz certo
Desvende os verdadeiros princípios do REST original, entenda por que quase nenhuma API é realmente RESTful e aplique...
Diferença entre validador de input e regras de negócio: exemplos práticos
Saiba como separar corretamente validações de dados e regras de negócio, utilizando exemplos do mundo real que...
Desafio de Estágio Back-end Spring Boot com Magalu
Construa dois endpoints RESTful com Java e PostgreSQL baseados em um desafio técnico real para iniciantes.
MicroSaaS com IA do zero
Stack free do prompt ao ar