Skip to main content
PromptQuorumPromptQuorum
Início/LLMs locais avançados/Whisper.cpp vs faster-whisper 2026: Benchmarks de STT local, configuração e aceleração de GPU
Voice, Speech & Multimodal

Whisper.cpp vs faster-whisper 2026: Benchmarks de STT local, configuração e aceleração de GPU

·10 min de leitura·Por Hans Kuepper · Fundador do PromptQuorum, ferramenta de despacho multi-modelo de IA · PromptQuorum

whisper.cpp vs faster-whisper — os dois runtimes locais do Whisper mais usados — vencem de forma decisiva em sua plataforma-alvo. Para Apple Silicon (Macs com chip M), whisper.cpp com aceleração Metal é a opção de STT local mais rápida em 2026 — o large-v3 roda a ~10× tempo real em um M5 Pro. Para servidores com GPU NVIDIA e pipelines Python, faster-whisper com quantização int8 do CTranslate2 é a melhor escolha, atingindo ~12× tempo real em uma RTX 4070 com apenas 2,5 GB de VRAM para o modelo large-v3. Ambas as ferramentas usam os mesmos pesos do modelo Whisper da OpenAI (do tiny ao large-v3); a diferença está na otimização do runtime e no caminho de integração. Em hardware somente CPU, ambas são utilizáveis para os modelos tiny e base — faster-whisper tem uma leve vantagem (~20× vs ~15× tempo real) em CPU por meio do int8.

whisper.cpp e faster-whisper são as duas implementações dominantes do modelo Whisper de fala em texto da OpenAI para transcrição local e offline em 2026. whisper.cpp é um port puro em C/C++ que roda em Apple Metal, CUDA, Vulkan e CPU — o que o torna ideal para Apple Silicon, sistemas embarcados e aplicações de voz em tempo real. faster-whisper é uma biblioteca Python que usa CTranslate2 e atinge ~4× o throughput do Whisper original em GPUs NVIDIA por meio de quantização int8. Este guia cobre instalação, benchmarks de desempenho, configuração de transcrição em tempo real e uma comparação direta entre plataformas para que você escolha a ferramenta certa para seu pipeline.

Principais conclusões

  • whisper.cpp é a melhor opção de STT local para Apple Silicon. O port C/C++ aproveita Core ML e Apple Metal para aceleração por hardware — large-v3 a ~10× tempo real em M5 Pro, sem dependência de Python.
  • faster-whisper é a melhor opção de STT local para GPUs NVIDIA e pipelines Python. A quantização int8 do CTranslate2 reduz a VRAM em ~40% e aumenta o throughput em ~4× em relação à implementação original da OpenAI — large-v3 a ~12× tempo real em RTX 4070, usando apenas ~2,5 GB de VRAM.
  • Ambas as ferramentas usam os mesmos pesos do modelo Whisper da OpenAI. O WER (taxa de erro de palavras) é idêntico — a diferença está unicamente no desempenho do runtime e no caminho de integração, não na precisão de transcrição.
  • Whisper large-v3 oferece a melhor precisão, com 2,5% de WER em inglês. Para a maioria dos casos de produção, Whisper small (3,4% WER, 2 GB RAM) ou medium (2,9% WER, 5 GB RAM) oferece um melhor equilíbrio entre velocidade e precisão.
  • A transcrição em tempo real é alcançável com ambas as ferramentas — whisper.cpp por meio da flag --stream, faster-whisper por meio de seu pipeline VAD (detecção de atividade de voz) integrado. A latência prática é de 0,5–2 segundos atrás da fala ao vivo, dependendo do tamanho do modelo.
  • whisper.cpp roda em CPU, Metal, CUDA e Vulkan — sendo a única opção para uso embarcado multiplataforma (Raspberry Pi, configurações de GPU no Windows, servidores ARM). faster-whisper só suporta CPU e CUDA (sem Metal no Mac).
  • Para Raspberry Pi 5 e Linux embarcado, whisper.cpp tiny e base em CPU são os modelos capazes de tempo real — tiny roda confortavelmente mais rápido que o tempo real, base em torno do tempo real com -t 4. O modelo small (3,4% WER) roda abaixo do tempo real no Pi 5 e é melhor reservá-lo para trabalhos em lote. Toda a inferência é em CPU (ARM NEON) — o Pi não tem um caminho de GPU utilizável para o Whisper.

