Vosk: reconhecimento de fala em tempo real, sem ligne
Vosk (alphacep/vosk-api, licença Apache 2.0, desenvolvido por Alpha Cephei) é um motor de reconhecimento de voz offline que transcreve em fluxo contínuo, com modelos portáteis de aproximadamente 50 MB por idioma — o modelo francês leve vosk-model-small-fr-0.22 pesa 41 MB. Ele abrange 20 idiomas ou mais, funciona em Raspberry Pi ou smartphone, mas continua sendo menos preciso que Whisper em áudio difícil: deve ser reservado para comandos de voz e uso em tempo real.
O Vosk é um mecanismo de reconhecimento de voz offline, desenvolvido pela empresa Alpha Cephei e baseado no mecanismo Kaldi, muito leve, que funciona em fluxo contínuo: ele transcreve à medida que falamos, em um processador modesto, com modelos de algumas dezenas de megabytes. Ele não compete com os grandes modelos em qualidade de texto — faz outra coisa, e o que faz não é facilmente substituível. Este guia detalha os números publicados pelo projeto, inclusive para os dois modelos franceses oficiais, antes de comparar honestamente com o Whisper.
#O que o Vosk faz de diferente
Os modelos de transcrição de referência processam arquivos: recebem uma gravação completa e entregam um texto quando o processamento termina. O Vosk processa um fluxo: recebe o áudio em pequenos trechos e produz resultados parciais e depois definitivos ao longo da fala, com latência próxima de zero graças à sua API de streaming — é a ficha oficial do projeto que descreve essa « zero-latency response with streaming API » como sua característica central, assim como o tamanho de seus modelos.
Essa diferença de arquitetura explica todo o resto: modelos minúsculos, execução no processador sem dificuldade, consumo de memória compatível com um Raspberry Pi ou um celular de entrada e qualidade de texto inferior à dos grandes modelos em áudio difícil ou com ruído.
#Vosk em números, inclusive em francês
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
O projeto é preciso sobre o que oferece. O repositório oficial anuncia reconhecimento para “20+ languages and dialects”, bindings para Python, Java, Node.js, C#, C++, Rust e Go, e modelos “portáteis” de 50 MB, com modelos de servidor bem maiores para quem deseja mais precisão. Tudo é publicado sob licença Apache 2.0, uma garantia útil quando um projeto precisa justificar suas dependências open source perante um departamento jurídico.
| Modelo | Tamanho | Taxa de erro de palavras (quanto menor, melhor) | Uso pretendido |
|---|---|---|---|
| vosk-model-small-fr-0.22 | 41 MB | 23,95 (Common Voice) · 19,30 (MTEDX) · 27,25 (podcasts) | Android, iOS, Raspberry Pi |
| vosk-model-fr-0.22 | 1,4 GB | 14,72 (Common Voice) · 11,64 (MLS) · 13,10 (MTEDX) | Servidor, maior precisão |
A diferença de tamanho (41 MB contra 1,4 GB) resulta em uma diferença clara de precisão, com uma taxa de erro por palavra que quase dobra dependendo do conjunto de teste. Esse é o compromisso central do Vosk, quantificado em vez de apenas presumido: por ser mais leve, ele erra com mais frequência; isso é aceitável para um comando de voz com vocabulário restrito, mas muito menos para transcrever uma entrevista. Além dos modelos oficiais, o projeto LinTO, mantido pela empresa francesa de software Linagora, publica seus próprios modelos em francês compatíveis com o Vosk — uma referência útil para um projeto francófono que queira comparar várias fontes antes de escolher.
Os detalhes dos quatro conjuntos de testes (Common Voice, MTEDX, podcasts, MLS) também merecem ser lidos como um alerta metodológico, e não como uma simples classificação a aceitar tal como está: a taxa de erro por palavra varia de um valor ao dobro dele de um conjunto para outro para o mesmo modelo, entre 19,30 no MTEDX e 27,25 nos podcasts para a versão leve. Um áudio de estúdio limpo e uma conversa gravada em meio ao ruído ambiente não oferecem a mesma qualidade, seja qual for o modelo escolhido — mais uma razão para testar com gravações representativas do uso real em vez de confiar em um único valor médio publicado em uma ficha de produto.
#O tempo real, sua verdadeira especialidade
- Latência
- O texto aparece enquanto falamos, permitindo comandos de voz e legendas ao vivo.
- Resultados parciais
- A aplicação pode reagir antes do fim da frase — indispensável para uma palavra de ativação ou um comando curto.
- Tamanho
- 41 MB para o modelo leve de francês, contra 1,4 GB para a versão de servidor e, muitas vezes, vários gigabytes para um grande modelo generalista.
- Vocabulário restrito
- É possível limitar o reconhecimento a uma lista de palavras esperadas, o que aumenta significativamente a precisão em comandos.
Esse último ponto é subestimado. Para controlar uma aplicação por voz, limitar o vocabulário a cinquenta comandos possíveis transforma um motor mediano em um motor muito confiável — enquanto um grande modelo generalista continuará hesitando entre homófonos próximos. É também o que confirma a ficha oficial ao citar “reconfigurable vocabulary” entre as funções nativas do motor, ao lado da identificação do falante, duas capacidades que poucos motores desse porte oferecem nativamente.
#Vosk ou Whisper
| Critério | Vosk | Whisper e derivados |
|---|---|---|
| Modo | Fluxo contínuo | Arquivo |
| Latência | Quase nula (API de streaming) | Após o processamento |
| Tamanho dos modelos | 41 MB a 1,4 GB, dependendo da variante | Centenas de MB a vários GB |
| Hardware | Processador modesto, embarcado | Processador adequado, GPU recomendada |
| Qualidade em áudios difíceis | Razoável, medida (WER ≈ 15–28 conforme o modelo e o teste) | Significativamente melhor |
| Pontuação e formatação | Limitada | Boa |
| Escolher para | Comandos de voz, tempo real, sistemas embarcados | Transcrição de reuniões, entrevistas e vídeos |
Não há um vencedor geral. Um fluxo de processamento bem estruturado costuma usar os dois: Vosk para detectar um comando ou exibir um retorno imediato enquanto o usuário fala, um modelo mais pesado como Faster-Whisper para produzir a transcrição definitiva e mais fiel, quando a gravação tiver terminado e houver capacidade de processamento disponível.
#Os casos em que ele leva vantagem
- 01Controle de um aplicativo por vozVocabulário restrito, latência mínima, nenhuma dependência de rede.
- 02Legendagem em tempo realReunião interna, conferência, acessibilidade em tempo real.
- 03Hardware integradoUm nanocomputador ou um dispositivo autônomo, onde um grande modelo não cabe — o projeto menciona explicitamente Raspberry Pi e Android como alvos.
- 04Privacidade rigorosa sem GPUUm computador comum que não deve enviar nada e não tem placa de vídeo.
Esses quatro casos têm um ponto em comum: toleram uma qualidade de texto satisfatória, em vez de excelente, em troca de latência quase nula e de um consumo de recursos compatível com hardware modesto. Quando a exigência se inverte — qualidade máxima exigida, com latência tolerável de alguns segundos — um modelo que processa arquivos, como o Faster-Whisper, volta a levar vantagem. Isso explica por que as duas ferramentas geralmente coexistem, em vez de substituir uma à outra, em um fluxo completo e bem projetado de processamento de voz.
#Formatos de áudio e exportação do texto
Na prática, um projeto de transcrição nunca se limita apenas à chamada ao motor: é necessário ler o formato de entrada recebido, convertê-lo se necessário, depois escrever o resultado em um formato utilizável nas etapas seguintes e, muitas vezes, gerenciar vários fornecedores de gravações ao mesmo tempo. O pipeline documentado no estudo citado acima ilustra esse processo completo: leitura de vários formatos de áudio comuns (WAV, MP3, FLAC, OGG) por meio de módulos de pré-processamento em Python, reconhecimento com o KaldiRecognizer do Vosk e, depois, exportação do texto obtido para um documento estruturado pronto para releitura ou arquivamento.
Esse detalhe importa porque o próprio Vosk espera receber um fluxo de áudio em um formato específico (PCM mono, geralmente 16 kHz), não qualquer arquivo tal como está. Um projeto que recebe áudio heterogêneo — gravações de telefones, exportações de videoconferências, arquivos compactados de diversas origens — quase sempre precisa, portanto, de uma etapa de conversão antes do mecanismo de reconhecimento. É frequentemente nessa etapa, mais do que no próprio mecanismo, que se escondem os bugs que degradam o reconhecimento sem gerar um erro explícito, mencionados anteriormente neste guia.
#Personalizar o modelo de linguagem
Nos bastidores, o reconhecimento de fala do Vosk se apoia em seu próprio KaldiRecognizer, derivado do mecanismo de reconhecimento de fala Kaldi — um detalhe que explica por que o projeto herda todo o ecossistema de ferramentas de personalização do Kaldi, em vez de começar do zero a cada novo idioma ou domínio. Um estudo recente sobre o assunto, desenvolvido em torno de um pipeline Vosk personalizado, mediu o efeito concreto de um modelo de linguagem adaptado: os modelos personalizados reduzem a taxa de erro de palavras, especialmente em vocabulário técnico, sotaques marcantes ou áudio com ruído.
Para um projeto francófono, isso abre uma possibilidade concreta além da escolha entre o modelo leve e o modelo para servidor: inserir um vocabulário específico da área (nomes de produtos, jargão interno, siglas, nomes próprios locais) no modelo de linguagem, em vez de se contentar com o vocabulário genérico. Isso exige mais trabalho do que um simples download, mas é o recurso que mais aproxima uma implantação do Vosk da qualidade de um grande modelo em um domínio específico, sem arcar com o custo computacional nem com a latência desse grande modelo.
#Implementação
O funcionamento é simples: instala-se o pacote (pip install vosk em Python), baixa-se um modelo para o idioma desejado, abre-se um fluxo de áudio, enviam-se trechos para o motor e leem-se os resultados parciais e depois os definitivos. Existem bindings para Python, Java, Node.js, C#, C++, Rust e Go, e um servidor WebSocket permite conectar uma página web ou um aplicativo móvel a um motor que roda na sua máquina.
Dois pontos de atenção antes de colocar em produção: a qualidade depende muito do modelo de linguagem escolhido — a tabela acima dá uma estimativa, mas teste com suas próprias gravações antes de construir algo com base nele — e a taxa de amostragem do áudio deve corresponder ao que o modelo espera; caso contrário, o reconhecimento piora sem uma mensagem de erro explícita.
- Assistente de voz local: a cadeia completa
- Transcrever arquivos rapidamente em ambiente local
- Fazer o assistente responder em voz alta com o Kokoro
- Whisper + Ollama: transcrição 100% offline
- Fonte: repositório oficial do Vosk no GitHub
- Fonte: catálogo de modelos Vosk, com tamanhos e pontuações
- Fonte: estudo sobre a personalização do modelo de linguagem Vosk
#FAQ
O Vosk é gratuito?+
É necessária uma placa de vídeo?+
Vosk ou Whisper?+
Ele funciona em francês? E com que qualidade?+
É possível limitar o vocabulário reconhecido?+
Qual tamanho de modelo escolher para um projeto embarcado?+
É possível melhorar a precisão sem mudar de modelo?+
Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.