Legendas automáticas com Python e OpenAI

Neste post vamos explorar como usar Python para criar legendas automáticas em vídeos com a ajuda da inteligência artificial da OpenAI.

Você vai aprender a transcrever áudios, gerar arquivos de legenda no formato SRT e corrigir caracteres especiais, tudo isso com poucas linhas de código. Esse processo é ideal para quem precisa legendar vídeos de forma rápida e eficiente, sem depender de ferramentas manuais.

Se quiser pode acompanhar esse conteúdo em formato de vídeo ou pode acessar o nosso Canal do YouTube para mais vídeos!

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

Explicando o Projeto - Legendas Automáticas com Python

O objetivo deste projeto é criar um script em Python que, a partir de um vídeo, extrai o áudio, transcreve o conteúdo usando a API da OpenAI e gera um arquivo de legenda no formato SRT. Esse arquivo pode ser usado em players de vídeo ou plataformas como o YouTube.

A ideia é automatizar o processo de legendagem, economizando tempo e esforço. Imagine ter centenas de vídeos para legendar: fazer isso manualmente seria inviável.

Bibliotecas Necessárias

Para realizar essa tarefa, vamos utilizar três bibliotecas principais:

  1. OpenAI: Para acessar a API de transcrição de áudio.
  2. PyDub: Para extrair o áudio do vídeo.
  3. python-dotenv: Para gerenciar a chave de API da OpenAI de forma segura, armazenando-a em variáveis de ambiente.

Essas bibliotecas são essenciais para garantir que o processo funcione de forma fluida e segura, sem expor suas credenciais de API no código.

Instalando e Importando as Bibliotecas

Primeiro, instale as bibliotecas necessárias com os comandos:

Codigo
pip install openai pydub python-dotenv

Em seguida, importe-as no seu script Python:

Python
from openai import OpenAI

from pydub import AudioSegment

from dotenv import load_dotenv

Essas bibliotecas vão nos permitir acessar a API da OpenAI, manipular arquivos de áudio e gerenciar variáveis de ambiente de forma eficiente.

Como Usar a API da OpenAI

A API da OpenAI oferece um modelo chamado Whisper, especializado em transcrição de áudio. Para usá-lo, você precisa criar uma chave de API no site da OpenAI e armazená-la em um arquivo .env.

Com a chave em mãos, você pode criar um cliente OpenAI e começar a transcrever áudios. A API é poderosa e precisa, capaz de transcrever áudios em vários idiomas, incluindo português, com alta taxa de acerto.

Como Criar uma Chave de API

Para criar uma chave de API, siga os passos:

  1. Acesse o site da OpenAI e faça login.
  2. Navegue até a seção "API Keys".
  3. Clique em "Create New Secret Key".
  4. Dê um nome à sua chave e clique em "Create secret key”.
criando api key no site da openai

Armazenando a Chave nas Variáveis de Ambiente

Para garantir a segurança da sua chave de API, armazene-a em um arquivo .env. Crie um arquivo chamado .env no diretório do seu projeto e adicione a seguinte linha:

Codigo
OPENAI_API_KEY=sua_chave_aqui

Isso evita que a chave seja exposta no código, mantendo-a segura.

Carregando a Chave de API com a Biblioteca python-dotenv

Para carregar a chave de API do arquivo .env, usamos a biblioteca python-dotenv. Adicione o seguinte código ao seu script:

Python
load_dotenv()

Isso garantirá que a chave de API seja carregada automaticamente quando o script for executado.

Ícone PythonPython Impressionador

Você vai aprender a linguagem de Programação que mais cresce no Mundo para fazer automações incríveis, desenvolver sites, fazer análises de dados, trabalhar com Ciência de Dados, Inteligência Artificial, mesmo que você nunca tenha tido nenhum contato com Programação na vida.

Começar agoraSeta para a direita
Fundo PythonTelas Python
Luz Python

Criando o Cliente OpenAI

Com a chave de API carregada, podemos criar o cliente OpenAI:

Python
cliente = OpenAI()

Esse cliente será usado para enviar o áudio para a API e receber a transcrição.

Entendendo o Código de Exemplo da OpenAI

A OpenAI fornece um exemplo de código para transcrever áudios. O código básico envolve abrir o arquivo de áudio em modo de leitura e enviá-lo para a API. No nosso caso, vamos adaptar esse código para extrair o áudio de um vídeo e gerar um arquivo de legenda.

Selecionando o Arquivo de Vídeo

