Sistema minimalista para transcrever arquivos de áudio e vídeo para texto usando OpenAI Whisper.
- ✅ Suporte a múltiplos formatos de vídeo (MP4, AVI, MKV, MOV, FLV, WMV)
- ✅ Suporte a múltiplos formatos de áudio (MP3, WAV, FLAC, AAC, OGG, M4A)
- ✅ Extração automática de áudio de vídeos
- ✅ Transcrição com timestamps opcionais
- ✅ Múltiplos tamanhos de modelo Whisper (tiny, base, small, medium, large)
- ✅ Detecção automática de idioma
- ✅ Interface de linha de comando simples
- ✅ Tratamento robusto de erros
- Python 3.8+ (testado com Python 3.13)
- FFmpeg instalado no sistema
Ubuntu/Debian:
sudo apt update
sudo apt install ffmpegmacOS:
brew install ffmpegArch Linux:
sudo pacman -S ffmpeg- Clone ou baixe o projeto
git clone https://github.com/leo-statai/transcritor.git
cd transcritor- Crie um ambiente virtual
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# ou
venv\Scripts\activate # Windows- Instale as dependências
pip install -r requirements.txt# Ativar ambiente virtual
source venv/bin/activate
# Transcrever um arquivo de vídeo
python transcriber.py video.mp4
# Transcrever um arquivo de áudio
python transcriber.py audio.mp3# Especificar arquivo de saída
python transcriber.py video.mp4 -o minha_transcricao.txt
# Usar modelo maior (melhor qualidade)
python transcriber.py audio.wav --model large
# Especificar idioma
python transcriber.py video.mp4 --language pt
# Transcrição sem timestamps
python transcriber.py audio.mp3 --no-timestamps
# Combinar opções
python transcriber.py video.mp4 --model medium --language pt -o resultado.txt-
--model: Tamanho do modelo Whispertiny: Mais rápido, menor qualidade (~39M parâmetros)base: Balanceado (padrão) (~74M parâmetros)small: Boa qualidade (~244M parâmetros)medium: Alta qualidade (~769M parâmetros)large: Máxima qualidade (~1550M parâmetros)
-
--language: Código do idioma (ex:pt,en,es,fr) -
--no-timestamps: Remove timestamps da transcrição -
-o, --output: Especifica arquivo de saída
- MP4, AVI, MKV, MOV, FLV, WMV
- MP3, WAV, FLAC, AAC, OGG, M4A
A transcrição é salva em formato TXT com a seguinte estrutura:
# Transcrição de Áudio
# Modelo: base
# Idioma: pt
# Duração: [00:05:30]
#
[00:00:00] Olá, bem-vindos ao nosso podcast.
[00:00:05] Hoje vamos falar sobre tecnologia.
[00:00:10] O tema é bastante interessante...
# Ativar ambiente virtual
source venv/bin/activate
# Executar testes
python -m unittest tests.test_transcriber -v- Tamanho do modelo: Use
tinyoubasepara testes rápidos,mediumoulargepara qualidade máxima - Arquivos grandes: O sistema processa automaticamente em chunks para otimizar memória
- Qualidade de áudio: Áudio limpo e claro resulta em melhor transcrição
- Idioma: Especificar o idioma melhora a precisão
# Instale o FFmpeg conforme instruções acima
which ffmpeg # Verificar se está instalado- Use um modelo menor (
tinyoubase) - Processe arquivos menores
- Feche outros programas
- Verifique se o arquivo está nos formatos suportados
- Converta o arquivo usando FFmpeg se necessário
- Verifique o caminho do arquivo
- Use caminhos absolutos se necessário
transcritor/
├── src/
│ ├── __init__.py
│ ├── main.py # Interface CLI
│ ├── audio_extractor.py # Extração de áudio
│ ├── transcriber.py # Motor de transcrição
│ └── utils.py # Funções auxiliares
├── tests/
│ ├── __init__.py
│ └── test_transcriber.py # Testes unitários
├── venv/ # Ambiente virtual
├── transcriber.py # Script principal
├── requirements.txt # Dependências
├── setup.py # Configuração do pacote
├── .gitignore # Arquivos ignorados
└── README.md # Este arquivo
- Fork o projeto
- Crie uma branch (
git checkout -b feature/nova-funcionalidade) - Commit suas mudanças (
git commit -am 'Adiciona nova funcionalidade') - Push para a branch (
git push origin feature/nova-funcionalidade) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
- OpenAI Whisper - Motor de transcrição
- FFmpeg - Processamento de áudio/vídeo