IRIS — Assistant Vocal à Intelligence Visuelle

Problème
Les assistants vocaux grand public souffrent de deux défauts majeurs qui les rendent inutilisables dans un contexte professionnel ou technique : une latence trop élevée qui casse le naturel de la conversation, et une totale cécité face au contexte visuel de l'utilisateur.
Quand on débogue du code, qu'on analyse un document ou qu'on navigue dans une interface complexe, pouvoir dire "explique-moi ce qui est affiché là" ou "qu'est-ce qui ne va pas dans ce bout de code ?" est d'une valeur immense. Aucun assistant vocal classique ne permettait ça de manière fluide et réactive.
Solution proposée
IRIS (Interactive Realtime Intelligence System) est un assistant IA multimodal conçu pour combler exactement ce vide. Il repose sur une architecture pensée pour la performance temps réel, en combinant les meilleurs outils disponibles à chaque étape du pipeline voix-vision :
- Gemini 3 Flash Preview comme cerveau central, capable de traiter simultanément du texte, de l'audio et des frames visuelles
- LiveKit comme couche de transport WebRTC, assurant un routage audio/vidéo ultra-faible latence entre le navigateur et l'agent Python
- Deepgram Nova-3 pour la transcription vocale en streaming, avec une précision remarquable même sur des termes techniques
- Cartesia Sonic-3 pour la synthèse vocale, restituant une voix naturelle et expressive sans délai perceptible
L'interface utilisateur adopte un style glassmorphique soigné, construite avec les composants natifs de LiveKit pour React, pensée pour disparaître et laisser toute la place à l'interaction.
Étapes de réalisation
- Architecture du pipeline voix — Mise en place de la chaîne STT → LLM → TTS avec LiveKit Agents en Python, en s'assurant que chaque maillon ne bloque pas les autres grâce au streaming token-par-token.
- Intégration multimodale — Connexion de la capture d'écran (Screen Share API) au flux vidéo LiveKit, puis passage des frames à Gemini pour analyse contextuelle à la demande.
- Token server FastAPI — Développement d'un serveur léger chargé de générer et distribuer les tokens de connexion LiveKit au frontend, séparé logiquement de l'agent pour plus de clarté et de scalabilité.
- Frontend React + Vite — Construction de l'UI avec les LiveKit Components, personnalisation du design en glassmorphisme, et gestion des états de session (idle, listening, thinking, speaking).
- Optimisation de la latence — Tuning des paramètres VAD (Voice Activity Detection) de Deepgram et des paramètres de buffering Cartesia pour atteindre une latence end-to-end inférieure à la seconde.
- Self-hosting LiveKit — Déploiement d'un serveur LiveKit auto-hébergé pour garder le contrôle total sur le routage des flux et éviter toute dépendance cloud critique.
Difficultés surmontées
La principale difficulté a été la synchronisation des flux multimodaux. Intégrer des frames vidéo dans une conversation vocale en cours sans interrompre le flux audio ni introduire de latence supplémentaire perceptible a nécessité une gestion fine des priorités dans le pipeline LiveKit Agents.
L'autre défi majeur était la gestion de la Voice Activity Detection : trouver le bon équilibre entre réactivité (ne pas couper l'utilisateur) et précision (ne pas déclencher une réponse sur un bruit de fond) a demandé plusieurs itérations de calibration avec Deepgram Nova-3.
Enfin, faire cohabiter proprement le Token Server et l'Agent comme deux processus distincts — tout en les gardant cohérents lors des reconnexions du client — a exigé une attention particulière à la gestion du cycle de vie des sessions LiveKit.
Résultat
IRIS démontre qu'il est possible de construire un assistant vocal professionnel, multimodal et à faible latence en combinant des outils open-source et des APIs spécialisées, sans dépendre d'un écosystème propriétaire fermé. La qualité d'interaction atteinte — fluidité de la voix, pertinence des réponses visuelles, réactivité générale — rivalise avec les solutions commerciales les plus avancées, tout en restant entièrement contrôlable et déployable en self-hosted.