PUBLICIDADE

Como rodar Whisper local e integrar ao n8n sem pagar API

09/10/2026
11 visualizações
7 min de leitura
Em vez de mandar cada áudio de cliente para uma API, a transcrição acontece na sua máquina e chega pronta ao n8n. Veja o caminho completo, da instalação ao webhook.
Imagem principal do post

Rodar whisper local é uma das automações que mais se pagam no meu atendimento: em vez de mandar cada áudio de cliente para uma API, a transcrição acontece na minha própria máquina, com o Whisper da OpenAI ou, na versão que eu recomendo, o faster-whisper. E dá para plugar tudo direto no n8n, entregando texto pronto para o agente de atendimento. O caminho completo, da instalação ao webhook, está aí embaixo.

Por que rodar Whisper local (e quando a API da OpenAI ainda vale)

A Whisper API da OpenAI era cobrada a US$ 0,006 por minuto no lançamento e aceita arquivos MP3, MP4, WAV e WEBM. O preço parece pequeno, mas em atendimento com dezenas de áudios por dia a conta cresce rápido, e cada arquivo sai da sua infraestrutura.

Imagem complementar

Tem também o limite de 25 MB, que dá cerca de 20 minutos de áudio. Tanto que o template oficial do n8n para áudios longos divide o arquivo em blocos de 15 minutos por causa exatamente disso. Com transcrição local, esse limite deixa de existir.

A API ainda vale se o volume for baixo e esporádico, se a máquina for fraca ou se você não quiser manter nenhum serviço rodando. Fora esses casos, local ganha em custo, em privacidade e em tamanho de arquivo.

PUBLICIDADE

Whisper oficial x faster-whisper: qual instalar e por quê

O openai/whisper é a implementação de referência, e a versão mais recente é a v20250625, publicada em 26 de junho de 2025. Ele exige o ffmpeg instalado no sistema e é compatível com Python 3.8 a 3.11. Funciona bem, mas não é o caminho mais eficiente.

O faster-whisper é uma reimplementação do Whisper sobre o motor CTranslate2: até 4 vezes mais rápido, com a mesma acurácia e usando menos memória. A versão estável mais recente é a faster-whisper 1.2.1, lançada em 31 de outubro de 2025, que pede Python 3.9 ou superior e dispensa o FFmpeg: o áudio é decodificado pela biblioteca PyAV, que embute as libs do FFmpeg.

Os números são do benchmark do próprio repositório, com 13 minutos de áudio usando o large-v2 em GPU. A tabela resume a diferença:

ExecuçãoTempoVRAM
openai/whisper fp162m23s4708 MB
faster-whisper fp161m03s4525 MB
faster-whisper int859s2926 MB

Mais da metade do tempo cortado e quase metade da VRAM no modo int8. Por isso, o restante do tutorial usa faster-whisper.

Requisitos: Python, RAM, CPU e GPU (o que realmente importa)

  • Python: 3.9 ou superior para o faster-whisper 1.2.1. Se for usar o pacote oficial da OpenAI, o intervalo suportado é Python 3.8 a 3.11.
  • FFmpeg: não precisa instalar nada para o faster-whisper, a PyAV cuida da decodificação do áudio.
  • CPU: dá para rodar sem placa de vídeo. Num Core i7-12700K, o distil-large-v3 em int8 transcreve em 1m42s usando 1477 MB de RAM.
  • GPU: o faster-whisper atual exige cuBLAS para CUDA 12 e cuDNN 9 para CUDA 12, já que as versões recentes do ctranslate2 só suportam CUDA 12. Como referência de memória, o large-v2 em int8 usou 2926 MB de VRAM no benchmark.

Instalando faster-whisper 1.2.1 e fazendo o primeiro teste no terminal

Com o Python 3.9 ou superior no lugar, instale o pacote, de preferência num ambiente virtual para não bagunçar o resto da máquina:

pip install faster-whisper

Depois, crie um arquivo teste.py com o código mínimo abaixo, apontando para um áudio seu:

from faster_whisper import WhisperModel

modelo = WhisperModel("large-v3", device="cpu", compute_type="int8")
segmentos, info = modelo.transcribe("cliente.mp3", language="pt")

for trecho in segmentos:
    print(trecho.text)

Na primeira execução, o modelo é baixado da organização Systran no Hugging Face e fica em cache — o large-v3 convertido mora lá, junto com os demais, de tiny a large-v3, incluindo o distil-large-v3. Se for rodar em GPU, troque device="cpu" por device="cuda". Para qualquer opção além disso, o README do repositório oficial é a fonte certa.

Escolhendo o modelo: de tiny a large-v3-turbo e o truque do int8 para CPU

Para o faster-whisper, os modelos convertidos vão de tiny a large-v3, incluindo o distil-large-v3. A regra prática é simples: use o maior modelo que sua máquina aguentar e o int8 quando o recurso for apertado.

Vale conhecer o large-v3-turbo do pacote oficial: ele tem apenas 4 camadas de decoder, contra 32 da série large, e desde o pacote v20240930 é o padrão do comando whisper. Menos camadas, inferência mais leve.

O truque do int8 aparece claro no benchmark: na GPU, foi o modo mais rápido (59s contra 1m03s do fp16) e o mais econômico (2926 MB contra 4525 MB de VRAM). Em CPU, é o que viabiliza modelos grandes: o distil-large-v3 em int8 gastou só 1477 MB de RAM no Core i7-12700K.

