Reconnaissance vocale et synthèse de parole

Dans cet article, nous allons explorer comment créer une application vocale simple en Python qui peut répondre à vos commandes vocales. Elle utilise des bibliothèques populaires comme pyaudio, pyttsx3, vosk, et fuzzywuzzy pour accomplir plusieurs tâches telles que donner l’heure actuelle, afficher la date, ou même fermer l’application.

Objectif de l’application

L’objectif principal de cette application est de permettre à l’utilisateur d’interagir avec un programme en utilisant la voix. Grâce à la reconnaissance vocale, l’application écoute les commandes de l’utilisateur et répond en conséquence. Nous allons notamment implémenter des fonctions qui répondent à des requêtes comme :

  • « Quelle heure est-il ? »
  • « Quelle est la date du jour ? »
  • « Arrêter l’application »

L’application utilise également un moteur de synthèse vocale pour répondre oralement à l’utilisateur, et gère les erreurs en cas de mauvaise commande.

Bibliothèques utilisées

Voici les bibliothèques principales que nous allons utiliser :

  1. pyaudio : Cette bibliothèque permet de gérer l’audio, ici utilisée pour capter la voix via le microphone.
  2. pyttsx3 : Utilisée pour la synthèse vocale. Elle permet de transformer un texte en parole.
  3. vosk : C’est une bibliothèque de reconnaissance vocale qui convertit l’audio en texte.
  4. fuzzywuzzy : Une bibliothèque pour comparer les chaînes de caractères et déterminer la meilleure correspondance entre la commande vocale et les intentions prédéfinies.

Fonctionnement de l’application

  1. Initialisation du moteur de synthèse vocale
    Nous commençons par initialiser le moteur de synthèse vocale (TTS) avec pyttsx3. Cela permettra à l’application de répondre vocalement.
  2. Reconnaissance vocale avec Vosk
    Nous utilisons la bibliothèque Vosk pour la reconnaissance vocale. Elle permet de capter l’audio du microphone et de le convertir en texte. Ce texte est ensuite comparé aux intentions prédéfinies.
  3. Traitement des intentions
    Nous avons défini un dictionnaire des intentions, qui associe des phrases à des fonctions spécifiques comme afficher l’heure, la date ou quitter l’application.
  4. Interaction avec l’utilisateur
    L’application écoute continuellement les commandes vocales et répond en conséquence. Elle peut également fermer l’application si l’utilisateur le demande.

Les modèles

Les modèles peuvent être téléchargés https://alphacephei.com/vosk/models

Nous avons effectués les tests avec les deux modèles en français:

French Size   
vosk-model-small-fr-0.2241M23.95 (cv test) 19.30 (mtedx) 27.25 (podcast)Lightweight wideband model for Android/iOS and RPiApache 2.0
vosk-model-fr-0.221.4G14.72 (cv test) 11.64 (mls) 13.10 (mtedx) 21.61 (podcast) 13.22 (voxpopuli)Big accurate model for serversApache 2.0

Pour les installer , dézipper les fichiers et copier les répertoires dans le répertoire de travail:

Dépendances

Pour faire fonctionner l’application vocale que nous avons développée, vous devez installer les dépendances suivantes avec pip. Voici la liste des bibliothèques nécessaires et la commande pour les installer :

  1. pyaudio : Permet de capturer l’audio à partir du microphone.
  2. pyttsx3 : Pour la synthèse vocale (convertir du texte en parole).
  3. vosk : Pour la reconnaissance vocale.
  4. fuzzywuzzy : Pour effectuer des comparaisons de texte avec une méthode de correspondance floue.

Exécutez la commande suivante dans votre terminal pour installer ces dépendances :

Shell

Remarques supplémentaires :

  • pyaudio : Peut nécessiter l’installation de certains prérequis système, comme les bibliothèques portaudio. Si vous rencontrez des problèmes d’installation sur certaines plateformes, vous pouvez consulter les solutions spécifiques à votre système d’exploitation.
  • vosk : Vous devrez télécharger le modèle de reconnaissance vocale (par exemple, vosk-model-small-fr-0.22) et le spécifier dans le code pour qu’il fonctionne correctement.
  • fuzzywuzzy : La version de base est suffisante, mais pour de meilleures performances avec de grands ensembles de données, vous pouvez aussi installer python-Levenshtein.

Si vous souhaitez également installer python-Levenshtein pour accélérer les opérations de correspondance de texte, vous pouvez le faire avec la commande suivante :

Shell

Le code complet

Python

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *