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
🚀 Como usar
-
Clona ou copia este repositório para o teu PC.
-
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.
- Se não tiveres Python ou FFmpeg, o script instala-os automaticamente via
-
No primeiro arranque:
- É criado o ficheiro
transcribe.inicom 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.
- É criado o ficheiro
-
Mete os ficheiros em
audios/e correrun.batsempre 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-xxxxxxinput_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→ setrue, 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.txtcom todas as transcrições concatenadas. - Logs:
logs/run_transcricao.log+ output em consola.
🛠️ Notas técnicas
- Divisão feita com
ffmpegeffprobe. - 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.inipara não perguntar sempre.
📄 Licença
Uso livre e educativo. Nenhuma garantia é fornecida.