Skip to main content

CLI para transcrição de audiências judiciais com WhisperX e diarização

Project description

tecjustica-transcribe

CLI para transcrição de audiências judiciais com WhisperX e diarização de falantes.

Transcreve vídeos MP4 gerando texto com timestamps e identificação de quem está falando (Juiz, Promotor, Advogado, etc. — identificados como SPEAKER_00, SPEAKER_01...).

Requisitos do Sistema

Sistema Operacional

SO Suporte Observações
Ubuntu/Debian (WSL2) ✅ Testado Recomendado para usuários Windows
Ubuntu/Debian nativo ✅ Compatível Instalação direta
Windows nativo ❌ Não suportado Use WSL2 (veja Guia WSL2)
macOS ❌ Não suportado Requer GPU NVIDIA (CUDA)

Usuários Windows: instale o WSL2 com Ubuntu. O WSL2 acessa a GPU NVIDIA do Windows automaticamente.

Hardware

Componente Mínimo Recomendado
GPU NVIDIA 6 GB VRAM (ex: RTX 3050) 8 GB+ VRAM (ex: RTX 3060, RTX 4060)
RAM 8 GB 16 GB
Disco 10 GB livres (para modelos de IA) 15 GB+

GPUs AMD e Intel não são compatíveis. É necessária uma GPU NVIDIA com suporte a CUDA.

Software

Dependência Como instalar Verificar
Driver NVIDIA nvidia.com/drivers ou Windows Update nvidia-smi
CUDA Instalado automaticamente junto com o PyTorch python3 -c "import torch; print(torch.cuda.is_available())"
ffmpeg sudo apt install ffmpeg ffmpeg -version
Python 3.10–3.13 sudo apt install python3.12 python3 --version
uv (gerenciador recomendado) curl -LsSf https://astral.sh/uv/install.sh | sh uv --version

Não sabe se está tudo certo? Rode tecjustica-transcribe init após instalar — ele verifica tudo e mostra o que está faltando.

Token HuggingFace (necessário para identificar falantes)

A diarização (identificar quem está falando) usa o modelo pyannote, que exige um token gratuito do HuggingFace:

  1. Crie uma conta em https://huggingface.co/join
  2. Acesse https://huggingface.co/pyannote/speaker-diarization-community-1 e clique em "Agree and access repository"
  3. Gere um token do tipo "Read" em https://huggingface.co/settings/tokens

O comando init vai pedir esse token e salvá-lo na sua máquina.

Sem o token, você ainda pode transcrever usando --sem-diarizacao — a transcrição funciona normalmente, só não identifica os falantes.

Instalação

curl -fsSL https://raw.githubusercontent.com/marcosmarf27/tecjustica-transcribe/main/install.sh | bash

O script instala automaticamente: Python, dependências, ffmpeg e o app.

Após instalar, execute:

tecjustica-transcribe init    # configurar GPU e token HuggingFace
tecjustica-gui                # abrir interface gráfica

Atualizar para versão mais recente

curl -fsSL https://raw.githubusercontent.com/marcosmarf27/tecjustica-transcribe/main/install.sh | bash -s -- --update

Ou, se já tem o script localmente:

bash install.sh --update

Desinstalar

curl -fsSL https://raw.githubusercontent.com/marcosmarf27/tecjustica-transcribe/main/install.sh | bash -s -- --uninstall

Passo a Passo: Do Zero à Transcrição

1. Verificar requisitos (só precisa rodar uma vez)

tecjustica-transcribe init

O init verifica seu sistema, baixa os modelos de IA (~3 GB no primeiro uso) e pede o token HuggingFace:

╭──────────────── TecJustiça Transcribe — Diagnóstico ─────────────────╮
│ Python            ✅ 3.12.3                                          │
│ Driver NVIDIA     ✅ 591.44                                          │
│ CUDA              ✅ 12.8                                            │
│ GPU               ✅ NVIDIA GeForce RTX 3050 6GB Laptop GPU (6.0 GB) │
│ ffmpeg            ✅ 6.1.1                                           │
│ Token HuggingFace ✅ hf_pcgK...                                      │
╰──────────────────────────────────────────────────────────────────────╯
✅ Tudo pronto para transcrever!

Se algum item mostrar ❌, resolva antes de transcrever (veja Solução de Problemas).

2. Transcrever

# Com identificação de falantes (~13 min para 1h de vídeo)
tecjustica-transcribe transcrever audiencia.mp4