Fatos rápidos

  • Ambas as ferramentas: baseadas no modelo Whisper de código aberto da OpenAI (licença MIT). Mesma precisão — runtimes diferentes.
  • whisper.cpp: escrito em C/C++ por Georgi Gerganov. Suporta CPU (AVX2/NEON), CUDA, Metal (Apple), Vulkan. Não requer Python.
  • faster-whisper: biblioteca Python usando CTranslate2. Suporta CPU (int8) e CUDA. Sem suporte a Apple Metal.
  • Tamanhos do modelo Whisper: tiny (39M), base (74M), small (244M), medium (769M), large-v3 (1,55B). Todos no formato ggml / CTranslate2.
  • Melhor modelo para a maioria dos casos: Whisper small — 3,4% WER, roda em 2 GB de RAM, 6× tempo real em CPU moderna.
  • Benchmark RTX 4070 (large-v3): faster-whisper ~12× tempo real; whisper.cpp CUDA ~8× tempo real. faster-whisper vence em NVIDIA.
  • Benchmark M5 Pro (large-v3): whisper.cpp Metal ~10× tempo real; faster-whisper somente CPU ~3× tempo real. whisper.cpp vence em Apple.

Por que reconhecimento de voz local?

Os serviços de STT na nuvem (Google Speech-to-Text, AWS Transcribe, Azure Speech) cobram por minuto de áudio — normalmente US$ 0,006–0,024/minuto — e enviam seu áudio para servidores remotos. Para aplicações sensíveis à privacidade (ditado médico, gravações jurídicas, entrevistas jornalísticas, reuniões corporativas), a transcrição local elimina completamente a exposição de dados.

  • Privacidade: o áudio nunca sai da sua máquina. Não é preciso acordo de processamento de dados para conformidade com a LGPD — o processamento acontece localmente.
  • Custo: sem tarifas por minuto. Um desenvolvedor que transcreve 8 horas de reuniões por semana economiza US$ 120–480/mês em relação aos preços de STT na nuvem.
  • Offline: funciona em aviões, em instalações seguras e em áreas sem internet confiável. Sem gerenciamento de chaves de API.
  • Latência: sem ida e volta de upload/download. Para interfaces de voz em tempo real, o processamento local reduz a latência de STT de 300–800 ms (nuvem) para 50–300 ms.
  • Personalização: ajuste fino com vocabulário específico do domínio. Rode qualquer tamanho de modelo que caiba no seu hardware.
  • Integração com Home Assistant: O Whisper rodando localmente significa que palavras de ativação e comandos de voz nunca saem da sua rede doméstica. Veja Whisper local no Home Assistant → para a configuração do complemento que substitui completamente o STT na nuvem.

Tamanhos do modelo Whisper — base de ambas as ferramentas

Tanto whisper.cpp quanto faster-whisper usam os mesmos pesos do modelo Whisper, convertidos para seus respectivos formatos (GGML para whisper.cpp, CTranslate2 para faster-whisper). Escolha o tamanho do modelo conforme seu orçamento de VRAM/RAM e seus requisitos de precisão.

ModeloParâmetrosVRAM / RAMWER inglêsFator de velocidade (vs tempo real em RTX 4070)
tiny39M~1 GB7,6%~32×
base74M~1 GB5,0%~16×
small244M~2 GB3,4%~6×
medium769M~5 GB2,9%~2×
large-v31,55B~10 GB2,5%1× (referência)
distil-large-v3~756M~4 GB~2,6%~6×

Valores de WER (taxa de erro de palavras) do paper do Whisper no conjunto de teste limpo do LibriSpeech. Menor é melhor. Fatores de velocidade para faster-whisper int8 em RTX 4070. Valores de distil-large-v3 do paper do Distil-Whisper.

Distil-Whisper: a alternativa mais rápida

distil-whisper/distil-large-v3 é uma variante destilada do large-v3 com ~50% menos parâmetros, que roda ~6× mais rápido mantendo o WER dentro de ~1% do original.** É a escolha certa quando a velocidade de transcrição importa mais do que extrair a última fração de precisão. distil-large-v3 funciona com faster-whisper (suporte nativo a CTranslate2) e com whisper.cpp (por meio de conversão para o formato GGML), integrando-se ao runtime que você já usa.

  • Parâmetros: ~756M — cerca de metade dos 1,55B do large-v3, cabendo em ~4 GB de VRAM em vez de ~10 GB.
  • Velocidade: ~6× tempo real em RTX 4070 (vs. 1× de referência para large-v3) — comparável ao modelo medium em velocidade, com precisão próxima à do large-v3.
  • WER: ~2,6% em inglês — apenas ~0,1% acima dos 2,5% do large-v3. Na prática, a diferença é imperceptível em fala típica.
  • Compatibilidade: funciona com faster-whisper de forma nativa (WhisperModel("distil-large-v3", device="cuda", compute_type="int8")). Para whisper.cpp, converta para o formato GGML usando o script de conversão GGML do distil-whisper.
  • Melhor para: trabalhos de transcrição em lote, implantações em servidor com VRAM limitada e qualquer caso de uso em que você queira qualidade de large-v3 na velocidade do modelo medium.
  • Não recomendado para: transcrição multilíngue — distil-large-v3 é somente inglês. Para outros idiomas, use large-v3 ou medium.

