Faster-Whisper: transcrever rapidamente, mesmo sem GPU
Faster-Whisper (SYSTRAN/faster-whisper, licença MIT) é uma reimplementação do Whisper no motor CTranslate2. O projeto anuncia uma execução até 4 vezes mais rápida que a de openai/whisper, com a mesma precisão e menos memória. Em seu próprio banco de testes com CPU (Intel i7-12700K, modelo small), transcreve 13 minutos de áudio em 1 minuto e 42 segundos em int8, contra 6 minutos e 58 segundos para openai/whisper — quase 4 vezes mais rápido no processador, sem GPU.
Faster-Whisper é uma reimplementação do Whisper que transcreve significativamente mais rápido e consome consideravelmente menos memória, com qualidade de texto equivalente. Não é um novo modelo: são os mesmos pesos, executados pelo CTranslate2, um motor de inferência diferente publicado pela SYSTRAN sob licença MIT. É a implementação a escolher por padrão para transcrever localmente, e seu próprio benchmark quantifica com precisão o que « finalmente torna razoável a transcrição no processador » significa na prática.
#O que é e o que não é
Whisper refere-se tanto a uma família de modelos quanto à implementação de referência da OpenAI que os executa. O Faster-Whisper mantém os modelos e substitui a implementação por CTranslate2, um motor de inferência otimizado para modelos do tipo transformer, desenvolvido inicialmente para tradução automática no OpenNMT. O texto gerado é o mesmo com qualidade equivalente; o que muda é o tempo e a memória necessários para obter esse resultado, não o conteúdo final.
Consequência prática: tudo o que você já sabe sobre a escolha do tamanho do modelo Whisper continua totalmente válido, e a maioria das ferramentas de transcrição local que você encontra no dia a dia já o utiliza nos bastidores, muitas vezes sem necessariamente mencionar ou documentar isso. Outro detalhe útil: ao contrário do openai-whisper, o FFmpeg não precisa ser instalado separadamente no sistema — o áudio é decodificado pela biblioteca PyAV, que inclui suas próprias bibliotecas FFmpeg.
#De onde vem o ganho
Seu ChatGPT privado e gratuito na sua máquina em 1 hora — LM Studio, Ollama, Open WebUI, seus documentos, sem nuvem.
- Espaço online vitalício
- PDF + arquivos
- Atualizações vitalícias
- Um mecanismo de inferência especializado
- CTranslate2, desenvolvido para executar modelos Transformer de forma eficiente, em vez de usar diretamente um framework de uso geral como o PyTorch.
- A quantização
- Executar o modelo em 8 bits reduz o consumo de memória e acelera a execução, com uma perda geralmente imperceptível na qualidade da transcrição.
- Processamento em lote
- Arquivos longos podem ser divididos e processados em paralelo (batch_size), em vez de estritamente um após o outro, ao custo de um uso maior de memória.
- Detecção de atividade vocal
- Pular os silêncios evita fazer o modelo trabalhar com o vazio — em gravações de reuniões, isso está longe de ser insignificante.
#O ganho, quantificado pelo desenvolvedor
A SYSTRAN publica seu próprio benchmark em vez de deixar o leitor adivinhar: transcrição de 13 minutos de áudio, comparada entre várias implementações no mesmo hardware, com os tempos e a memória consumida por cada uma. Dois conjuntos de medições são particularmente importantes para um uso sem placa de vídeo dedicada, aquele que diz respeito à maioria dos computadores de trabalho nas empresas.
| Implementação | Precisão | Tempo | Memória RAM |
|---|---|---|---|
| openai/whisper | fp32 | 6 min 58 s | 2 335 MB |
| faster-whisper | fp32 | 2 min 37 s | 2.257 MB |
| faster-whisper | int8 | 1 min 42 s | 1 477 MB |
| faster-whisper (lotes de 8) | int8 | 51 s | 3 608 MB |
No processador, a versão int8 do Faster-Whisper transcreve, portanto, 4,1 vezes mais rápido que o openai/whisper, usando menos memória (1 477 MB contra 2 335 MB) — um resultado coerente com a afirmação geral do projeto, «até 4 vezes mais rápido… usando menos memória». Na GPU, o mesmo teste com o modelo large-v2 (RTX 3070 Ti) leva 1 min 03 em fp16 e 59 segundos em int8, contra 2 min 23 para o openai/whisper — a quantização traz aqui um ganho mais modesto do que na CPU, mas a memória de vídeo usada cai de 4 708 MB para 2 926 MB.
O repositório também publica um comparativo com a variante distil-whisper-large-v3, um modelo reduzido por destilação em vez de quantização. Na GPU, com a biblioteca transformers em fp16 e processamento em lotes de 16, esse modelo leva 46 minutos e 12 segundos para transcrever o corpus de teste com uma taxa de erro de palavras de 14,801; a mesma configuração com Faster-Whisper leva 25 minutos e 50 segundos, com uma taxa de erro de palavras de 13,527 — mais rápido E mais preciso nesse teste específico, o que mostra que o ganho do CTranslate2 não se limita à quantização: o mecanismo de execução em si conta, independentemente do modelo exato que ele executa.
O teste de desempenho também compara o Faster-Whisper com o whisper.cpp, outra reimplementação muito utilizada, especialmente no Mac e em dispositivos embarcados. Com o modelo large-v2 em fp16, o whisper.cpp com Flash Attention leva 1 minuto e 5 segundos e usa 4.127 MB de memória de vídeo, praticamente empatado com o Faster-Whisper (1 minuto e 3 segundos, 4.525 MB) — um lembrete útil de que o Faster-Whisper não é a única opção rápida, apenas aquela que este guia documenta com mais detalhes porque seu ecossistema Python se integra mais facilmente a uma cadeia RAG ou à geração automatizada de um relatório.
#Instalá-lo e transcrever um primeiro arquivo
A instalação cabe em uma linha, sem dependências de sistema a gerenciar para a decodificação de áudio, graças ao PyAV, incluído diretamente no pacote Python. O código mínimo utiliza três parâmetros que fazem toda a diferença em relação a um uso ingênuo do modelo: a escolha explícita do dispositivo (cpu ou cuda), o tipo de cálculo (compute_type, em que int8 é o ponto de partida razoável na CPU) e a ativação do filtro de detecção de atividade vocal.
Três linhas de código bastam para aplicar os dois ajustes que explicam a maior parte da diferença medida no teste de desempenho oficial: compute_type="int8" para a quantização e vad_filter=True para a detecção de atividade vocal. O parâmetro language="fr", por sua vez, desativa a detecção automática de idioma, que erra com mais frequência nos primeiros segundos de uma gravação.
#Qual modelo, qual precisão
| Tamanho | Memória indicativa em 8 bits | Para quê |
|---|---|---|
| Pequeno (small) | Aproximadamente 1,5 GB em int8 na CPU, medido na bancada de testes oficial | Anotações rápidas, áudio limpo, um único idioma |
| Médio | Cerca de 1 a 2 GB | O equilíbrio habitual para gravações longas |
| Grande (large-v2) | Aproximadamente 2,9 GB em int8 na GPU, medido na bancada de testes oficial | Francês bem elaborado, vocabulário especializado, áudio difícil |
Para o francês, a diferença entre um modelo intermediário e um modelo grande aparece sobretudo nos nomes próprios, nas siglas e nos trechos em que várias pessoas falam ao mesmo tempo. Se a transcrição for usada em seguida por um modelo de linguagem que redige um relatório estruturado, um erro isolado em uma palavra rara tem menos peso do que se imagina intuitivamente; se ela precisar ser lida tal como está por uma pessoa, o modelo grande se justifica, ao custo do tempo e da memória indicados anteriormente neste guia.
#As configurações que realmente importam
- 01Forçar o idiomaA detecção automática se engana nos primeiros segundos, especialmente se a gravação começar com silêncio ou uma saudação curta. Indicar o idioma elimina uma classe inteira de erros.
- 02Ativar a detecção de atividade vocalEla evita transcrever os silêncios e reduz as alucinações no fim do arquivo, quando o modelo inventa texto sem haver fala.
- 03Escolher a quantização int8É essa configuração que explica a maior parte da diferença medida no benchmark oficial: na CPU, ela reduz o tempo de 2 min 37 para 1 min 42 no modelo small, usando menos memória.
- 04Ativar o processamento em lote se a memória permitirbatch_size=8 reduz novamente o tempo pela metade no benchmark oficial, ao custo de um consumo maior de memória: use apenas em máquinas com memória de sobra.
#Três usos concretos em uma máquina comum
Os números do benchmark oficial ganham todo o seu sentido quando relacionados a casos reais, em um computador de trabalho sem placa gráfica dedicada — a situação mais comum nas empresas.
- Ata de reunião
- A transcrição de uma reunião de uma hora em int8 em um processador de desktop leva, extrapolando os resultados medidos em 13 minutos, cerca de sete a oito minutos — tempo que permite tranquilamente iniciar a transcrição durante a pausa para o café logo após a própria reunião.
- Arquivamento de podcasts ou webinars
- Um processamento em lote iniciado à noite sobre uma pilha de arquivos longos aproveita diretamente o ganho medido com batch_size=8, sem que seja necessário monitorar a execução até de manhã.
- Legendagem posterior de um vídeo
- Faster-Whisper gera o texto bruto do vídeo; um alinhamento palavra por palavra com WhisperX acrescenta então as marcações de tempo precisas necessárias para um arquivo de legendas realmente utilizável na edição.
Nos três casos, o ponto em comum é a ausência de uma placa gráfica na equação: as medições de CPU do benchmark oficial mostram que um processador recente de computador de mesa é mais que suficiente para o uso cotidiano, o que desloca a verdadeira questão para o tamanho do modelo e a quantização, em vez da compra de hardware adicional para uma simples necessidade de transcrição.
#Faster-Whisper ou outra coisa
| Necessidade | Escolha |
|---|---|
| Texto, rápido, localmente, inclusive sem GPU | Faster-Whisper |
| Marcação de tempo palavra por palavra para legendagem | Um pipeline com alinhamento forçado (WhisperX) |
| Saber quem falou | Um pipeline com separação dos falantes |
| Da transcrição ao vivo, fluxo contínuo | Um motor voltado ao processamento em fluxo, como o Vosk |
| Uma máquina muito modesta, sem GPU | Faster-Whisper em int8, modelo small ou medium |
- WhisperX: marcação temporal palavra por palavra e falantes
- Whisper localmente: o básico
- Do arquivo de áudio ao relatório
- Vosk: transcrever em fluxo contínuo em vez de um arquivo
- Fonte: repositório oficial do Faster-Whisper e seu benchmark
- Fonte: mecanismo de inferência CTranslate2
- Fonte: repositório oficial openai/whisper (referência do comparativo)
#FAQ
O Faster-Whisper é menos preciso que o Whisper?+
É necessária uma GPU?+
Por que o modelo inventa frases nos trechos de silêncio?+
Qual tamanho de modelo para francês?+
Pode funcionar em tempo real?+
Qual é o ganho real da quantização int8?+
O Faster-Whisper é sempre mais rápido que as demais implementações?+
Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.