Vosk : la reconnaissance vocale en direct, hors ligne
Vosk (alphacep/vosk-api, licence Apache 2.0, développé par Alpha Cephei) est un moteur de reconnaissance vocale hors ligne qui transcrit en flux continu, avec des modèles portables d'environ 50 Mo par langue — le modèle français léger vosk-model-small-fr-0.22 pèse 41 Mo. Il couvre 20 langues et plus, tourne sur Raspberry Pi ou smartphone, mais reste moins précis que Whisper sur de l'audio difficile : à réserver aux commandes vocales et au direct.
Vosk est un moteur de reconnaissance vocale hors ligne, développé par la société Alpha Cephei et bâti sur le moteur Kaldi, très léger, qui fonctionne en flux continu : il transcrit à mesure que l'on parle, sur un processeur modeste, avec des modèles de quelques dizaines de mégaoctets. Il ne rivalise pas avec les grands modèles sur la qualité du texte — il fait autre chose, et ce qu'il fait ne se remplace pas facilement. Ce guide détaille les chiffres publiés par le projet, y compris pour les deux modèles français officiels, avant de comparer honnêtement avec Whisper.
#Ce que Vosk fait autrement
Les modèles de transcription de référence traitent des fichiers : on leur donne un enregistrement complet, ils rendent un texte une fois le traitement terminé. Vosk traite un flux : il reçoit l'audio par petits morceaux et produit des résultats partiels puis définitifs au fil de la parole, avec une latence proche de zéro grâce à son API de streaming — c'est la fiche officielle du projet qui décrit cette « zero-latency response with streaming API » comme sa caractéristique centrale, au même titre que la taille de ses modèles.
Cette différence d'architecture explique tout le reste : des modèles minuscules, une exécution sur processeur sans effort, une empreinte mémoire compatible avec un Raspberry Pi ou un téléphone d'entrée de gamme, et une qualité de texte inférieure à celle des grands modèles sur de l'audio difficile ou bruité.
#Vosk en chiffres, y compris en français
Ton ChatGPT privé et gratuit sur ta machine en 1 heure — LM Studio, Ollama, Open WebUI, tes documents, sans cloud.
- Espace en ligne à vie
- PDF + fichiers
- Mises à jour à vie
Le projet est précis sur ce qu'il propose. Le dépôt officiel annonce une reconnaissance pour « 20+ languages and dialects », des liaisons pour Python, Java, Node.js, C#, C++, Rust et Go, et des modèles « portables » de 50 Mo, avec des modèles serveur nettement plus gros pour qui veut plus de précision. Le tout est publié sous licence Apache 2.0, une garantie utile quand un projet doit justifier ses dépendances open source devant un service juridique.
| Modèle | Taille | Taux d'erreur mot (plus bas = mieux) | Usage visé |
|---|---|---|---|
| vosk-model-small-fr-0.22 | 41 Mo | 23,95 (Common Voice) · 19,30 (MTEDX) · 27,25 (podcasts) | Android, iOS, Raspberry Pi |
| vosk-model-fr-0.22 | 1,4 Go | 14,72 (Common Voice) · 11,64 (MLS) · 13,10 (MTEDX) | Serveur, meilleure précision |
L'écart de taille (41 Mo contre 1,4 Go) donne un écart de précision net, avec un taux d'erreur mot qui passe presque du simple au double selon le jeu de test. C'est le compromis central de Vosk, chiffré plutôt que supposé : plus léger, il se trompe plus souvent ; c'est acceptable pour une commande vocale à vocabulaire restreint, beaucoup moins pour transcrire une interview. Au-delà des modèles officiels, le projet LinTO, porté par l'éditeur français Linagora, publie ses propres modèles français compatibles Vosk — un repère utile pour un projet francophone qui veut comparer plusieurs sources avant de choisir.
Le détail des quatre jeux de test (Common Voice, MTEDX, podcasts, MLS) mérite aussi d'être lu comme un avertissement méthodologique plutôt qu'un simple classement à retenir tel quel : le taux d'erreur mot varie du simple au double d'un jeu à l'autre pour un même modèle, entre 19,30 sur MTEDX et 27,25 sur les podcasts pour la version légère. Un audio de studio propre et une conversation captée dans du bruit ambiant ne donnent pas la même qualité, quel que soit le modèle choisi — une raison de plus pour tester sur des enregistrements représentatifs de l'usage réel plutôt que de se fier à un seul chiffre moyen publié sur une fiche produit.
#Le direct, sa vraie spécialité
- Latence
- Le texte apparaît pendant qu'on parle, ce qui autorise les commandes vocales et le sous-titrage en direct.
- Résultats partiels
- L'application peut réagir avant la fin de la phrase — indispensable pour un mot de réveil ou une commande courte.
- Empreinte
- 41 Mo pour le modèle français léger, contre 1,4 Go pour la version serveur et souvent plusieurs gigaoctets pour un grand modèle généraliste.
- Vocabulaire restreint
- On peut limiter la reconnaissance à une liste de mots attendus, ce qui augmente fortement la précision sur des commandes.
Ce dernier point est sous-estimé. Pour piloter une application par la voix, restreindre le vocabulaire à cinquante commandes possibles transforme un moteur moyen en moteur très fiable — là où un grand modèle généraliste continuera d'hésiter entre des homophones proches. C'est aussi ce que confirme la fiche officielle en citant la « reconfigurable vocabulary » parmi les fonctions natives du moteur, aux côtés de l'identification du locuteur, deux capacités que peu de moteurs de cette taille proposent nativement.
#Vosk ou Whisper
| Critère | Vosk | Whisper et dérivés |
|---|---|---|
| Mode | Flux continu | Fichier |
| Latence | Quasi nulle (API streaming) | Après traitement |
| Taille des modèles | 41 Mo à 1,4 Go selon la variante | Centaines de Mo à plusieurs Go |
| Matériel | Processeur modeste, embarqué | Processeur correct, GPU souhaitable |
| Qualité sur audio difficile | Correcte, mesurée (WER ≈ 15–28 selon le modèle et le test) | Nettement meilleure |
| Ponctuation et mise en forme | Limitée | Bonne |
| À choisir pour | Commandes vocales, direct, embarqué | Transcription de réunions, d'interviews, de vidéos |
Il n'y a pas de vainqueur général. Une chaîne sérieuse utilise souvent les deux : Vosk pour détecter une commande ou afficher un retour immédiat pendant que l'utilisateur parle, un modèle plus lourd comme Faster-Whisper pour produire la transcription définitive, plus fidèle, une fois l'enregistrement terminé et le calcul disponible.
#Les cas où il gagne
- 01Commande vocale d'une applicationVocabulaire restreint, latence minimale, aucune dépendance réseau.
- 02Sous-titrage en directRéunion interne, conférence, accessibilité en temps réel.
- 03Matériel embarquéUn nano-ordinateur ou un appareil autonome, là où un grand modèle ne tient pas — le projet cite explicitement Raspberry Pi et Android comme cibles.
- 04Confidentialité stricte sans GPUUn poste banal qui ne doit rien envoyer et n'a pas de carte graphique.
Ces quatre cas partagent un point commun : ils tolèrent une qualité de texte correcte plutôt qu'excellente, en échange d'une latence quasi nulle et d'une empreinte compatible avec du matériel modeste. Dès que la contrainte inverse s'impose — qualité maximale exigée, latence tolérable de quelques secondes — un modèle de fichier comme Faster-Whisper reprend l'avantage, ce qui explique pourquoi les deux outils cohabitent le plus souvent plutôt qu'ils ne se remplacent l'un l'autre dans une chaîne vocale complète et bien conçue.
#Formats audio et export du texte
En pratique, un projet de transcription ne se limite jamais au seul appel au moteur : il faut lire le format d'entrée reçu, le convertir si besoin, puis écrire le résultat dans un format exploitable en aval, et souvent gérer plusieurs fournisseurs d'enregistrement à la fois. Le pipeline documenté dans l'étude citée plus haut illustre ce cheminement complet : lecture de plusieurs formats audio courants (WAV, MP3, FLAC, OGG) via des modules Python de prétraitement, reconnaissance via le KaldiRecognizer de Vosk, puis export du texte obtenu vers un document structuré prêt à relire ou à archiver.
Ce détail compte parce que Vosk lui-même attend un flux audio dans un format précis en entrée (PCM mono, généralement 16 kHz), pas n'importe quel fichier tel quel. Un projet qui reçoit de l'audio hétérogène — enregistrements de téléphones, exports de visioconférence, fichiers compressés d'origines diverses — a donc presque toujours besoin d'une étape de conversion avant le moteur, et c'est souvent là, plutôt que dans le moteur lui-même, que se cachent les bugs de reconnaissance dégradée sans erreur explicite mentionnés plus haut dans ce guide.
#Personnaliser le modèle de langue
Sous le capot, la reconnaissance de Vosk s'appuie sur son propre KaldiRecognizer, dérivé du moteur de reconnaissance vocale Kaldi — un détail qui explique pourquoi le projet hérite de tout l'écosystème d'outils de personnalisation de Kaldi plutôt que de repartir de zéro à chaque nouvelle langue ou domaine. Un travail de recherche récent sur le sujet, construit autour d'un pipeline Vosk personnalisé, a mesuré l'effet concret d'un modèle de langue adapté : les modèles personnalisés réduisent le taux d'erreur mot, en particulier sur du vocabulaire technique, des accents marqués ou de l'audio bruité.
Pour un projet francophone, cela ouvre une piste concrète au-delà du choix entre le modèle léger et le modèle serveur : injecter un lexique métier (noms de produits, jargon interne, acronymes, noms propres locaux) dans le modèle de langue plutôt que de se contenter du vocabulaire générique. C'est plus de travail qu'un simple téléchargement, mais c'est le levier qui rapproche le plus un déploiement Vosk de la qualité d'un grand modèle sur un domaine précis, sans en payer le coût en calcul ni en latence.
#Mise en œuvre
Le fonctionnement est simple : on installe le paquet (pip install vosk en Python), on télécharge un modèle pour la langue voulue, on ouvre un flux audio, on pousse des morceaux dans le moteur, on lit les résultats partiels puis définitifs. Des liaisons existent pour Python, Java, Node.js, C#, C++, Rust et Go, et un serveur WebSocket permet de brancher une page web ou une application mobile sur un moteur qui tourne sur votre machine.
Deux points d'attention avant de mettre en production : la qualité dépend fortement du modèle de langue choisi — le tableau ci-dessus donne un ordre de grandeur, mais testez sur vos propres enregistrements avant de bâtir dessus — et le taux d'échantillonnage de l'audio doit correspondre à ce qu'attend le modèle, faute de quoi la reconnaissance se dégrade sans message d'erreur explicite.
- Assistant vocal local : la chaîne complète
- Transcrire des fichiers rapidement en local
- Faire répondre l'assistant à voix haute avec Kokoro
- Whisper + Ollama : transcription 100 % hors ligne
- Source : dépôt GitHub officiel de Vosk
- Source : catalogue des modèles Vosk, avec tailles et scores
- Source : étude sur la personnalisation du modèle de langue Vosk
#FAQ
Vosk est-il gratuit ?+
Faut-il une carte graphique ?+
Vosk ou Whisper ?+
Fonctionne-t-il en français, et avec quelle qualité ?+
Peut-on limiter le vocabulaire reconnu ?+
Quelle taille de modèle choisir pour un projet embarqué ?+
Peut-on améliorer la précision sans changer de modèle ?+
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.