Notas de Reunião com Whisper no Windows

Transcreva reuniões do Zoom, Teams e Meet localmente no Windows usando Whisper e WASAPI loopback — sem upload na nuvem, privacidade total, resumos em Markdown.

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 WASAPI 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

EtapaFerramentaTempo
Capturar áudioFFmpeg + WASAPI loopbackAo vivo
TranscreverWhisper (medium.en)~4 min / reunião de 1hr
Extrair açõesPython + LLM local ou colar em IA~2 min
SaídaArquivo Markdown .mdImediato

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:

  1. Avise claramente no início: “Estou capturando o áudio para transcrição local e geração de notas da reunião.”
  2. Dê aos participantes a opção de sair ou falar off the record.
  3. Verifique a política de gravação de chamadas da sua empresa.
  4. 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 — WASAPI 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 WASAPI Loopback

WASAPI 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 WASAPI 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

ModeloVRAMVelocidade (GPU)Velocidade (CPU)Ideal Para
tiny.en1 GBMuito rápido5 min/hrRascunhos rápidos, testes
small.en2 GBRápido20 min/hrMáquinas só com CPU
medium.en5 GBEquilibrado60 min/hrRecomendação padrão
large-v310 GBLentoInviávelMá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

FuncionalidadeWhisper (local)Otter.aiFirefliesZoom AI Notes
Dados saem do dispositivoNãoSimSimSim
Custo mensal$0$10–$20/usuário$10–$19/usuárioIncluído no Zoom
Precisão (inglês)88–94% WER~88%~87%~85%
Diarização de locutoresCom pyannoteSimSimSim
Vocabulário personalizadoVia promptPagoPagoNão
Funciona offlineSimNãoNãoNão
Tempo de configuração30 min5 min5 min0 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 WASAPI 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 WASAPI loopback preciso instalar? Não precisa instalar nenhum driver. WASAPI 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 WASAPI 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

Experimente o VoxBooster — 3 dias grátis.

Clone de voz em tempo real, soundboard e efeitos — onde você já fala.

  • Sem cartão
  • ~30ms de latência
  • Discord · Teams · OBS
Experimentar 3 dias grátis