Free Offline Speech Recognition with Vosk

Comment utiliser la librairie Vosk pour la reconnaissance de la parole gratuitement et en mode offline

Bernardin Ligan
3 min readSep 24, 2022
Vosk Logo (Sinologic.net)

Le nombre d’applications embarquant des fonctionnalités de traitement de la voix grâce à l’intelligence artificielle (Speech Recognition, Speech to text, text to Speech etc ) a connu une explosion ces dernières années notamment avec l’essor des assistants virtuels tels que Google Assistant et Amazon Alexa et l’augmentation du nombre d’objets connectés.

Je travaille d’ailleurs actuellement sur un projet destiné à aider les personnes à mobilité réduite à effectuer des tâches basiques sur un ordinateur grâce à leur voix. Bien qu’il existe de nombreuses librairies et API permettant de faire de la reconnaissance de la parole, je me suis vite confronté au tout début du projet à un problème : la plupart de ces outils exige une connexion à internet et présente des temps de latences lorsque cette dernière n’est pas de bonne qualité. Aussi le reste (les librairies ne nécessitant pas internet) pouvant fonctionner en mode offline ne fournissent pas toujours un résultat de bonne qualité.

Quel outil utilisé alors pour du Speech Recognition de bonne qualité et en offline ?

Après plusieurs recherches je suis tombé sur Vosk , une boîte à outil Open Source de reconnaissance vocale développée par Alpha Cephei.

Elle supporte plus de 20 langues et dialectes (Anglais, anglais indien, allemand, français, espagnol, portugais, chinois, russe, turc, vietnamien, italien, néerlandais, catalan, arabe, grec, farsi, philippin, ukrainien, kazakh, suédois, japonais, espéranto, hindi, tchèque, polonais) et peut fonctionner en offline.

Par ailleurs elle est compatible avec de nombreux langages de programmation tels que C#, Java, Javascript etc et peut fonctionner sur des appareils légers comme Raspberry Pi, Android, iOS.

Voyons donc comment l’utiliser pour du Speech-to-text à travers le microphone de l’ordinateur.

Prérequis

  • Installer et activer un environnement virtuel python

python3 -m venv env

source env/bin/activate

  • Installer les librairies portaudio et pyaudio qui sont utiles pour la manipulation du microphone

sudo apt-get install portaudio19-dev

pip install pyaudio

  • Installer Vosk

pip install vosk

Speech to Text

Vosk dispose d’une liste de modèles pré-entraînés selon la langue que vous souhaitez utiliser. Allez sur le site suivant et télécharger l’un des modèles disponible pour la langue française.

List des modèles disponibles

NB : Les modèles de grande taille ont de meilleurs performances mais l’inférence sera beaucoup plus longue avec ces derniers.

Ensuite décompressez le fichier télécharger dans votre répertoire de travail puis copiez le code suivant dans votre éditeur de texte.

Dans le code on a instancié le modèle (changez le nom en fonction du fichier que vous avez téléchargé) puis ouvert un flux sur le microphone afin de pouvoir récupérer la voix en temps réel. Après le lancement du script, certaines configurations s’effectuent automatiquement dans le terminal puis le microphone passe en mode “On”. Dès que les configurations s’arrêtent dans le terminal, vous pouvez commencez à parler. Votre voix sera récupérée à travers le microphone et le modèle la convertira en texte. Le programme restera actif tant vous n’aurez pas dit “fin”.

Conclusions

Vosk est une bibliothèque open source de reconnaissance vocale dont le grand avantage par rapport à ses concurrents est sa capacité à fonctionner en offline avec des résultats acceptables. Cela pourrait être très utile si vous voulez créer une application embarquant la fonction de speech recognition à destination de personnes ayant accès à peu ou pas internet.

Si vous voulez aller plus loin, je vous invite à visiter ce projet sur mon compte Github.

Merci de m’avoir lu !

  • Si vous avez aimez l’article, suivez moi sur Medium pour plus de contenus relatifs à l’IA et la Data Science.
  • Vous pouvez également rejoindre mon réseau sur Linkedin

--

--