Códigos do

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:

Python
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:

Python
!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:

Python
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:

Python
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:

Python
# 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:

Python
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.

06/07/2024