← Projetos

Transcritor de áudio e legendas com Whisper

Pipeline local que converte vídeos em áudio, transcrição TXT e legenda SRT usando FFmpeg e Whisper.

Papel
Implementação, testes e documentação
Stack
Python · OpenAI Whisper · FFmpeg · unittest
Resultado
Fluxo reproduzível de vídeo para MP3, TXT e SRT com uma CLI e quatro testes.
Vídeo convertido por FFmpeg em MP3 e por Whisper em transcrição TXT e legenda SRT
Fluxo de arquivos documentado no projeto; diagrama explicativo.

Problema

Produzir uma legenda reutilizável normalmente exige coordenar extração de áudio, reconhecimento de fala e escrita dos formatos de saída. O protótipo inicial extraía o áudio, mas não retornava o caminho do MP3 para a transcrição, executava automaticamente ao ser importado e dependia de pastas criadas manualmente.

Solução

vídeo
  │
  ▼
FFmpeg ──► MP3
             │
             ▼
          Whisper
             │
             ├──► legenda SRT
             └──► transcrição TXT

A extração cria seu diretório, executa o FFmpeg com verificação de erro e devolve o caminho produzido. A CLI conecta esse resultado ao Whisper e permite escolher modelo e diretórios sem alterar o código.

Confiabilidade

  • nenhuma execução acontece durante a importação dos módulos;
  • falhas do FFmpeg são propagadas para o terminal;
  • diretórios de áudio e texto são criados automaticamente;
  • arquivos de entrada e saída permanecem fora do Git;
  • testes usam substitutos para FFmpeg e Whisper, sem baixar modelos ou mídia.

Resultado

Uma entrada video.mp4 produz, na configuração padrão:

audios/
└── video.mp3

srts/
├── video.srt
└── video.txt

Quatro testes verificam o caminho retornado pela extração, a propagação de erros, a escrita da transcrição e a integração entre argumentos, áudio e legenda.

Limitações

O projeto processa um arquivo por execução e carrega o modelo novamente a cada chamada. O modo atual usa fp16=False para privilegiar compatibilidade com CPU, e a qualidade depende do idioma, do ruído e do modelo escolhido.