# Sem identificar falantes, mais rápido (~2 min para 1h de vídeo)
tecjustica-transcribe transcrever audiencia.mp4 --sem-diarizacao

# Escolher pasta de saída (padrão: ./transcricoes/)
tecjustica-transcribe transcrever audiencia.mp4 --output ./minha-pasta

Usuários WSL2: os arquivos do Windows ficam em /mnt/c/. Exemplo:

# Arquivo em C:\Users\marcos\Downloads\audiencia.mp4
tecjustica-transcribe transcrever /mnt/c/Users/marcos/Downloads/audiencia.mp4

3. Resultado

Os arquivos são salvos na pasta ./transcricoes/ (relativa a onde você rodou o comando):

Arquivo Formato Para que serve
audiencia.txt Texto puro com [SPEAKER_00] Leitura e análise
audiencia.srt Legendas com timestamps Abrir em players (VLC, etc.)
audiencia.json Dados completos por palavra Integração com outros sistemas

Exemplo do .txt:

[SPEAKER_02]
Boa tarde, meu nome é Fabriziane, eu sou juiz aqui na violência doméstica.

[SPEAKER_00]
Boa tarde, senhora Neide, meu nome é Vinícius, eu sou promotor de justiça.

[SPEAKER_04]
Boa tarde, tudo bem.

Solução de Problemas

Problema Solução
nvidia-smi não encontrado Instale o driver NVIDIA: nvidia.com/drivers
CUDA não disponível Verifique se o driver NVIDIA é compatível com CUDA 12+. No WSL2, atualize o driver do Windows
Erro de memória (OOM) Feche outros programas (especialmente navegadores). Tente --sem-diarizacao
Token HuggingFace negado (403) Aceite os termos em huggingface.co/pyannote/speaker-diarization-community-1
ffmpeg não encontrado sudo apt install ffmpeg
uv: command not found Instale o uv: curl -LsSf https://astral.sh/uv/install.sh | sh e depois source ~/.bashrc
Transcrição muito lenta Verifique se está usando GPU (init deve mostrar GPU ✅). CPU é 10x mais lento

Guia Rápido: Windows com WSL2

Se você usa Windows e nunca usou WSL2, siga estes passos:

# 1. Abrir PowerShell como Administrador e instalar WSL2
wsl --install
# Reinicie o computador quando solicitado
# 2. Abrir o Ubuntu (WSL2) e instalar tudo com um comando
curl -fsSL https://raw.githubusercontent.com/marcosmarf27/tecjustica-transcribe/main/install.sh | bash

# 3. Configurar (só uma vez — pede o token HuggingFace)
tecjustica-transcribe init

# 4. Transcrever! (arquivo do Windows acessível via /mnt/c/)
tecjustica-transcribe transcrever /mnt/c/Users/SeuUsuario/Downloads/audiencia.mp4

Dica: No WSL2, C:\Users\marcos\Downloads\ vira /mnt/c/Users/marcos/Downloads/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tecjustica_transcribe_cli-0.1.23.tar.gz (272.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tecjustica_transcribe_cli-0.1.23-py3-none-any.whl (28.8 kB view details)

Uploaded Python 3

File details

Details for the file tecjustica_transcribe_cli-0.1.23.tar.gz.

File metadata

  • Download URL: tecjustica_transcribe_cli-0.1.23.tar.gz
  • Upload date:
  • Size: 272.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for tecjustica_transcribe_cli-0.1.23.tar.gz
Algorithm Hash digest
SHA256 79f73c84d262db7107919c42c38ac68460072e32249ca1a47bafdc45b0dd811c
MD5 49b505c454dfb7e833bfaa1a0671a55b
BLAKE2b-256 4f1cc56aa08ed08390a667244f02ad6397bf8212753c3f6b3662483d25026b84

See more details on using hashes here.

File details

Details for the file tecjustica_transcribe_cli-0.1.23-py3-none-any.whl.

File metadata

  • Download URL: tecjustica_transcribe_cli-0.1.23-py3-none-any.whl
  • Upload date:
  • Size: 28.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for tecjustica_transcribe_cli-0.1.23-py3-none-any.whl
Algorithm Hash digest
SHA256 571a9a7c6548ddf38a1fa56098769f6cb84663311232c29064dbc65068427e73
MD5 afc80a4fb88c3a7331c0340f204e621d
BLAKE2b-256 d7abb6556804b4aa6cd464fe5a93979e77ce1b96dcdf2152e8009da6cd2e915d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page