whisper.cpp — o port C/C++

whisper.cpp (de Georgi Gerganov) é uma reimplementação pura em C/C++ do modelo Whisper da OpenAI, otimizada para inferência de baixo consumo de recursos e multiplataforma. Não requer Python, nem CUDA toolkit, e roda em praticamente qualquer hardware — do Raspberry Pi ao Apple M5 Pro ou configurações Windows CUDA.

  • Suporte de plataformas: CPU (AVX2, AVX512, ARM NEON), Apple Metal (Core ML), CUDA (NVIDIA), Vulkan (GPU AMD/Intel), OpenCL.
  • Vantagem em Apple Silicon: whisper.cpp exporta modelos para o formato Core ML, habilitando inferência no Apple Neural Engine. O large-v3 roda a ~10× tempo real em M5 Pro via Metal — mais rápido que qualquer ida e volta à nuvem.
  • Instalação: clone o repositório, execute make (ou cmake). Binários pré-compilados disponíveis para plataformas comuns. Sem dependência de Python.
  • Download do modelo: bash ./models/download-ggml-model.sh base.en — baixa o arquivo de modelo no formato GGML (~142 MB para base).
  • Exemplo de CLI: ./main -m models/ggml-base.bin -f audio.wav — transcreve um arquivo WAV para a saída padrão. Adicione -l pt para português.
  • Modo stream em tempo real: ./stream -m models/ggml-base.bin --step 3000 --length 10000 — transcreve do microfone em chunks de 3 segundos.
  • Wrapper Python: pywhispercpp fornece um binding Python para whisper.cpp, permitindo seu uso em pipelines Python sem sacrificar a aceleração Metal.
  • Limitação: sem VAD (detecção de atividade de voz) nativo. O modo stream exige ajustar os parâmetros --step e --length conforme o caso de uso.
bash
# Build from source (macOS / Linux)
git clone https://github.com/ggerganov/whisper.cpp
cd whisper.cpp
make -j4

# Download a model
bash ./models/download-ggml-model.sh large-v3

# Transcribe a file
./main -m models/ggml-large-v3.bin -f recording.wav

# Enable Metal on Apple Silicon (Core ML)
make -j4 WHISPER_COREML=1
./main -m models/ggml-large-v3-encoder.mlmodelc -f recording.wav

whisper.cpp: versão mais recente e novidades (junho de 2026)

A versão mais recente do whisper.cpp é a v1.8.6, publicada em 2 de junho de 2026. Ela continua a linha de manutenção v1.8.x (v1.8.4 e v1.8.5) focada em VAD por streaming, estabilidade do servidor e desempenho — não em suporte a novos modelos. A versão atual do faster-whisper é a v1.2.1 (31 de outubro de 2025). Ambos os runtimes ainda carregam os mesmos pesos do OpenAI Whisper; nada relativo à precisão de transcrição mudou em 2026.

  • whisper.cpp v1.8.6 (2 de junho de 2026): reimplementação do ffmpeg-transcode para uma decodificação opcional com FFmpeg mais clara de áudio comprimido (MP3, M4A), além de uma correção do caminho de exemplos no CI.
  • whisper.cpp v1.8.5 (maio de 2026): melhorias no VAD por streaming (detecção de atividade de voz), correções de vazamento de parâmetros do servidor e de carimbos de tempo de tokens, e correções de vazamentos de memória nos bindings de Ruby e VAD.
  • whisper.cpp v1.8.4 (19 de março de 2026): sincronização mais recente do ggml com amplos ganhos de desempenho, uma nova flag -g / --gpu-device (e seleção de dispositivo GGML_CUDA) para escolher uma GPU, e correções de quebra de segmentos UTF-8.
  • O VAD nativo agora vem integrado ao whisper.cpp. Versões recentes adicionaram um caminho nativo de detecção de atividade de voz, reduzindo uma vantagem de longa data do faster-whisper — embora a integração do Silero VAD do faster-whisper continue mais pronta para uso.
  • faster-whisper v1.2.1 (31 de outubro de 2025): versão estável atual; pip install faster-whisper a instala. Não há versão de 2026 até esta atualização — o projeto está estável, não parado.
  • Nenhum novo modelo Whisper base em 2026. large-v3 e distil-large-v3 continuam sendo os pesos mais recentes, então as «atualizações» de qualquer das ferramentas são mudanças de runtime e de tooling, não de precisão.

