Se toda reunião termina com uma corrente de e-mails perguntando “mas o que a gente decidiu mesmo?”, o problema não é a reunião — é a falta de um transcript confiável. Serviços de transcrição na nuvem resolvem isso parcialmente, mas exigem que você suba o áudio da chamada para um servidor de terceiros. Por razões legais, de compliance ou simplesmente de privacidade, isso nem sempre é aceitável.
Este guia mostra como montar um fluxo de notas de voz para reuniões inteiramente no seu PC Windows: capture o áudio com low-latency audio capture loopback, processe com o modelo Whisper da OpenAI de forma local, e extraia automaticamente um resumo em Markdown com decisões e action items. Sem upload na nuvem. Sem assinatura extra. Tudo roda na sua máquina.
TL;DR
| Etapa | Ferramenta | Tempo |
|---|---|---|
| Capturar áudio | FFmpeg + low-latency audio capture loopback | Ao vivo |
| Transcrever | Whisper (medium.en) | ~4 min / reunião de 1hr |
| Extrair ações | Python + LLM local ou colar em IA | ~2 min |
| Saída | Arquivo Markdown .md | Imediato |
Por Que Transcrição Local Bate a Nuvem em Reuniões
A maioria dos serviços de transcrição na nuvem — Otter.ai, Fireflies, o AI Notes nativo do Zoom — funciona mandando seu áudio para servidores remotos onde é processado e frequentemente armazenado para treinar modelos. Para chamadas pessoais informais, tudo bem. Para chamadas com nomes de clientes, projeções financeiras, informações médicas ou discussões jurídicas, não é aceitável.
Rodar o Whisper localmente significa que o arquivo de áudio nunca sai da máquina. Não tem chave de API vinculada à conta da sua empresa, não tem política de retenção para ler, e não existe a possibilidade de uma brecha de segurança de terceiros expor o conteúdo das suas chamadas.
Tem também o argumento econômico. Transcrição na nuvem em escala — 100 horas de reuniões por mês num time — custa de $40 a $200 por usuário ao mês na maioria das plataformas. Inferência local numa GPU que você já tem não custa nada por transcript após a configuração inicial.
Legalidade e Consentimento — Leia Isso Primeiro
Gravar ou transcrever uma reunião sem o consentimento dos participantes é ilegal em muitas jurisdições, incluindo vários estados dos EUA (leis de consentimento bipartido), a UE (GDPR Artigo 6) e o Brasil (LGPD).
Antes de transcrever qualquer reunião:
- Avise claramente no início: “Estou capturando o áudio para transcrição local e geração de notas da reunião.”
- Dê aos participantes a opção de sair ou falar off the record.
- Verifique a política de gravação de chamadas da sua empresa.
- Armazene os transcripts com segurança e aplique as mesmas regras de tratamento de dados que outros documentos confidenciais.
Este artigo é um guia técnico. Não é aconselhamento jurídico.
O Que Você Vai Precisar
- Windows 10 ou 11 — low-latency audio capture loopback está disponível em ambos
- Python 3.10+ — do python.org ou winget
- FFmpeg — para captura de áudio do dispositivo loopback
- openai-whisper ou faster-whisper — o motor de transcrição
- GPU NVIDIA (opcional mas recomendada) — RTX 2060 ou superior para inferência rápida; CPU também funciona
- Um app de reuniões: Zoom, Microsoft Teams, Google Meet ou qualquer aplicação que produza áudio
Passo 1 — Identificar o Dispositivo low-latency audio capture Loopback
low-latency audio capture loopback captura tudo que o Windows reproduz pelo seu dispositivo de saída — o mesmo áudio que você ouve no fone. Não precisa instalar drivers; faz parte do stack de áudio do Windows desde o Vista.
Abra um terminal e execute:
ffmpeg -list_devices true -f dshow -i dummy 2>&1 | findstr /i "audio"
Você vai ver uma saída parecida com:
"Speakers (Realtek High Definition Audio)" (audio)
"Headphones (USB Audio Device)" (audio)
Anote o nome exato do seu dispositivo de saída ativo. Para captura loopback, adicione (loopback) ao nome do dispositivo ao usar com FFmpeg.
Passo 2 — Gravar o Áudio da Reunião
Inicie sua chamada no Zoom, Teams ou Meet. Antes de o conteúdo principal começar, inicie o FFmpeg num terminal separado:
ffmpeg -f dshow -i audio="Speakers (Realtek High Definition Audio) (loopback)" ^
-ar 16000 -ac 1 -c:a pcm_s16le ^
meeting_2026-06-12.wav
Parâmetros principais:
-ar 16000— taxa de amostragem nativa do Whisper; sem necessidade de reamostrar-ac 1— mono; reduz o tamanho do arquivo e corresponde à entrada esperada pelo Whisper-c:a pcm_s16le— WAV sem compressão para máxima precisão
Pare a gravação quando a reunião terminar com Ctrl+C. Uma reunião de 1 hora com essas configurações produz aproximadamente 115 MB.
Dica: Se a qualidade do áudio estiver ruim por causa do ruído de fundo, rodar a supressão de ruído do VoxBooster no canal do microfone antes da chamada mantém sua própria voz limpa na captura. O low-latency audio capture loopback captura a saída misturada, então o áudio dos outros participantes se beneficia do processamento de ruído das próprias plataformas deles.
Passo 3 — Instalar o Whisper
Se ainda não instalou o Whisper:
pip install openai-whisper
# Para inferência mais rápida em CPU/GPU:
pip install faster-whisper
Para aceleração com GPU (NVIDIA), instale também:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
Verifique sua versão do CUDA primeiro com nvidia-smi e adapte a versão cu de acordo.
Passo 4 — Transcrever a Gravação
Usando openai-whisper (CLI)
whisper meeting_2026-06-12.wav --model medium.en --output_format txt --output_dir ./transcripts
Isso salva um arquivo .txt e um arquivo de legendas .srt. O modelo medium.en é só para inglês — mais rápido e preciso para reuniões em inglês que o medium multilíngue.
Usando faster-whisper (script Python)
from faster_whisper import WhisperModel
model = WhisperModel("medium.en", device="cuda", compute_type="float16")
segments, info = model.transcribe("meeting_2026-06-12.wav", beam_size=5)
with open("transcript.txt", "w", encoding="utf-8") as f:
for segment in segments:
timestamp = f"[{segment.start:.1f}s]"
f.write(f"{timestamp} {segment.text.strip()}\n")
print("Transcrição concluída.")
O faster-whisper usa CTranslate2 por baixo e é 2–4× mais rápido que o original no mesmo hardware.
Passo 5 — Extrair Action Items em Markdown
Transcripts brutos são paredes de texto. O artefato útil é um resumo estruturado: decisões tomadas, tarefas atribuídas e perguntas em aberto. Aqui vai um script Python simples que usa Ollama (LLM local) para gerar um:
import subprocess
import sys
transcript_path = sys.argv[1]
with open(transcript_path, "r", encoding="utf-8") as f:
transcript = f.read()
prompt = f"""Você é um assistente de notas de reunião. A partir do transcript abaixo, produza um documento Markdown com:
1. **Resumo da Reunião** (3-5 frases)
2. **Decisões Tomadas** (lista com tópicos)
3. **Action Items** (lista com tópicos incluindo responsável e prazo se mencionados)
4. **Perguntas em Aberto** (lista com tópicos)
Transcript:
{transcript}
"""
result = subprocess.run(
["ollama", "run", "llama3"],
input=prompt,
capture_output=True,
text=True,
encoding="utf-8"
)
output_path = transcript_path.replace(".txt", "_resumo.md")
with open(output_path, "w", encoding="utf-8") as f:
f.write(result.stdout)
print(f"Resumo salvo em {output_path}")
Execute assim:
python extrair_acoes.py transcripts/meeting_2026-06-12.txt
Sem Ollama? Cole o transcript diretamente em qualquer IA de chat com o mesmo prompt. O resultado é idêntico — só muda a etapa de automação.
Guia de Seleção de Modelo
| Modelo | VRAM | Velocidade (GPU) | Velocidade (CPU) | Ideal Para |
|---|---|---|---|---|
| tiny.en | 1 GB | Muito rápido | 5 min/hr | Rascunhos rápidos, testes |
| small.en | 2 GB | Rápido | 20 min/hr | Máquinas só com CPU |
| medium.en | 5 GB | Equilibrado | 60 min/hr | Recomendação padrão |
| large-v3 | 10 GB | Lento | Inviável | Máxima precisão, RTX 4070+ |
Todos os modelos rodam completamente offline após o download inicial.
Comparação: Whisper Local vs. Serviços de Transcrição na Nuvem
| Funcionalidade | Whisper (local) | Otter.ai | Fireflies | Zoom AI Notes |
|---|---|---|---|---|
| Dados saem do dispositivo | Não | Sim | Sim | Sim |
| Custo mensal | $0 | $10–$20/usuário | $10–$19/usuário | Incluído no Zoom |
| Precisão (inglês) | 88–94% WER | ~88% | ~87% | ~85% |
| Diarização de locutores | Com pyannote | Sim | Sim | Sim |
| Vocabulário personalizado | Via prompt | Pago | Pago | Não |
| Funciona offline | Sim | Não | Não | Não |
| Tempo de configuração | 30 min | 5 min | 5 min | 0 min |
Serviços na nuvem ganham em conveniência e diarização pronta para usar. Whisper local ganha em privacidade, custo em escala e capacidade de funcionar sem internet.
Adicionando Diarização de Locutores
O Whisper sozinho não identifica quem disse o quê. Para reuniões onde a atribuição importa, combine com pyannote.audio:
pip install pyannote.audio
from pyannote.audio import Pipeline
pipeline = Pipeline.from_pretrained(
"pyannote/speaker-diarization-3.1",
use_auth_token="SEU_TOKEN_HF"
)
diarization = pipeline("meeting_2026-06-12.wav")
for turn, _, speaker in diarization.itertracks(yield_label=True):
print(f"{speaker}: {turn.start:.1f}s – {turn.end:.1f}s")
Você pode alinhar os timestamps de diarização com os timestamps de segmento do Whisper para produzir transcripts com rótulos de locutor. Os modelos do pyannote rodam localmente após o download — uma conta no Hugging Face é necessária para aceitar a licença do modelo, mas a inferência é totalmente offline.
Considerações de Privacidade e Armazenamento
Fique atento ao armazenar transcripts de reuniões:
- Encripte os arquivos WAV e de transcript se contiverem informações empresariais sensíveis. O BitLocker do Windows ou o VeraCrypt fazem isso no nível de pasta.
- Defina uma política de retenção — exclua os arquivos WAV brutos após a transcrição; mantenha apenas o resumo, a menos que precise de citações textuais.
- Drives compartilhados: Se sincronizar transcripts com OneDrive ou SharePoint, verifique se esses sistemas aplicam OCR ou indexação por IA nos documentos enviados.
- Controle de acesso: Restrinja os arquivos de transcript apenas aos participantes. Uma pasta compartilhada
\reunioes\numa rede corporativa não deveria estar aberta para toda a empresa.
Proposta de Valor
A supressão de ruído do VoxBooster garante que o canal do microfone esteja limpo antes do áudio chegar ao low-latency audio capture loopback, o que melhora diretamente a taxa de erro de palavras do Whisper na sua voz. Roda localmente no Windows 10/11, não requer drivers de kernel e se integra com qualquer app de reunião. Tem 3 dias de teste grátis disponível — sem cartão de crédito.
Após o trial: planos a partir de R$29,90/mês.
FAQ
O Whisper transcreve em tempo real num PC Windows normal? Não em tempo real com precisão total — Whisper é um modelo em lote. Numa GPU mid-range (RTX 3060), o modelo small ou medium transcreve uma reunião de 1 hora em cerca de 3-5 minutos após o fim da chamada. Para legendas ao vivo, existem forks como Whisper Live, mas eles trocam um pouco de precisão por latência menor.
É legal transcrever uma reunião do Zoom ou Teams? A legalidade depende da jurisdição e da política da empresa. No Brasil, a LGPD exige base legal e transparência. Sempre avise no início que está capturando áudio para anotações e obtenha consentimento explícito. Este artigo é um guia técnico, não aconselhamento jurídico.
Que dispositivo low-latency audio capture loopback preciso instalar? Não precisa instalar nenhum driver. low-latency audio capture loopback é uma API nativa do Windows 10/11 que espelha qualquer dispositivo de saída ativo como fonte de captura. FFmpeg, Python sounddevice e a maioria das bibliotecas de áudio já expõem isso diretamente. Não precisa de cabo virtual nem driver de terceiros.
Qual modelo do Whisper usar para transcrever reuniões? O medium.en é o melhor equilíbrio prático: 1.5 GB de VRAM, ~90% de redução de taxa de erro em relação ao tiny, e 4-6× mais rápido que o large na GPU. Para máquinas sem GPU, use small.en — ele transcreve uma reunião de 1 hora em aproximadamente 20 minutos numa CPU moderna.
Dá pra transcrever reuniões sem GPU? Sim. O Whisper roda em CPU via pacote openai-whisper ou o backend CTranslate2 do faster-whisper, que reduz o tempo de inferência pela metade. Uma reunião que levaria 8 minutos na GPU leva uns 20-25 minutos numa CPU Intel ou AMD moderna com small.en.
Como extraio action items automaticamente do transcript? O jeito mais simples é um script Python que manda o transcript para um LLM local (Ollama + llama3 ou Mistral) pedindo decisões e tarefas. Também dá pra colar em qualquer IA de chat. A supressão de ruído do VoxBooster mantém o áudio limpo, melhorando diretamente a precisão do transcript.
Esse fluxo funciona com gravações do Microsoft Teams? Sim, de duas formas: captura o áudio ao vivo via low-latency audio capture loopback durante a chamada, ou baixa a gravação do Teams pelo OneDrive e roda o Whisper no arquivo MP4. A segunda opção é mais simples e permite retranscrever quando quiser.
Leitura Complementar
- OpenAI Whisper no GitHub — pesos do modelo, benchmarks e docs de instalação
- Gravação e Transcrição no Zoom — Ajuda Oficial — como o Zoom lida com gravações na nuvem
- Reconhecimento de fala — Wikipedia — contexto sobre tecnologia ASR e métricas WER
- Como funciona o processamento de áudio em tempo real — processamento de áudio em tempo real explicado
- Melhor supressão de ruído para reuniões no Windows — comparação de ferramentas locais de supressão de ruído