This project is a Python application that captures the computer's audio (via WASAPI loopback on Windows) and automatically generates a SRT subtitle file in real-time using Vosk Speech Recognition.
- Captures the audio playing on your speakers (music, videos, meetings, etc.).
- Real-time transcription using Vosk ASR.
- Automatically segments text into readable subtitle blocks:
- Max. 2 lines per subtitle.
- Up to 42 characters per line.
- Minimum duration: 1.5s | Maximum duration: 6s.
- Exports to
.srtfile, compatible with any video player.
-
Python 3.9+
-
Python libraries:
pip install vosk pyaudiowpatch numpy
-
Vosk speech recognition model (English or Portuguese).
Download at: Vosk Models You can choose for any model at your preferenceExamples:
- English:
vosk-model-small-en-us-0.15 - Portuguese:
vosk-model-small-pt-0.3
- English:
.
├── legenda.py # Main script
├── README.md # This file
└── models/
└── vosk-model-small-pt-0.3/ # Downloaded model folder
-
Clone the repository or copy the files.
git clone https://github.com/codefull425/audio-transcription.git cd audio-transcription -
Install dependencies
pip install vosk pyaudiowpatch numpy
-
Download a Vosk model and place it inside the
models/folder.- Adjust the model path in the code (
MODEL_PATH).
- Adjust the model path in the code (
-
Run the script
python legenda.py
-
The program:
- Detects the loopback audio device.
- Transcribes the audio in real time.
- Automatically saves it into
legenda.srt.
-
To stop, press Ctrl + C.
The.srtfile will be ready in the project directory.
1
00:00:01,000 --> 00:00:03,500
this is a sample subtitle
2
00:00:04,000 --> 00:00:06,000
generated automatically
- Works only on Windows (uses WASAPI loopback).
- If the audio is in Portuguese, configure:
MODEL_PATH = "models/vosk-model-small-pt-0.3"
- Quality depends on the chosen model:
- "small" models → faster, less accurate.
- "large" models → heavier, more accurate.
This project is open-source and can be freely used for educational and research purposes.
Este projeto é uma aplicação em Python que captura o áudio do computador (via WASAPI loopback no Windows) e gera automaticamente um arquivo de legendas no formato SRT em tempo real, utilizando o Vosk Speech Recognition.
- Captura o áudio que toca nos alto-falantes do PC (músicas, vídeos, reuniões, etc.).
- Transcreve em tempo real utilizando Vosk ASR.
- Segmenta automaticamente o texto em blocos de legenda legíveis:
- Máx. 2 linhas por legenda.
- Até 42 caracteres por linha.
- Duração mínima: 1,5s | máxima: 6s.
- Exporta para arquivo
.srtcompatível com qualquer player de vídeo.
-
Python 3.9+
-
Bibliotecas Python:
pip install vosk pyaudiowpatch numpy
-
Modelo Vosk de reconhecimento de voz (ex. inglês ou português).
Baixe em: Modelos Vosk Voce pode escolher o modelo da sua preferenciaExemplos:
- Inglês:
vosk-model-small-en-us-0.15 - Português:
vosk-model-small-pt-0.3
- Inglês:
.
├── legenda.py # Script principal
├── README.md # Este arquivo
└── models/
└── vosk-model-small-pt-0.3/ # Pasta com modelo baixado
-
Clone o repositório ou copie os arquivos.
git clone https://github.com/codefull425/audio-transcription.git cd audio-transcription -
Instale as dependências
pip install vosk pyaudiowpatch numpy
-
Baixe um modelo do Vosk e coloque na pasta
models/.- Ajuste o caminho do modelo no código (
MODEL_PATH).
- Ajuste o caminho do modelo no código (
-
Execute o script
python legenda.py
-
O programa:
- Detecta o dispositivo de áudio loopback.
- Transcreve o áudio em tempo real.
- Salva automaticamente em
legenda.srt.
-
Para parar, pressione Ctrl + C.
O arquivo.srtestará pronto no diretório do projeto.
1
00:00:01,000 --> 00:00:03,500
este é um exemplo de legenda
2
00:00:04,000 --> 00:00:06,000
gerada automaticamente
- Funciona apenas no Windows (usa WASAPI loopback).
- Se o áudio for em português, configure:
MODEL_PATH = "models/vosk-model-small-pt-0.3"
- A qualidade depende do modelo escolhido:
- Modelos "small" → mais rápidos, menos precisos.
- Modelos "large" → mais pesados, maior acurácia.
Este projeto é open-source e pode ser usado livremente para fins educacionais e de pesquisa.