faster-whisper — o port CTranslate2

faster-whisper (da SYSTRAN) é uma biblioteca Python que reimplementa a inferência do Whisper usando CTranslate2 — um motor de inferência C++ altamente otimizado com suporte a quantização int8, reduzindo o uso de VRAM e aumentando o throughput. Em GPUs NVIDIA, faster-whisper é a implementação local do Whisper mais rápida disponível.

  • Suporte de plataformas: CPU (quantização int8) e GPU NVIDIA CUDA. Sem suporte a Apple Metal — roda somente em CPU no Mac.
  • Vantagem do int8: a quantização int8 do CTranslate2 reduz a VRAM em ~40% e aumenta a velocidade de inferência em ~2× em relação ao float16, com impacto no WER negligível (< 0,1% absoluto).
  • Instalação: pip install faster-whisper — sem compilação necessária. O suporte CUDA requer CUDA 11.8+ e cuDNN 8.x.
  • VAD integrado: faster-whisper inclui integração com Silero VAD, que pula automaticamente segmentos de áudio silencioso — crítico para pipelines de transcrição em tempo real.
  • Python nativo: a API Python direta facilita a integração com LLMs, bibliotecas de processamento de áudio e frameworks web.
  • Velocidade: large-v3 int8 em RTX 4070 roda a ~12× tempo real usando ~2,5 GB de VRAM. CPU int8 atinge ~20× tempo real para o modelo tiny.
  • Processamento em lote: faster-whisper suporta inferência em lote para processar grandes arquivos de áudio de forma eficiente.
  • Limitação: sem suporte Metal no Mac — roda somente em CPU no Apple Silicon, atingindo ~3× tempo real com large-v3 vs. ~10× do whisper.cpp com Metal.
python
from faster_whisper import WhisperModel

# Load model (downloads automatically on first run)
model = WhisperModel("large-v3", device="cuda", compute_type="int8")

# Transcribe
segments, info = model.transcribe("audio.wav", beam_size=5)

print(f"Detected language: {info.language} (probability: {info.language_probability:.2f})")
for segment in segments:
    print(f"[{segment.start:.2f}s → {segment.end:.2f}s] {segment.text}")

Obtenha ggml-base.bin via pip (configuração Python)

**Para usar ggml-base.bin a partir do Python via pip, instale o binding pywhispercpppip install pywhispercpp — e então carregue Model("base"), que baixa ggml-base.bin automaticamente na primeira execução.** Não existe pip install whisper.cpp; pywhispercpp é o wrapper pip do motor C/C++ do whisper.cpp e mantém a aceleração Metal e CUDA. O arquivo do modelo GGML (ggml-base.bin, ~142 MB) é baixado separadamente do Hugging Face e armazenado em cache localmente — o pacote pip entrega o motor de inferência, não os pesos.

📍 Em uma frase

Execute pip install pywhispercpp, e então Model("base") no Python busca e armazena em cache o ggml-base.bin automaticamente no primeiro uso.

💬 Em termos simples

o pip instala o programa (pywhispercpp); o arquivo do modelo ggml-base.bin é um download separado de ~142 MB que ocorre na primeira vez que você carrega o modelo «base» — ou que você obtém manualmente com o script download-ggml-model.sh.

  • Instale o binding: pip install pywhispercpp. Para aceleração NVIDIA CUDA, compile com GGML_CUDA=1 pip install git+https://github.com/absadiki/pywhispercpp.
  • Download automático do ggml-base.bin: from pywhispercpp.model import Model e então model = Model("base") baixa ggml-base.bin do Hugging Face (ggerganov/whisper.cpp) na primeira execução e o armazena em cache. Use "base.en" para a variante somente em inglês.
  • Download manual (via CLI, sem pip): a partir de um repositório whisper.cpp clonado, bash ./models/download-ggml-model.sh base salva o arquivo em models/ggml-base.bin — o mesmo arquivo que o pywhispercpp busca.
  • Download direto: curl -L -o ggml-base.bin https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.bin obtém o modelo sem script. Troque base por tiny, small, medium ou large-v3.
  • Não confunda os pacotes: pip install openai-whisper instala o Whisper PyTorch original da OpenAI (ele usa checkpoints .pt, não ggml-base.bin). pip install faster-whisper usa o formato CTranslate2. Apenas o pywhispercpp consome arquivos GGML ggml-*.bin.
  • Onde o arquivo fica: o pywhispercpp armazena os modelos GGML baixados no cache do seu módulo (ou em um caminho que você passe via Model("base", models_dir="...")), de modo que o mesmo ggml-base.bin é reutilizado entre execuções — sem novo download.
