Pourquoi ce sujet est important
Un voice agent n’est pas un chatbot auquel on ajoute un microphone. La parole arrive en continu, les utilisateurs hésitent, se coupent, changent de sujet et attendent une réponse presque immédiate. L’architecture doit donc gérer audio, tours de parole, outils métier et interruption comme un système temps réel.
Le pipeline de bout en bout
Le client capture l’audio et l’envoie par WebRTC ou WebSocket. Un composant de détection d’activité vocale repère début et fin de parole. Le STT produit des transcriptions intérimaires puis finales. Le gestionnaire de dialogue construit le contexte, appelle le LLM et contrôle les outils. Le TTS diffuse la réponse dès qu’un segment est stable.
Définir les tours de parole
Une pause ne signifie pas toujours que l’utilisateur a terminé. Combinez VAD, ponctuation ou événement de finalisation du STT et temporisation. Les résultats intérimaires servent à anticiper, mais une action métier ne doit partir qu’après confirmation suffisante. Conservez un état explicite : écoute, réflexion, parole, interruption et transfert humain.
Réduire la latence
Mesurez séparément capture, réseau, finalisation STT, premier token LLM et premier octet TTS. Commencez l’appel LLM sur une transcription stable, diffusez par phrases et préconnectez les services. Réduisez le contexte au nécessaire. Optimiser un seul composant ne suffit pas si la moitié du délai vient de la détection de fin de tour.
Gérer le barge-in
Quand l’utilisateur reprend la parole, interrompez immédiatement la lecture, annulez le flux TTS et signalez au gestionnaire de dialogue quelle partie a réellement été entendue. Évitez d’ajouter au contexte une réponse complète qui n’a jamais été jouée. Testez doubles interruptions et bruit de fond.
Encadrer les outils
Le LLM propose un appel ; le backend authentifie, autorise et valide les arguments. Une prise de rendez-vous, un paiement ou une modification de dossier exige récapitulatif et confirmation. Rendez les outils idempotents et bornez nombre d’étapes, durée et coût.
Sécurité et données
Informez que la voix est synthétique lorsque nécessaire. Définissez consentement, durée de conservation de l’audio et accès aux transcriptions. Masquez secrets et PII dans les traces. Prévoyez un transfert humain et une alternative clavier pour l’accessibilité.
Tableau de décision
| Besoin | Choix courant | Point à tester |
|---|---|---|
| Navigateur temps réel | WebRTC | Réseau mobile et écho |
| Prototype serveur | WebSocket | Backpressure et reconnexion |
| STT | Streaming | Français, bruit et finalisation |
| TTS | Streaming faible latence | Premier octet et barge-in |
| Action sensible | Confirmation humaine | Idempotence et audit |
Exemple concret
Un agent de prise de rendez-vous reçoit “mardi après-midi”. Le STT finalise le tour, le LLM demande les créneaux disponibles, puis propose deux options. L’utilisateur coupe la première phrase pour choisir 16 h. Le système annule le TTS, reprend l’écoute et demande une confirmation complète avant d’écrire dans l’agenda.
Les erreurs fréquentes
- attendre la transcription complète avant tout traitement
- ajouter au contexte une réponse TTS interrompue
- laisser le modèle autoriser lui-même une action
- conserver tout l’audio par défaut
- ne tester que dans un bureau silencieux
- oublier transfert humain et clavier
Checklist de mise en production
- [ ] Latence par composant instrumentée
- [ ] États de conversation explicites
- [ ] Barge-in testé
- [ ] Outils idempotents et autorisés
- [ ] Timeouts et budgets configurés
- [ ] Audio et transcriptions minimisés
- [ ] Fallback et transfert humain disponibles
- [ ] Tests réseau, bruit et accents réalisés
FAQ
WebRTC ou WebSocket ?
WebRTC gère mieux média, écho et réseau navigateur. WebSocket simplifie certains prototypes et flux serveur.
Faut-il un modèle vocal temps réel unique ?
Pas nécessairement. Une chaîne modulaire facilite le choix des fournisseurs et le diagnostic ; un modèle unifié peut réduire certaines latences.
Comment viser une conversation naturelle ?
Mesurez d’abord le délai au premier audio, la fin de tour et les interruptions, puis travaillez le style de voix.
Que journaliser ?
Durées, versions, événements de tours et résultats d’outils, avec redaction des contenus sensibles.