GitHunt
EL

eliaspc2/transcribe

Ferramenta simples para transcrever áudio e vídeo em texto usando a API da OpenAI.

🎙️ Transcribe Audio/Video (OpenAI + FFmpeg)

Ferramenta simples para transcrever áudio e vídeo em texto usando a API da OpenAI.
Funciona no Windows, apenas precisas de dois ficheiros: run.bat e transcribe.py.


📦 Pré-requisitos

  • Windows 10/11
  • winget instalado (vem com o App Installer)
  • Conta na OpenAI e uma API key (sk-...)

🚀 Como usar

  1. Clona ou copia este repositório para o teu PC.

  2. Executa run.bat (duplo clique).

    • Se não tiveres Python ou FFmpeg, o script instala-os automaticamente via winget.
    • Cria um ambiente virtual (venv) e instala dependências (openai, tqdm, python-slugify).
    • Corre automaticamente a aplicação transcribe.py.
  3. No primeiro arranque:

    • É criado o ficheiro transcribe.ini com a configuração.
    • É criada a pasta audios/ onde deves colocar os ficheiros áudio/vídeo.
    • Se não existir API key, será pedida e guardada no transcribe.ini.
  4. Mete os ficheiros em audios/ e corre run.bat sempre que quiseres transcrever.


📂 Estrutura de pastas

.
├── run.bat              # Script de arranque (Windows)
├── transcribe.py        # Aplicação principal
├── transcribe.ini       # Configuração (criado no 1º arranque)
├── audios/              # Onde colocas ficheiros de entrada
├── saidas_transcricao/  # Saídas organizadas por pasta
└── logs/                # Logs detalhados

⚙️ Configuração (transcribe.ini)

Exemplo de configuração gerada:

[transcribe]
input_folder = audios
output_root = saidas_transcricao
chunk_minutes = 15
overlap_seconds = 5
model_name = gpt-4o-transcribe
max_retries = 5
recursive = false
media_exts = .mp3,.wav,.ogg,.m4a,.flac,.mp4,.mkv,.avi,.mov,.webm
api_key = sk-xxxxxx
  • input_folder → pasta de entrada dos ficheiros.
  • output_root → onde são guardadas transcrições.
  • chunk_minutes → tamanho dos blocos (default: 15m).
  • overlap_seconds → sobreposição entre blocos (default: 5s).
  • model_name → modelo OpenAI usado.
  • recursive → se true, varre subpastas também.
  • media_exts → extensões aceites (áudio e vídeo).
  • api_key → chave da OpenAI (guardada no próprio INI).

📝 Saídas

  • Chunks WAV: cortes do ficheiro original (chunks/).
  • Transcrições individuais: transcripts/<ficheiro>.txt.
  • Agregado final: transcricao_AGREGADA.txt com todas as transcrições concatenadas.
  • Logs: logs/run_transcricao.log + output em consola.

🛠️ Notas técnicas

  • Divisão feita com ffmpeg e ffprobe.
  • Transcrição via OpenAI Audio API.
  • Retentativas exponenciais em caso de falha na API.
  • Compatível com áudio (.mp3, .wav, …) e vídeo (.mp4, .mkv, …).
  • Guarda API key no transcribe.ini para não perguntar sempre.

📄 Licença

Uso livre e educativo. Nenhuma garantia é fornecida.