SortieAPI / Produit · Prêt à l'emploiHabr AI→ original

App AI Assistant lance un assistant vocal sur PC fonctionnant à 100 % en local

App AI Assistant assemble sous Windows une chaîne vocale entièrement locale : Vosk détecte la parole et les interruptions, Faster-Whisper affine la transcription, Gemma 3 formule la réponse et Silero la prononce. Les composants communiquent via HTTP et WebSocket, ce qui permet de brancher séparément la reconnaissance, la synthèse et le LLM à vos propres applications. Le code est ouvert sous licence MIT, et l'installateur prépare lui-même l'environnement et vérifie les fichiers téléchargés.

Traité par IA depuis Habr AI ; édité par Hamidun News
App AI Assistant lance un assistant vocal sur PC fonctionnant à 100 % en local
Source : Habr AI. Collage: Hamidun News.
Écouter l'article
Fiche synthèse et chiffres clés
ParamètreDonnées
Source primaireHabr AI ↗
Rédacteur en chef
Chiffre clé #1L'assistant fonctionne sans API cloud, sans abonnement et sans envoi des conversations à l'extérieur.
Chiffre clé #2Les services STT, TTS et LLM sont accessibles séparément à n'importe quel client HTTP.
Chiffre clé #3Seuls Windows 10/11 sont pris en charge pour l'instant, et un casque est nécessaire pour dialoguer.

Un assistant vocal local n'est souvent séduisant que sur un schéma. En pratique, le développeur se retrouve avec un enchevêtrement de reconnaissance vocale, de modèle local, de synthèse vocale, de files audio et de logique d'interruption. App AI Assistant tente de transformer cet enchevêtrement en un produit de bureau fonctionnel : l'utilisateur parle, le système reconnaît la phrase, Gemma 3 en local prépare la réponse, Silero commence à la prononcer par fragments et, dès qu'une nouvelle sollicitation survient, la lecture s'arrête.

Le projet fonctionne sans API cloud et est publié sous licence MIT. Il est donc utile non seulement comme « Jarvis » prêt à l'emploi, mais aussi comme exemple d'ingénierie : chaque module peut être lancé indépendamment et connecté à des applications en Python, C#, Java, JavaScript ou Go.

Comment est conçue la chaîne vocale

L'auteur a divisé le système en un orchestrateur graphique et trois services : srv_stt pour la reconnaissance, srv_llm pour la génération de réponses et srv_tts pour la synthèse vocale. Ils échangent des données via HTTP et WebSocket. Cette approche permet de changer d'interface ou de n'utiliser que le composant voulu, sans réécrire tout l'assistant.

La reconnaissance repose sur l'association de Vosk et de Faster-Whisper. Vosk détecte rapidement le début d'une nouvelle réplique et permet d'implémenter le barge-in, c'est-à-dire l'interruption de l'assistant à la voix. Faster-Whisper produit ensuite une transcription finale plus précise. La réponse est générée par Gemma 3 via llama-cpp-python, et Silero convertit le texte en parole. Avant la synthèse, une couche distincte normalise les nombres et les abréviations, sur lesquels les moteurs vocaux se trompent souvent.

Voici un exemple simple. L'utilisateur demande d'ouvrir son dossier de travail. Le module de reconnaissance transmet le texte à l'orchestrateur, le modèle choisit un scénario configuré et l'assistant lance le script Python correspondant. Si l'utilisateur prononce aussitôt une autre commande, Vosk détecte la parole, la lecture s'arrête et un nouveau cycle commence. Un bref résumé des dialogues précédents peut être conservé entre les sessions.

Pourquoi les services sont séparés

Chaque composant est disponible comme serveur HTTP autonome. Le développeur d'une application C# peut ne lancer que srv_stt et srv_tts pour ajouter une interface vocale. Une application Java peut interroger srv_llm comme une API locale. C'est plus pratique qu'une intégration monolithique, où le remplacement d'un modèle ou d'un moteur de reconnaissance affecte tout le produit.

Pour l'installation, l'auteur a préparé un assistant dédié. Il télécharge des versions portables de Python et de Git, vérifie les fichiers par SHA-256, crée des environnements virtuels, installe les dépendances et génère les exécutables via PyInstaller. Docker n'est volontairement pas utilisé : le public cible est composé de propriétaires de PC Windows ordinaires, pour qui WSL2, la virtualisation et Docker Desktop constitueraient un obstacle supplémentaire.

Le package inclut également infrastructure2, un ensemble commun de modules pour la journalisation, les clients HTTP, les paramètres, la gestion des processus, le streaming de données et la génération d'exécutables. Ce n'est plus une partie indispensable de l'assistant vocal, mais le dépôt montre comment l'auteur réduit la duplication entre plusieurs projets Python.

Limites et enseignements pratiques

Le projet ne cible pour l'instant que Windows 10 et 11. La prise en charge des modèles est liée au modèle de prompt de Gemma, et l'annulation d'écho n'est pas terminée. Le son des haut-parleurs peut donc retourner dans le microphone et être interprété comme une nouvelle parole ; l'auteur recommande d'utiliser un casque. Le dépôt infrastructure2 est lui aussi encore peu documenté.

Les développeurs ont intérêt à voir App AI Assistant non comme un remplaçant universel des assistants cloud, mais comme un banc d'essai prêt à l'emploi pour une interface vocale locale. Sa force réside dans une chaîne transparente de composants accessibles et dans la possibilité de ne récupérer que le STT, le TTS ou le LLM. Avant tout déploiement, il importe de vérifier la latence et la consommation de mémoire sur l'ordinateur cible, d'examiner les commandes vocales autorisées et d'isoler l'exécution des scripts utilisateur. Le fonctionnement local évite l'envoi des conversations vers le cloud, mais ne rend pas à lui seul l'exécution des commandes sûre.

Dossier

Questions clés sur cet article

Comment est conçue la chaîne vocale?

L'auteur a divisé le système en un orchestrateur graphique et trois services : srv_stt pour la reconnaissance, srv_llm pour la génération de réponses et srv_tts pour la synthèse vocale. Ils échangent des données via HTTP et WebSocket. Cette approche permet de changer d'interface ou de n'utiliser que le composant voulu, sans réécrire tout l'assistant. La reconnaissance repose sur l'association de Vosk et de Faster-Whisper.

Pourquoi les services sont séparés?

Chaque composant est disponible comme serveur HTTP autonome. Le développeur d'une application C# peut ne lancer que srv_stt et srv_tts pour ajouter une interface vocale. Une application Java peut interroger srv_llm comme une API locale. C'est plus pratique qu'une intégration monolithique, où le remplacement d'un modèle ou d'un moteur de reconnaissance affecte tout le produit. Pour l'installation, l'auteur a préparé un assistant dédié.

Que sait-on sur Limites et enseignements pratiques ?

Le projet ne cible pour l'instant que Windows 10 et 11. La prise en charge des modèles est liée au modèle de prompt de Gemma, et l'annulation d'écho n'est pas terminée. Le son des haut-parleurs peut donc retourner dans le microphone et être interprété comme une nouvelle parole ; l'auteur recommande d'utiliser un casque. Le dépôt infrastructure2 est lui aussi encore peu documenté.

ZK
Zhemal Khamidun — CPO d'Alpina Digital, product manager d'AlpinaGPT. Conçoit des produits IA depuis 2019. Hamidun News est un projet personnel devenu un agrégateur en production avec plus de 6 000 lecteurs.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
Qu'en pensez-vous ?
Chargement des commentaires…