Sou fã do Top Gear UK e, para a minha tristeza, nenhum serviço de streaming brasileiro tem o seriado no catálogo. Minha primeira solução foi comprar as temporadas em DVD, mas eles vêm apenas com legendas em inglês.
Mesmo entendendo bem o idioma, eu prefiro assistir com legendas em português brasileiro. Assim dá pra aproveitar melhor as piadas e as expressões britânicas, que às vezes se perdem um pouco na tradução literal.

O problema? Os serviços online de tradução de legendas costumam ser caros, lentos e enviam seus dados para a nuvem.

A solução: Processar tudo localmente usando inteligência artificial rodando na minha RTX 4090 usando o modelo Modelo NLLB-200.

As legendas do DVD vêm no formato PGS, então foi necessário convertê-las para o formato SRT (texto). Esse processo ficará para outra postagem, aqui vou focar apenas na tradução do arquivo de legendas (.srt).

Eis uma comparação de antes e depois, ainda não está perfeito, mas já é um bom avanço:
Antes
Depois

O que é o NLLB-200?

O NLLB-200 (sigla para No Language Left Behind) é um projeto e um modelo de inteligência artificial de tradução automática de grande escala desenvolvido pela Meta AI (Facebook). A principal inovação do NLLB-200 é sua capacidade de realizar traduções de alta qualidade entre 200 idiomas diferentes, o que representa um avanço significativo em relação aos modelos de tradução tradicionais que focavam principalmente em pares de idiomas mais comuns (como Inglês-Espanhol).

Requisitos do Projeto

Hardware

  • GPU NVIDIA com CUDA (no meu caso RTX 4090 com 24GB VRAM)
  • Mínimo recomendado: RTX 3060 com 12GB ou superior
  • CPU e RAM: Qualquer configuração moderna serve

Software

  • Windows 10/11
  • Python 3.8 a 3.12 (usei o 3.12.10)
  • Driver NVIDIA atualizado (usei 581.80)
  • CUDA Toolkit (versão 12.1)
  • Modelo: Facebook/nllb-200-1.3B

Passo 1: Preparar o Ambiente

Instalar Python

Baixe o Python 3.12 em: https://www.python.org/downloads/

IMPORTANTE: Durante a instalação, marque "Add Python to PATH"
Após a instalação verifique a versão instalada:
python --version

Instalar CUDA Toolkit

Acesse: https://developer.nvidia.com/cuda-downloads
Selecione: Windows → x86_64 → 11 → exe (local)
Instale

Criar Estrutura de Pastas

Crie uma pasta chamada TraducaoTopGear e dentro dela outras 3 legendas_originais , legendas_traduzidas e scripts.

TraducaoTopGear/
├── legendas_originais/        (arquivos .srt em inglês)
├── legendas_traduzidas/       (resultado das traduções)
└── scripts/                   (script Python)
    └── traduzir_legendas.py   (disponível no final do post)

Passo 2: Instalar Dependências

Abra o Prompt de Comando na pasta raiz TraducaoTopGear e execute:

# Criar ambiente virtual python
python -m venv venv

# Ativar ambiente virtual
venv\Scripts\activate

# Atualizar pip
python -m pip install --upgrade pip setuptools wheel

# Instalar PyTorch com suporte CUDA
pip install --upgrade torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

# Instalar bibliotecas necessárias
pip install transformers
pip install sentencepiece
pip install pysrt
pip install tqdm
pip install safetensors
pip install accelerate

Verificar CUDA

Verifique se o PyTorch está reconhecendo sua GPU:

python -c "import torch; print('CUDA disponível:', torch.cuda.is_available()); print('GPU:', torch.cuda.get_device_name(0))"

Resultado esperado:

CUDA disponível: True
GPU: NVIDIA GeForce RTX 4090

Passo 3: Script de Tradução

Criei o script traduzir_legendas.py com o código completo (disponível no final do post).

Principais características do script:

  1. Modelo NLLB-200: Modelo de tradução da Meta AI, especializado em 200 idiomas.
  2. Processamento em lotes (batch): Traduz múltiplas legendas simultaneamente.
  3. Otimizado para GPU: Usa toda a capacidade da RTX 4090.
  4. Formato safetensors: Mais seguro e rápido que o formato tradicional.

Por que NLLB?

  • Roda 100% offline (privacidade total).
  • Qualidade comparável a serviços pagos.
  • Grátis e open-source.
  • Otimizado para GPU NVIDIA.
  • Suporta português brasileiro especificamente (não confunde com PT-PT).

Passo 4: Configurar o Script

Edite as linhas 335 e 336 de configuração no script informando as pastas legendas_originais e legendas_traduzidas.

PASTA_LEGENDAS_ORIGINAIS = r"[PASTA LEGENDAS ORIGINAIS]"
PASTA_LEGENDAS_TRADUZIDAS = r"[PASTA LEGENDAS TRADUZIDAS]"
Dica importante: Use o r antes das aspas para evitar problemas com barras invertidas!

Passo 5: Executar a Tradução

Coloque os arquivos .srt na pasta Coloquei meus arquivos .srt na pasta legendas_originais , acesse a pasta raiz do projeto TraducaoTopGear e execute:

# Ativar ambiente virtual (caso tenha saído dele)
venv\Scripts\activate

# Rodar script
python scripts\srt_translator_nllb.py

Primeira execução:

  • O modelo NLLB (~6GB) será baixado automaticamente (~10 minutos).
  • O modelo ficará salvo localmente para próximas execuções.

Execuções seguintes:

  • Script começa traduzindo imediatamente.
  • Velocidade: ~100-150 blocos de legenda por minuto
  • Um episódio típico (500-700 blocos de legenda): 3-6 minutos

Resultados e Qualidade

Original (EN-GB):

That's absolutely brilliant!
This car is properly quick, isn't it?
Oh, cock!

Traduzido (PT-BR):

Isso é absolutamente sensacional!
Este carro é realmente rápido, não é?
Ah, droga!

Eu diria que a qualidade ficou em 70%:

Antes
Depois

"Traficantes de carros"

Pontos positivos:

  • Tradução natural e fluida
  • Preserva o contexto automotivo
  • Adapta expressões britânicas
  • Mantém a formatação e timing originais
  • Processa arquivos grandes rapidamente

Limitações encontradas:

  • Algumas piadas muito específicas perdem a graça
  • Nomes próprios às vezes são traduzidos (ex: "James May" vira "James Maio")
  • Gírias muito britânicas ficam literais

Dicas e Truques


Ajustar tamanho do lote conforme sua GPU:

GPUVRAMtamanho_lote recomendado
RTX 306012GB20-30
RTX 308010GB25-35
RTX 407012GB30-40
RTX 409024GB50-80

Monitorar GPU em tempo real:

Em outro Prompt de Comando (cmd), execute:

nvidia-smi
Isso atualiza o status da GPU a cada 1 segundo.

Comparação de Custos

MétodoCustoTempoPrivacidade
IA Local (meu método)R$ 0,001~2 min/ep100% privado
Google Translate APIpor caractere<1 min/epDados na nuvem
DeepL APIpor caractere<1 min/epDados na nuvem
Tradução manualR$ 50-100/epHorasPrivado

Script Completo

O script está disponível no github:

https://github.com/TGuerreiro/scripts/blob/main/srt_translator_nllb.py

scripts/srt_translator_nllb.py at main · TGuerreiro/scripts
Coleção de scripts desenvolvidos para uso pessoal e para demonstrar conteúdos do meu blog - TGuerreiro/scripts