Na prática: como uso isso aqui

Eu rodo o faster-whisper 1.2.1 no Windows, tanto em CPU quanto em GPU. Como modelo principal eu uso o Qwen3 ASR, e o Whisper large-v3 fica de fallback para quando a transcrição precisa de segurança extra.

O serviço fica interligado ao meu n8n para transcrever os áudios que recebo do WhatsApp no atendimento aos clientes. Assim fica mais fácil o agente já receber o texto processado do que o áudio puro.

Um cuidado que aprendi: esses modelos menores ainda não são 100% confiáveis e podem gerar transcrições com erros. Vale um node com JavaScript no n8n para pequenas correções, o que já melhora bastante o texto final.

Integrando ao n8n: endpoint local, webhook e automação

O fluxo é direto: o webhook do n8n recebe o áudio, o workflow chama o serviço de transcrição e devolve o texto para o agente. Os dois caminhos comuns para essa chamada são um nó HTTP Request apontando para um endpoint local que expõe o faster-whisper, ou um nó Execute Command rodando o script direto na máquina.

Como a transcrição é local, você não depende do limite de 25 MB da Whisper API nem da divisão em blocos de 15 minutos do template oficial. O serviço é um processo Python como outro qualquer: pode rodar na mesma máquina do n8n, como faço aqui no Windows, ou isolado num homelab com Proxmox, numa VM separada da instância principal.

Para a configuração exata dos nós, siga a documentação do n8n, porque credenciais e parâmetros mudam conforme a versão. O essencial é o n8n enxergar o endpoint local e o áudio chegar num formato decodificável, como MP3 ou WAV.

Dicas finais: VAD, timestamps por palavra, português e erros comuns de CUDA

  • VAD: o faster-whisper integra o filtro de VAD Silero, que descarta trechos sem fala antes da transcrição. Em áudio de WhatsApp, cheio de pausa longa, isso ajuda bastante.
  • Timestamps por palavra: o faster-whisper gera timestamps por palavra, não só por segmento. Isso abre porta para legenda e para localizar um trecho específico num áudio longo.
  • Português: se o áudio é sempre em português, fixe language="pt" na chamada, como no exemplo acima, para tirar uma variável do caminho.
  • CUDA: se der erro de cuBLAS ou cuDNN, confira as versões. O faster-whisper atual exige cuBLAS para CUDA 12 e cuDNN 9 para CUDA 12, e as versões recentes do ctranslate2 só suportam CUDA 12 — GPU com CUDA mais antigo não vai funcionar com o pacote atual.

Conclusão

Transcrever com whisper local deixou de ser projeto de fim de semana: com faster-whisper 1.2.1, um pip install e meia dúzia de linhas você tem um serviço de transcrição rodando em casa, sem pagar por minuto e sem limite de arquivo. Se você já opera atendimento no n8n, integrar os áudios do WhatsApp é o passo natural para o agente trabalhar com texto em vez de áudio cru.

Perguntas frequentes

Preciso instalar o FFmpeg para usar o faster-whisper?

Não. O faster-whisper 1.2.1 decodifica o áudio com a PyAV, que embute as libs do FFmpeg. Quem exige o ffmpeg instalado no sistema é o openai/whisper oficial.

Whisper local é realmente mais rápido que o Whisper original?

No benchmark oficial com 13 minutos de áudio (large-v2 em GPU), o faster-whisper int8 levou 59s contra 2m23s do openai/whisper fp16, usando 2926 MB de VRAM contra 4708 MB, com a mesma acurácia.

Como transcrever áudios longos no n8n sem esbarrar nos 25 MB da API?

Com whisper local o limite de 25 MB da Whisper API (cerca de 20 minutos de áudio) não se aplica, porque não há upload para serviço externo. Esse limite é justamente o motivo de o template oficial do n8n dividir áudios longos em blocos de 15 minutos.

PUBLICIDADE
Este post foi útil para você?
🛒
Vai rodar IA no seu computador?

Modelos locais dependem da placa de vídeo: quanto mais VRAM, maiores os modelos e mais rápidas as respostas. Compare os preços de placas RTX na Amazon.

Ver preços na Amazon →
Como associado da Amazon, o blog ganha com compras qualificadas, sem custo extra para você.

Leitura recomendada

💬 Comentários

Nenhum comentário ainda. Conte o que achou, tire uma dúvida ou discorde. Seja o primeiro!

Deixe seu comentário
O e-mail não aparece. Serve só para avisar quando responderem você.
Os comentários passam por aprovação antes de aparecer. Crie uma conta de leitor e, depois do primeiro aprovado, os próximos saem na hora.
Apoie o ConexãoTC

O ConexãoTC é independente e gratuito. Se as notícias fazem parte do seu dia, contribua com qualquer valor pelo PIX e ajude a manter o blog no ar.

QR code PIX para apoiar o ConexãoTC
Aponte a câmera do app do banco
Favorecido: Jean Dgardany C. Lima, editor do ConexãoTC
🗳️ O que você quer ler aqui?

Marque os assuntos que te interessam. Os mais pedidos viram os próximos artigos.

Leitores cadastrados têm as sugestões atendidas primeiro e recebem um aviso quando o artigo sai.
Fique por dentro

Os destaques do dia no seu e-mail, todo dia às 8h.

PUBLICIDADE