Aller au contenu

Résumé du webinaire : Donnez une voix humaine à votre chatbot textuel

Publié
Dernière mise à jour

ÉcouterÉcouter cet article

Les agents conversationnels sont devenus un élément standard de la pile logicielle des entreprises. La plupart des entreprises en ont un ou en développent un. Ce que moins d'entre elles ont résolu, c'est le cas où un utilisateur préfère simplement parler.

La voix transforme l'interaction bien au-delà de la simple commodité. Par leur intonation, les utilisateurs expriment frustration, urgence et confusion, autant de nuances que le texte efface entièrement. Un client qui écrit « ma commande n'est pas arrivée » et un client qui le dit avec une anxiété perceptible n'envoient pas les mêmes signaux — et l'agent qui ne peut lire que la transcription ne dispose que de la moitié des informations.

La question que se posent désormais la plupart des équipes n'est pas de savoir s'il faut ajouter la voix, mais comment le faire sans reconstruire tout ce qui fonctionne déjà.

Lors de l'atelier en direct : donnez à votre chatbot textuel une voix humaine, Paul Asjes (Developer Experience), Bhargavi Bhatt (Customer Experience) et Fergal Burnett (Product Marketing, ElevenAPI) ont présenté les réalités techniques de l'ajout de la voix à un agent existant et le fonctionnement concret d'une intégration.

Pourquoi développer avec la voix est plus complexe qu'il n'y paraît

L'un des principaux défis est la gestion des tours de parole. Les humains savent qu'une personne a fini de parler grâce à l'intonation, au rythme et au contexte. Or, la détection d'activité vocale, l'approche standard, ne détecte que le silence.

Il en résulte souvent un système qui traite chaque pause comme une invitation à prendre la parole : il interrompt, coupe la parole en plein milieu d'une idée et interprète les hésitations naturelles comme des phrases terminées.

Il fonctionne techniquement, mais échoue sur le plan conversationnel.

Le contexte constitue l'autre moitié du problème. Transmettre l'historique de la conversation à un LLM à chaque tour est nécessaire, mais insuffisant. Les mêmes mots prennent un sens différent selon la manière dont ils sont prononcés : « je vais bien » dit avec soulagement et « je vais bien » dit avec frustration produisent la même transcription, mais pas la même interaction. Un système vocal qui ignore cette dimension sonnera toujours légèrement faux, quelle que soit la qualité des modèles qui le composent.

S'ajoute également la charge d'ingénierie. Les équipes qui gèrent leur propre orchestration vocale doivent assurer en continu la logique de gestion des tours de parole, le traitement des interruptions et le profilage de la latence. Ce n'est pas un développement ponctuel.

Comment ajouter la voix à un agent existant

L'approche la plus simple repose sur une architecture à double WebSocket. 

  1. Une connexion relie le client à l'API ElevenLabs, et une autre votre serveur à l'API ElevenLabs
  2. L'utilisateur parle dans son microphone ; l'audio est envoyé à l'API ElevenLabs, où il est transcrit puis transmis à votre serveur
  3. Votre serveur transmet au LLM l'intégralité de l'historique de conversation reçu de l'API ElevenLabs, puis la réponse en streaming est renvoyée pour synthèse audio
  4. Ce processus peut commencer avant que le LLM ait fini de générer sa réponse, afin de maintenir une faible latence jusqu'au premier octet 

Le point d'intégration clé est la méthode onTranscript , qui se déclenche à la fin de chaque tour et transmet l'historique complet de la conversation au LLM. 

Une contextualUpdate au démarrage de la session reprend ce qui s'est passé dans la partie textuelle de la conversation avant que l'utilisateur ne passe à la voix. C'est ce qui permet à un même agent de fonctionner dans les deux modalités sans perdre le contexte.

speech-engine

Quelques points à garder à l'esprit lors du développement :

  1. Le choix du LLM est plus important pour la voix que pour le chat. Les modèles de raisonnement approfondi introduisent des pauses qui, dans l'audio, donnent l'impression d'une hésitation peu naturelle, même si la qualité de la réponse est meilleure. Pour la voix en temps réel, les modèles plus rapides offrent presque toujours une meilleure qualité perçue.
  2. Préférez WebRTC aux WebSockets pour l'audio. WebRTC intègre l'annulation de l'écho et la réduction du bruit, particulièrement importantes sur mobile ou dans les environnements bruyants. Utiliser des WebSockets pour le transport audio implique de gérer cela vous-même.
  3. Ne demandez pas aux utilisateurs de choisir une langue. Cela rompt le flux conversationnel. Détecter la langue dès les premières secondes de parole et la verrouiller est une meilleure approche ; cela permet aussi de changer de langue naturellement, sans rien demander à l'utilisateur.
  4. Dissociez votre modèle de gestion des tours de parole de votre LLM. Utiliser le LLM pour déterminer quand un utilisateur a fini de parler ajoute de la latence et des coûts à chaque tour. Un modèle dédié à la gestion des tours de parole le fait plus rapidement et avec davantage de précision ; il mérite d'être traité comme un composant distinct de l'architecture.

Quelle part de l'infrastructure gérer

La bonne réponse dépend de l'existant. Si vous disposez d'un agent conversationnel opérationnel, lui ajouter une couche vocale, tout en conservant votre LLM, votre orchestration et votre logique métier, constitue généralement l'option la plus rapide et la moins risquée. 

Vous ne reconstruisez rien. Vous ajoutez une interface audio à un système qui fonctionne déjà.

Si les besoins couvrent aussi la téléphonie, la gestion des canaux de déploiement, les tests intégrés et l'analytique, confier une plus grande part de la pile à une plateforme d'agents vocaux est pertinent. Ces deux approches ne s'excluent pas : les équipes peuvent commencer avec une couche vocale légère, puis intégrer les capacités de la plateforme à mesure que le cas d'usage évolue.

Démo : ajouter la voix à un chatbot existant

Cette démo suit un utilisateur en pleine conversation avec un chatbot textuel de planification de voyage, à la recherche de recommandations de quartiers et de spécialités culinaires pour un séjour au Japon.

Ce que nous avons montré :

  • Le chatbot a été enrichi d'une couche vocale, sans aucune modification de l'agent sous-jacent.
  • L'utilisateur est passé de la saisie au dialogue vocal en pleine conversation ; l'agent a conservé l'intégralité du contexte entre les deux modalités.
  • L'utilisateur a parlé néerlandais ; l'agent a détecté automatiquement le changement de langue
  • Lorsque l'agent a été interrompu et qu'il lui a été demandé de repasser à l'anglais en milieu de phrase, il l'a fait, puis a terminé sa réponse avec un léger accent néerlandais, sans y avoir été invité.
  • Tout au long de la conversation, la détection des interruptions a permis à l'utilisateur de parler naturellement par-dessus l'agent, sans que celui-ci termine son tour.

Pourquoi c'est important : 

La démo ne présentait pas un agent vocal conçu spécifiquement à cette fin. Elle présentait un agent textuel déjà opérationnel, auquel une couche vocale avait été ajoutée. La gestion du contexte, la détection de la langue et le comportement face aux interruptions provenaient tous de cette couche vocale ; l'agent textuel sous-jacent n'avait pas été modifié. 

Regardez la session complète

Regardez le webinaire complet ici.

ElevenLabs workshop on human-like chatbot voices, hosted by Paul Asjes, Bhargavi Bhatt, and Fergal Burnett.

Articles similaires

Créez avec l'audio IA de la plus haute qualité