Primeiro, definimos o nome e o caminho do arquivo de vídeo:

Python
nome_arquivo = "ja começou a jornada full stack.mp4"
caminho_arquivo = f"C://Users/joaol/Downloads/{nome_arquivo}"

Isso permite que o script encontre o vídeo no diretório especificado.

Extraindo o Áudio do Vídeo

Com o pydub, extraímos o áudio do vídeo e o salvamos como um arquivo MP3:

Python
extensao_arquivo = nome_arquivo.split(".")[1]
audio = AudioSegment.from_file(caminho_arquivo, format=extensao_arquivo)
audio.export("audio.mp3", format="mp3")

Essa etapa é crucial, pois a API da OpenAI trabalha com arquivos de áudio, não diretamente com vídeos. O pydub facilita essa conversão, permitindo que você extraia o áudio de qualquer vídeo de forma rápida.

Estrutura with para Abrir Arquivos

Para garantir que o arquivo de áudio seja aberto e fechado corretamente, usamos a estrutura with:

Python
with open("audio.mp3", "rb") as arquivo_audio:

Isso garante que o arquivo seja fechado automaticamente após o uso, evitando vazamentos de recursos.

Transcrevendo o Áudio com IA

Usando o cliente OpenAI, enviamos o arquivo de áudio para transcrição. A API retorna o texto transcrito, que pode ser formatado como um arquivo de legenda SRT. Para melhorar a precisão da transcrição, podemos fornecer um prompt de contexto, como o nome do vídeo ou palavras-chave:

Python
prompt = f"Esse áudio foi extraído do arquivo {nome_arquivo} que é um evento completaço de programação"
transcricao = cliente.audio.transcriptions.create(
    file=arquivo_audio,
    model="whisper-1",
    language="pt",
    prompt=prompt,
    response_format="srt"
)

O prompt ajuda a API a entender melhor o contexto e transcrever com mais precisão.

Melhorando a Transcrição com um Prompt de Contexto

O prompt de contexto é essencial para garantir que a transcrição seja precisa, especialmente quando o áudio contém termos técnicos ou nomes próprios. No nosso exemplo, o prompt informa que o áudio foi extraído de um vídeo sobre um evento de programação, o que ajuda a API a entender melhor o conteúdo.

Como Funcionam os Arquivos de Legenda

Arquivos de legenda no formato SRT contêm o texto transcrito junto com os tempos de início e fim de cada linha de legenda. Esse formato é amplamente utilizado e compatível com a maioria dos players de vídeo e plataformas de streaming.

Gerando o Arquivo de Legenda com IA no Python

Após a transcrição, o texto é salvo em um arquivo SRT:

Python
with open("legenda.srt", "w", encoding="utf-8") as arquivo_legenda:
    arquivo_legenda.write(transcricao)

Esse arquivo pode ser usado em players de vídeo ou plataformas como o YouTube para adicionar legendas ao vídeo.

Corrigindo Caracteres Especiais com UTF-8 Encoding

Para garantir que caracteres especiais (como acentos) sejam corretamente exibidos, utilizamos o encoding UTF-8 ao salvar o arquivo:

Python
with open("legenda.srt", "w", encoding="utf-8") as arquivo_legenda:
    arquivo_legenda.write(transcricao)

Isso evita problemas com caracteres quebrados ou mal formatados.

Usando a Legenda Gerada com Python

Com o arquivo de legenda gerado, você pode adicioná-lo ao seu vídeo em qualquer player ou plataforma que suporte o formato SRT. Isso permite que o vídeo tenha legendas sincronizadas e precisas, melhorando a acessibilidade e a experiência do usuário.

Conclusão

Com esse script, você pode automatizar a legendagem de vídeos de forma rápida e eficiente. A integração da API da OpenAI com Python permite transcrever áudios com alta precisão, enquanto o pydub facilita a extração do áudio.

Esse processo é ideal para quem trabalha com vídeos e precisa gerar legendas de forma automatizada. Imagine o tempo que você pode economizar ao legendar vídeos de cursos, palestras ou até mesmo conteúdo para redes sociais. Experimente e veja como essa solução pode otimizar seu fluxo de trabalho!

E se você quer dominar Python de verdade e aprender a criar soluções como essa em diferentes áreas, o Curso Python Impressionador é o próximo passo certo. Nele você terá acesso a projetos práticos, materiais completos e suporte para transformar suas ideias em realidade.

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Posts mais recentes de Python

Posts mais recentes da Hashtag Treinamentos