bash
# 1. Install the pip binding for whisper.cpp
pip install pywhispercpp

# 2. ggml-base.bin downloads automatically on first use
#    from pywhispercpp.model import Model
#    model = Model("base")          # fetches & caches ggml-base.bin (~142 MB)
#    for seg in model.transcribe("audio.wav"):
#        print(seg.text)

# --- Or get ggml-base.bin manually (no pip) ---
# From a cloned whisper.cpp checkout:
bash ./models/download-ggml-model.sh base       # -> models/ggml-base.bin

# Or download the file directly from Hugging Face:
curl -L -o ggml-base.bin \
  https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.bin

Comparação direta: tabela de benchmarks

Todos os benchmarks usam o modelo large-v3 salvo indicação em contrário. A velocidade é medida em múltiplos do tempo real (p. ex., 10× significa 60 minutos de áudio transcritos em 6 minutos). Valores de VRAM para execuções em GPU; valores de RAM para execuções em CPU.

📍 Em uma frase

Em Apple Silicon, whisper.cpp com Metal roda large-v3 a ~10× tempo real; em GPUs NVIDIA, faster-whisper com int8 atinge ~12× tempo real — cada ferramenta vence de forma decisiva em sua plataforma-alvo.

💬 Em termos simples

No Mac escolha whisper.cpp (usa o Apple Neural Engine), e no Windows/Linux com GPU NVIDIA escolha faster-whisper (processa áudio 12× mais rápido que o tempo real usando 40% menos memória de GPU).

Métricawhisper.cpp (large-v3)faster-whisper (large-v3)
Plataforma / linguagemC/C++ (multiplataforma)Python (CTranslate2)
Suporte de GPUCUDA, Metal, VulkanApenas CUDA
Otimização de CPUAVX2, ARM NEONQuantização int8
Velocidade — RTX 4070, large-v3~8× tempo real~12× tempo real ✓
Velocidade — M5 Pro, large-v3~10× tempo real (Metal) ✓~3× tempo real (somente CPU)
Velocidade — somente CPU (x86), base~15× tempo real~20× tempo real ✓
VRAM — large-v3, GPU~3 GB~2,5 GB (int8) ✓
Integração PythonRequer wrapper (pywhispercpp)Nativo ✓
VAD (detecção de silêncio)Manual (ajuste de --step)Integrado (Silero VAD) ✓
Streaming em tempo realSim (flag --stream) ✓Sim (pipeline VAD)
Precisão WER (large-v3)2,5% (idêntico)2,5% (idêntico)
Dependência PythonNenhuma ✓Python 3.8+
Raspberry Pi / embarcadoSim — binário C ✓Limitado — overhead de Python
Formatos de saídaSRT, VTT, JSON, CSV, txtObjetos Python (start, end, text)

whisper.cpp grava a saída diretamente em formatos padrão de legendas e transcrição (SRT, VTT, JSON, CSV, txt) — ideal para fluxos de trabalho de legendagem em que você precisa de um arquivo em disco sem código adicional. faster-whisper retorna um gerador Python de objetos de segmento com atributos start, end e text — ideal para encadeamento de pipelines LLM, em que você passa o texto do segmento diretamente para um modelo posterior sem gravar arquivos intermediários. Para geração de legendas, whisper.cpp é mais simples. Para pipelines que processam segmentos programaticamente, faster-whisper é mais simples.

Configuração de transcrição em tempo real

A transcrição em tempo real processa o áudio em chunks à medida que ele chega do microfone, produzindo texto com um pequeno atraso em relação à fala. Ambas as ferramentas suportam isso, mas com diferentes compensações.

  • Modo stream do whisper.cpp: execute ./stream -m models/ggml-small.bin --step 3000 --length 10000 -t 4. Processa chunks de 3 segundos; latência ~0,5–1,5 segundo com o modelo small. Sem Python necessário.
  • Pipeline VAD do faster-whisper: use vad_filter=True em model.transcribe(). Silero VAD segmenta o áudio automaticamente nos limites de silêncio — chunks mais naturais do que janelas de comprimento fixo.
  • Latência prática: 0,5–2 segundos atrás da fala ao vivo com modelos small ou medium. Use tiny para a menor latência (< 0,5 segundo, mas WER maior).
  • Seleção de modelo para tempo real: small ou base é o ponto ideal prático — rápido o suficiente para acompanhar a fala, preciso o suficiente para áudio limpo. Evite large-v3 em tempo real a menos que você tenha uma GPU dedicada.
  • Entrada de microfone: whisper.cpp lê áudio raw via SDL2 ou portaudio. faster-whisper lê arrays de áudio de qualquer biblioteca Python de áudio (sounddevice, pyaudio, soundfile).
  • Estabilidade: o modo stream do whisper.cpp pode produzir tokens repetidos ("alucinações" de preenchimentos curtos) no silêncio. Suprima com --suppress-blank e --no-speech-threshold.

