Tenho algumas centenas de horas de aulas gravadas ensinando algoritmos e estruturas de dados, padrões de projeto, Domain-driven Design e Reputação e Marketing Pessoal. Também tenho algumas centenas de horas de sessões de mentoria em arquitetura de software.
Nas minhas masterclasses, sempre vou muito além do material preparado.
Todos esses vídeos possuem ideias incríveis, mas que não são fáceis de acessar, sem que, obviamente, alguém assista todos os vídeos novamente, estruturando conteúdo de maneira interessante.
Recentemente, a Google lançou uma ferramenta incrível chamada NotebookLM. Ela permite “conversar com documentos”. Mas, até então, estes documentos precisam ser textos.
Então, o caminho tem sido gerar versões em texto dos meus vídeos. Mas, como? A resposta é utilizar tecnologias de IA como a Whisper da OpenAI.
Preparação do Ambiente
Para gerenciar as dependências de forma eficaz, recomendo criar um ambiente virtual usando conda. Primeiro, instale a última versão do Python e configure o ambiente:
conda create -n transcricao_env python=3.10
conda activate transcricao_env
Instalação dos Pacotes
Com o ambiente configurado, instale os pacotes necessários:
!pip install git+https://github.com/openai/whisper.git
!pip install ffmpeg-python
Passo-a-passo (Jupyter Notebook)
Importação e Carregamento do Modelo
Em um notebook (ou script Python), começo importando os pacotes necessários e carregando o modelo do Whisper. A primeira execução consome um pouco mais de tempo:
import whisper
import ffmpeg
import os
model = whisper.load_model("base")
Extração do Áudio do Vídeo
Em seguida, extraímos o áudio do vídeo. Isso é feito para facilitar a transcrição, uma vez que o Whisper trabalha diretamente com arquivos de áudio:
video_path = r"/Users/elemarjr/Downloads/mentoria_arquitetura_1.mp4"
audio_path = r"/Users/elemarjr/Downloads/mentoria_arquitetura_1.m4a"
ffmpeg.input(video_path).output(audio_path).run(overwrite_output=True)
Geração da Transcrição
Finalmente, obtemos a transcrição e a salvamos em um arquivo de texto:
# Obter a transcrição
output_path = r"/Users/elemarjr/Downloads/mentoria_arquitetura_1.txt"
result = model.transcribe(audio_path, language='pt')
# Salvar a transcrição em um arquivo de texto
with open(output_path, "w", encoding='utf-8') as f:
f.write(result['text'])
Pronto para o NotebookLM
Pronto. Tenho um arquivo texto com todo o conteúdo da aula que, agora, pode ser usado como source no NotebookLM.
Juntando tudo em um Utilitário de Linha de Comando
Para facilitar o uso do processo descrito acima, criei um utilitário de linha de comando em Python. Este script permite passar o caminho de um vídeo como argumento e obtém a transcrição do vídeo. Aqui está o código:
import whisper
import ffmpeg
import os
import sys
def transcribe_video(video_path):
# Define o caminho do arquivo de áudio e da transcrição
audio_path = os.path.splitext(video_path)[0] + '.m4a'
output_path = os.path.splitext(video_path)[0] + '.txt'
# Extrai o áudio do vídeo
ffmpeg.input(video_path).output(audio_path).run(overwrite_output=True)
# Carrega o modelo Whisper
model = whisper.load_model("base")
# Gera a transcrição
result = model.transcribe(audio_path, language='pt')
# Salva a transcrição em um arquivo de texto
with open(output_path, "w", encoding='utf-8') as f:
f.write(result['text'])
print(f"Transcrição salva em {output_path}")
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Uso: python transcribe.py <caminho_para_o_video>")
sys.exit(1)
video_path = sys.argv[1]
transcribe_video(video_path)
Para usar este utilitário, salve o código acima em um arquivo chamado transcribe.py
e execute-o na linha de comando passando o caminho para o vídeo:
python transcribe.py /caminho/para/o/video.mp4
Pronto! Agora você tem um utilitário de linha de comando que transcreve vídeos automaticamente.
Possíveis Erros e Soluções
Durante o processo, alguns erros podem ocorrer. Aqui estão alguns comuns e como resolvê-los:
- Erro de instalação de pacotes: Certifique-se de que você tem permissão para instalar pacotes e que sua conexão com a internet está estável.
- Erro ao carregar o modelo: Verifique se você tem espaço suficiente em disco e memória disponível.
- Erro ao extrair o áudio: Assegure-se de que o caminho do arquivo de vídeo está correto e que o ffmpeg está instalado corretamente.
Contextualização e Aplicações Práticas
A transcrição de áudio e vídeo é extremamente útil para diversas aplicações, como:
- Análise de conteúdo: Facilita a análise de grandes volumes de informações contidas em vídeos.
- Acessibilidade: Ajuda na criação de legendas, tornando o conteúdo acessível para pessoas com deficiência auditiva.
- SEO e Indexação: Melhora o SEO, permitindo que os motores de busca indexem o conteúdo textual.
- Recuperar conteúdo relevante e contextualizado: Permite encontrar rapidamente trechos importantes e contextualmente ricos dos vídeos gravados.
Com essa abordagem, posso oferecer material de qualidade para quem estuda comigo, transformando horas de vídeo em documentos de texto utilizáveis, prontos para serem analisados e manipulados em ferramentas como o NotebookLM.
Se você deseja estudar comigo e acessar material de alta qualidade e contextualizado, entre em contato. Estou sempre pronto para compartilhar conhecimento e ajudar no seu desenvolvimento profissional.