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 initapó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:
- Crie uma conta em https://huggingface.co/join
- Acesse https://huggingface.co/pyannote/speaker-diarization-community-1 e clique em "Agree and access repository"
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79f73c84d262db7107919c42c38ac68460072e32249ca1a47bafdc45b0dd811c
|
|
| MD5 |
49b505c454dfb7e833bfaa1a0671a55b
|
|
| BLAKE2b-256 |
4f1cc56aa08ed08390a667244f02ad6397bf8212753c3f6b3662483d25026b84
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
571a9a7c6548ddf38a1fa56098769f6cb84663311232c29064dbc65068427e73
|
|
| MD5 |
afc80a4fb88c3a7331c0340f204e621d
|
|
| BLAKE2b-256 |
d7abb6556804b4aa6cd464fe5a93979e77ce1b96dcdf2152e8009da6cd2e915d
|