Apple Silicon: whisper.cpp vence

Em Macs com M1, M2, M3, M4 e M5, whisper.cpp com aceleração Core ML / Metal é a ferramenta correta — sem dúvida. faster-whisper não tem suporte Metal e roda somente em CPU no Mac, atingindo ~3× tempo real com large-v3. whisper.cpp com Metal atinge ~10× tempo real em M5 Pro — uma vantagem de velocidade de 3×.

  • Exportação para Core ML: execute ./models/generate-coreml-model.sh large-v3 para exportar o encoder para o formato Core ML. Isso descarrega a inferência do encoder no Apple Neural Engine.
  • Benchmark M5 Pro (large-v3, Metal): ~10× tempo real. 60 minutos de áudio transcritos em ~6 minutos. Observação: o M5 Pro foi lançado em março de 2026 — estes são benchmarks iniciais da comunidade. O desempenho pode melhorar com atualizações do whisper.cpp otimizando o M5 Neural Engine.
  • Benchmark M3 MacBook Air (large-v3, Metal): ~7× tempo real. 60 minutos em ~8,5 minutos.
  • Memória: a memória unificada significa que não há VRAM separada — um M5 Pro de 16 GB pode rodar large-v3 (~3 GB) confortavelmente junto a outros processos.
  • faster-whisper no Mac: somente CPU, int8. Large-v3 a ~3× tempo real. Utilizável para transcrição em lote noturna, mas não para tempo real ou fluxos de trabalho sensíveis ao tempo.
  • Recomendação: use whisper.cpp para todo o trabalho de STT no Mac. Adicione pywhispercpp se você precisar de integração Python mantendo a aceleração Metal.

GPU NVIDIA: faster-whisper vence

No Windows e no Linux com GPUs NVIDIA, faster-whisper é a opção superior. Seu backend CUDA do CTranslate2 é mais otimizado que o caminho CUDA do whisper.cpp — ~12× vs. ~8× tempo real com large-v3 em RTX 4070, com menor uso de VRAM.

  • Benchmark RTX 4070 (12 GB) (large-v3 int8): ~12× tempo real, ~2,5 GB VRAM.
  • Benchmark RTX 3060 (12 GB) (large-v3 int8): ~8× tempo real, ~2,5 GB VRAM.
  • Benchmark RTX 4060 (8 GB) (large-v3 int8): ~7× tempo real, ~2,5 GB VRAM — cabe com folga.
  • int8 vs float16: int8 é ~2× mais rápido e usa ~40% menos VRAM com perda de precisão negligível. Use sempre compute_type="int8" em NVIDIA.
  • Processamento em lote: o parâmetro batched=True do faster-whisper permite o processamento paralelo de múltiplos arquivos de áudio, maximizando a utilização da GPU em grandes trabalhos de transcrição.
  • Integração em pipeline Python: faster-whisper se integra diretamente ao LangChain, Haystack e pipelines Python personalizados. Sem overhead de subprocesso em comparação com envolver o whisper.cpp.

Whisper no Raspberry Pi 5: tiny, base e small

Em um Raspberry Pi 5, o whisper.cpp roda os modelos tiny e base em tempo real para transcrição ao vivo, enquanto o modelo small roda abaixo do tempo real e é melhor reservá-lo para trabalhos em lote. O Cortex-A76 quad-core do Pi 5 não tem um caminho de GPU utilizável para o Whisper, então toda a inferência é em CPU (ARM NEON). Use os modelos GGML quantizados (ggml-*-q5_0.bin) para reduzir o uso de memória e acelerar a inferência.

📍 Em uma frase

Em um Raspberry Pi 5, o modelo small do whisper.cpp roda mais lento que o tempo real (~0,5×, apenas em lote); tiny e base são os modelos que acompanham a fala ao vivo.

💬 Em termos simples

