Com esta ferramenta você vai conseguir gerar legendas automaticamente a partir de um vídeo utilizando Python, Whisper e incorporá-las diretamente ao vídeo com MoviePy. 👨🏻💻
Este projeto foi desenvolvido com o objetivo de automatizar uma parte do processo de edição de vídeo, te possibilitando legendar um vídeo através de um único comando no Terminal. 🧠
-
Execução através de um único comando no Terminal.
-
Transcrição automática do áudio do vídeo com
Whisper, com a identificação do momento em que cada palavra é falada. -
Geração automática de um arquivo .srt (legenda), com divisão de legendas por pontuação e quantidade pré-definida de palavras.
-
Renderização das legendas diretamente no vídeo, com texto centralizado com contorno para facilitar a leitura e exportação do vídeo final utilizando
MoviePyeFFmpeg.
git clone https://github.com/IsacFreitaas/python-automatic-video-subtitler.gitcd python-automatic-video-subtitlerCrie e ative o Ambiente Virtual:
python3 -m venv venvsource venv/bin/activatevenv\Scripts\activatepip3 install -r requirements.txt*Também é necessário instalar o FFmpeg e adicioná-lo ao PATH do sistema.
Em distribuições Linux:
sudo apt update && sudo apt install ffmpegNo MacOS X (com o brew instalado):
brew install ffmpegJá no Windows, entre no site e faça o download: https://www.ffmpeg.org
python3 main.py nome_do_video.mp4*- Ao invés de "
nome_do_video.mp4", coloque o local do seu vídeo e a extensão do arquivo.
-
Carregar o modelo Whisper;
-
Transcrever o áudio do vídeo;
-
Identificar os timestamps das palavras;
-
Criar o arquivo de legendas
.srt; -
Dividir as legendas em blocos menores (como foi pré-definido);
-
Renderizar as legendas sobre o vídeo;
-
Exportar o vídeo final.
nome_do_arquivo_legendado.mp4*O projeto utiliza os timestamps individuais fornecidos pelo Whisper para construir legendas menores e sincronizadas com a fala.
Uma nova legenda é criada quando:
-
existem pelo menos 3 palavras e/ou o texto termina com
,,.,?ou!; -
ou o bloco chega a 5 palavras (que é o máximo pré-definido).
Isso evita manter frases muito longas na tela e permite que cada legenda utilize o momento real em que as palavras foram pronunciadas.
Vídeo
│
▼
faster-whisper
│
▼
Transcrição + timestamps
│
▼
Geração do .srt
│
▼
Leitura com pysrt
│
▼
Insere no vídeo com MoviePy
│
▼
Vídeo legendado
Atualmente, por padrão, o modelo de transcrição utilizado é o medium, configurado para execução em CPU:
WhisperModel(
"medium",
device="cpu",
compute_type="int8"
)
Modelos maiores e melhores podem oferecer maior qualidade de transcrição, mas também exigem mais recursos computacionais e tempo de processamento.
A velocidade e a qualidade da transcrição podem variar de acordo com o hardware, qualidade do áudio e características do vídeo.
Este projeto faz parte de uma série de conteúdos sobre automação utilizando Python, mostrando como tarefas normalmente realizadas manualmente podem ser automatizadas através de programação.
Documentei todo o processo, mostrando a construção do projeto e explicando na prática, no momento da construção inicial do projeto no vídeo do YouTube. Confere lá: Clique aqui. ⬅️
Desenvolvedor Python | Backend & Ciência de Dados | APIs e Automação | Simplificando Python e transformando código em aplicações reais
➡️ Me encontre nas redes sociais: https://inktr.ee/isaczeitgeistpy
Obrigado pela atenção!
