Introduction
Dans ce projet, nous avons construit un agent IA à contrôle vocal capable de convertir des commandes vocales en actions exécutables telles que la génération de code, la création de fichiers et la synthèse de texte. L'objectif était de combiner le traitement de la parole, les modèles de langage et l'exécution d'outils dans un pipeline unique ressemblant à un assistant IA du monde réel.
Contexte Technique
Le système suit un pipeline simple mais puissant : Entrée Audio → Reconnaissance de la Parole → Détection d'Intentions → Exécution d'Outils → Sortie. Chaque étape est modulaire, ce qui rend le système facile à étendre et à déboguer. Nous avons utilisé AssemblyAI pour la reconnaissance de la parole, Groq (llama-3.1-8b-instant) pour le modèle de langage, Streamlit pour le frontend et Python pour le backend.
L'utilisateur télécharge un fichier audio, qui est transcrit en texte à l'aide d'AssemblyAI. Le texte transcrit est ensuite envoyé à un modèle de langage hébergé sur Groq, qui analyse la commande et retourne une sortie structurée. Cela permet au système de prendre en charge plusieurs actions dans une seule commande.
Analyse et Implications
Le système exécute des actions telles que la génération de code, la création de fichiers, la synthèse de texte et les réponses de chat général. Toutes les opérations de fichiers sont restreintes à un répertoire de sortie sécurisé. L'interface utilisateur est construite à l'aide de Streamlit et affiche le texte transcrit, l'intention détectée, les résultats d'exécution et l'historique de la session.
Le système prend en charge plusieurs actions dans une seule entrée et demande une confirmation d'exécution avant les opérations de fichiers, ce qui ajoute une couche de sécurité et de contrôle. En cas d'échec de la détection d'intention, le système bascule vers une classification basée sur des mots clés au lieu de planter.
Perspective
Ce projet démontre comment la parole, les modèles de langage et la logique d'exécution peuvent être combinés pour construire un agent IA pratique. Il met également en évidence les compromis entre les approches locales et basées sur les API, et l'importance de choisir les bons outils en fonction des contraintes du système. Les prochaines étapes pourraient inclure l'ajout d'une entrée de microphone en temps réel, d'une mémoire persistante entre les sessions et de réponses en continu, ainsi que des intégrations d'outils plus avancées.