Um Pi 5 consegue transcrever áudio ao vivo com os modelos Whisper tiny e base, mas o modelo small é pesado demais para acompanhar em tempo real — use o small para arquivos gravados que você processa em segundo plano, não para um microfone ao vivo.

  • Whisper small no Pi 5: cerca de 0,4–0,6× tempo real em CPU (um clipe de 10 minutos leva ~17–25 minutos). Preciso com 3,4% WER, mas lento demais para legendagem ao vivo — use-o para transcrição noturna/em lote.
  • Whisper base no Pi 5: em torno do tempo real até ~2× com multithreading (-t 4). O ponto ideal prático para transcrição ao vivo no Pi, com WER aceitável de 5,0%.
  • Whisper tiny no Pi 5: a opção mais rápida, confortavelmente mais rápida que o tempo real para uso ao vivo, ao custo de um WER mais alto de 7,6%. Ideal para reconhecimento de palavra de ativação e comandos curtos.
  • Use modelos quantizados: bash ./models/download-ggml-model.sh small-q5_0 reduz a RAM e acelera a inferência com perda mínima de precisão — importante na memória compartilhada do Pi 5.
  • faster-whisper no Pi 5: instalável (pip install faster-whisper, CPU int8) e competitivo para trabalhos em lote, mas o binário C mais leve do whisper.cpp é a escolha embarcada mais comum.
  • Térmica: a transcrição sustentada exige muito da CPU do Pi 5 — use refrigeração ativa para evitar o throttling térmico que degrada esses números.

Quando usar cada um

Mapeamento direto do seu cenário para a ferramenta adequada:

📍 Em uma frase

Use whisper.cpp em Apple Silicon e alvos embarcados/multiplataforma; use faster-whisper em GPUs NVIDIA e pipelines Python.

💬 Em termos simples

Se você tem um Mac, escolha whisper.cpp — é 3× mais rápido que faster-whisper em hardware Apple. Se você tem GPU NVIDIA e escreve Python, escolha faster-whisper — é mais rápido e precisa de 40% menos memória de GPU.

CenárioMelhor escolhaPor quê
Mac com Apple Silicon (qualquer modelo)whisper.cppAceleração Metal / Core ML — 3× mais rápido que faster-whisper (somente CPU no Mac)
Servidor com GPU NVIDIA (Linux/Windows)faster-whisperCTranslate2 int8 — mais rápido e menor VRAM que o caminho CUDA do whisper.cpp
Pipeline de dados Pythonfaster-whisperAPI Python nativa; sem wrapper de subprocesso; VAD integrado
Raspberry Pi / Linux embarcadowhisper.cppBinário C puro; sem overhead do runtime Python; otimizado com ARM NEON
Assistente de voz em tempo realwhisper.cppModo stream com baixo overhead; funciona sem Python no Pi / embarcado
Transcrição em lote (grande arquivo de áudio)faster-whisperInferência em lote, utilização da GPU, integração Python assíncrona
GPU AMD (Vulkan)whisper.cppSuporte de backend Vulkan; faster-whisper é apenas CUDA
Servidor Linux somente CPUfaster-whisperA quantização int8 dá ~30% de vantagem de velocidade em CPU x86

Além do whisper.cpp e do faster-whisper

Duas ferramentas adicionais estendem o Whisper com capacidades que nenhuma das duas oferece de fábrica: diarização de falantes e inferência em lote ultrarrápida em GPU.

  • WhisperX:** construído sobre o faster-whisper, o WhisperX adiciona marcas de tempo em nível de palavra e diarização de falantes — identificando qual falante disse quais palavras. Melhor para: transcrição de reuniões com rótulos de falante, edição de podcasts e transcrição de entrevistas. Instale com pip install whisperx e forneça um token do Hugging Face para o modelo de diarização.
  • insanely-fast-whisper:** um wrapper de pipeline Hugging Face Transformers que adiciona suporte a Flash Attention 2 para inferência em GPU significativamente mais rápida que o faster-whisper padrão em hardware NVIDIA. Melhor para: processamento em lote de grandes arquivos de áudio em GPUs NVIDIA. Requer uma GPU compatível com Flash Attention 2 (Ampere ou mais recente: RTX 3000+, A100, H100).

Problemas comuns e soluções

Os problemas de configuração e runtime mais frequentes, com soluções diretas:

  • Incompatibilidade de versão do CUDA: faster-whisper requer CUDA 11.8 ou posterior. Verifique com nvcc --version. Se o seu CUDA for mais antigo, atualize o driver ou instale faster-whisper em um ambiente conda com cudatoolkit=11.8.
  • Falha na exportação do modelo Metal: garanta que as Xcode Command Line Tools estejam instaladas — execute xcode-select --install. O script de exportação Core ML requer o pacote Python coremltools: pip install coremltools.
  • Alucinações no silêncio: ambas as ferramentas podem produzir tokens de preenchimento repetidos em segmentos de áudio silencioso. Use --no-speech-threshold 0.6 no modo stream do whisper.cpp, ou vad_filter=True em model.transcribe() do faster-whisper para pular automaticamente os segmentos silenciosos.
  • Sem memória com large-v3: mude para quantização int8 no faster-whisper (compute_type="int8") — reduz a VRAM de ~5 GB (float16) para ~2,5 GB. No whisper.cpp, use a variante GGML quantizada (p. ex., ggml-large-v3-q5_0.bin) que reduz a memória para ~3–4 GB.
  • Saída ilegível em áudio não inglês: não use variantes .en do modelo (tiny.en, base.en) para fala não inglesa — são somente inglês. Use os modelos multilíngues (base, small, medium, large-v3) e especifique o idioma explicitamente: -l pt no whisper.cpp ou language="pt" no faster-whisper.
  • Inferência lenta em CPU: verifique se a sua CPU suporta instruções AVX2 (necessárias para inferência otimizada em CPU). Confira com grep avx2 /proc/cpuinfo no Linux ou sysctl machdep.cpu.features no Mac. CPUs sem AVX2 recorrem a SIMD genérico e serão 2–3× mais lentas.

