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 :
- pyaudio : Cette bibliothèque permet de gérer l’audio, ici utilisée pour capter la voix via le microphone.
- pyttsx3 : Utilisée pour la synthèse vocale. Elle permet de transformer un texte en parole.
- vosk : C’est une bibliothèque de reconnaissance vocale qui convertit l’audio en texte.
- 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
- Initialisation du moteur de synthèse vocale
Nous commençons par initialiser le moteur de synthèse vocale (TTS) avecpyttsx3
. Cela permettra à l’application de répondre vocalement. - 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. - 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. - 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.22 | 41M | 23.95 (cv test) 19.30 (mtedx) 27.25 (podcast) | Lightweight wideband model for Android/iOS and RPi | Apache 2.0 |
vosk-model-fr-0.22 | 1.4G | 14.72 (cv test) 11.64 (mls) 13.10 (mtedx) 21.61 (podcast) 13.22 (voxpopuli) | Big accurate model for servers | Apache 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 :
- pyaudio : Permet de capturer l’audio à partir du microphone.
- pyttsx3 : Pour la synthèse vocale (convertir du texte en parole).
- vosk : Pour la reconnaissance vocale.
- 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 :
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 :