Perguntas frequentes

A precisão de transcrição é a mesma entre whisper.cpp e faster-whisper?

Sim. Ambas as ferramentas usam os mesmos pesos do modelo OpenAI Whisper — o modelo em si é idêntico. A diferença está unicamente no runtime de inferência (C/C++ vs CTranslate2 Python). O WER no mesmo arquivo de áudio ficará dentro de 0,1% absoluto um do outro, o que está dentro da variação normal causada pela aleatoriedade do beam search.

Posso usar faster-whisper em um Mac com Apple Silicon?

Sim, mas ele roda somente em CPU — faster-whisper não tem suporte Metal. Em um M5 Pro, faster-whisper large-v3 roda a ~3× tempo real (CPU int8), comparado a ~10× do whisper.cpp com Metal. Para a maioria dos usuários de Mac, whisper.cpp é 3× mais rápido com o mesmo modelo. A única razão para usar faster-whisper no Mac é se o seu pipeline Python já depende dele e a velocidade não é crítica.

Que tamanho de modelo Whisper devo usar para um assistente de voz?

Para interfaces de voz em tempo real, Whisper small é a recomendação padrão — 3,4% WER em inglês limpo, ~200 ms de latência de STT em uma CPU ou GPU moderna, e cabe em 2 GB de RAM. Use tiny se você estiver em hardware muito restrito (Raspberry Pi Zero 2W, telefones antigos) e puder tolerar ~7,6% WER. Use medium ou large-v3 apenas para transcrição em lote em que a latência não é uma restrição.

whisper.cpp suporta idiomas além do inglês?

Sim. Todos os modelos multilíngues do Whisper (base, small, medium, large-v3) suportam 99 idiomas. Adicione `-l [código do idioma] ao CLI: -l pt para português, -l de para alemão, -l ja` para japonês, etc. Os modelos tiny.en e base.en são somente inglês e ligeiramente mais precisos para inglês que seus equivalentes multilíngues.

Como instalo faster-whisper com suporte CUDA?

Instale com pip install faster-whisper. O suporte CUDA requer CUDA 11.8 ou posterior e cuDNN 8.x instalados no seu sistema. Verifique sua versão do CUDA com nvcc --version. Em seguida, especifique device="cuda" ao carregar o modelo: WhisperModel("large-v3", device="cuda", compute_type="int8"). Se o CUDA não for detectado, faster-whisper recorre automaticamente à CPU.

Qual é mais preciso — whisper.cpp ou faster-whisper?

Idêntico. Ambas as ferramentas usam os mesmos pesos do modelo OpenAI Whisper e produzem o mesmo WER em qualquer arquivo de áudio. A diferença entre whisper.cpp e faster-whisper é a velocidade e o suporte de plataforma, não a precisão de transcrição. Qualquer diferença de WER que você medir entre execuções está dentro da variação normal do beam search, não vem do runtime em si.

Posso rodar o Whisper large-v3 com 8 GB de RAM?

Sim em GPU — large-v3 int8 no faster-whisper usa ~2,5 GB de VRAM e roda em qualquer GPU de 8 GB. Em hardware somente CPU, 8 GB de RAM é apertado para large-v3 (float32 usa ~10 GB). Use medium (5 GB RAM) ou small (2 GB RAM) em sistemas somente CPU. whisper.cpp é mais eficiente em memória na CPU que faster-whisper devido ao menor overhead do runtime.

Quanto custa o Whisper local vs STT na nuvem?

Custo contínuo zero. Os serviços de STT na nuvem cobram US$ 0,006–0,024 por minuto de áudio — para um desenvolvedor que transcreve 8 horas de reuniões por semana, isso dá US$ 120–480/mês. O Whisper local roda em hardware que você já possui, sem tarifas por minuto, sem gerenciamento de chaves de API e sem que os dados de áudio saiam da sua máquina.

Fontes

← Voltar para LLMs locais avançados