
Créer un agent vocal efficace pour notre documentation
Résolution réussie de >80% des demandes des utilisateurs
La latence fait la différence entre une bonne application de Conversational AI et une excellente
Pour la plupart des applications, la latence est un souci mineur. Mais pour la Conversational AI, c’est ce qui distingue les bonnes applications des meilleures.
Pour commencer, le but de la Conversational AI est ambitieux : offrir la même sensation, le même ton et la même voix qu’une conversation humaine, tout en dépassant l’intelligence humaine. Pour y arriver, une application doit pouvoir dialoguer sans longs silences. Sinon, le réalisme disparaît.
Le défi de la latence en Conversational AI est accentué par sa structure en plusieurs étapes. La Conversational AI repose sur une série de processus intermédiaires, tous à la pointe dans leur domaine. Chacun de ces processus ajoute de la latence.
En tant que spécialiste de la voix générative, nous avons passé beaucoup de temps à étudier comment réduire la latence pour la Conversational AI. Aujourd’hui, nous partageons ce que nous avons appris, en espérant que cela aidera ceux qui souhaitent créer des applications de Conversational AI.
Chaque application de Conversational AI implique au moins quatre étapes : speech-to-text, gestion des tours de parole, traitement du texte (LLM), et text-to-speech. Même si ces étapes sont exécutées en parallèle, chacune ajoute un peu de latence.
La gestion de la latence en Conversational AI est particulière. Beaucoup de problèmes de latence se résument à un seul point de blocage. Par exemple, lorsqu’un site web fait une requête à une base de données, la latence réseau domine, avec une contribution minime de la latence du backend. Mais pour la Conversational AI, les différentes latences ne varient pas énormément. Elles sont inégales, mais chaque composant a un impact similaire. Au final, la latence est la somme de toutes ces parties.
L’« oreille » du système
La reconnaissance automatique de la parole (ASR), parfois appelée speech-to-text (STT), consiste à convertir l’audio parlé en texte écrit.
La latence de l’ASR n’est pas le temps nécessaire pour générer le texte, car le processus de speech-to-text fonctionne en arrière-plan pendant que l’utilisateur parle. La latence correspond plutôt au temps entre la fin de la parole et la fin de la génération du texte.
.webp&w=3840&q=95)
Ainsi, des interventions courtes ou longues peuvent entraîner une latence similaire pour l’ASR. La latence varie selon les implémentations (dans certains cas, il n’y a aucune latence réseau car le modèle est intégré au navigateur, comme sur Chrome/Chromium). Le modèle open source standard, Whisper, ajoute plus de 300 ms de latence. Notre implémentation personnalisée ajoute moins de 100 ms.
L’« instinct » du système
La gestion des tours de parole / interruption (TTI) est un processus intermédiaire qui détermine quand un utilisateur a fini de parler. Le modèle sous-jacent est appelé Voice Activity Detector (ou VAD).
La gestion des tours de parole repose sur un ensemble de règles complexes. Une courte intervention (par exemple « hmm ») ne doit pas déclencher un nouveau tour ; sinon, la conversation serait trop hachée. Le système doit donc évaluer quand l’utilisateur cherche vraiment à attirer l’attention du modèle, et aussi quand il a fini de s’exprimer.
Un bon VAD ne doit pas signaler un nouveau tour dès qu’il détecte un silence. Il y a des silences entre les mots (et les phrases), et le modèle doit être sûr que l’utilisateur a vraiment terminé. Pour cela, il doit détecter un certain seuil de silence (ou plus précisément, une absence de parole). Ce processus introduit un délai, qui contribue à la latence globale ressentie par l’utilisateur.
.webp&w=3840&q=95)
Techniquement, si tous les autres composants de la Conversational AI avaient zéro latence, la latence liée à la gestion des tours de parole serait bénéfique. Les humains prennent un temps de pause avant de répondre. Une machine qui fait de même rend l’échange plus naturel. Mais comme les autres composants ajoutent déjà de la latence, il vaut mieux minimiser celle du TTI.
Le « cerveau » du système
Ensuite, le système doit générer une réponse. Aujourd’hui, cela se fait généralement avec un Large Language Model (LLM), comme GPT-4 ou Gemini Flash 1.5.
Le choix du modèle de langage fait une vraie différence. Des modèles comme Gemini Flash 1.5 sont très rapides — ils produisent des résultats en moins de 350 ms. D’autres modèles plus puissants, capables de traiter des requêtes complexes — comme les variantes de GPT-4 ou Claude — peuvent prendre entre 700 et 1000 ms.Choisir le bon modèle est souvent le moyen le plus simple de réduire la latence lors de l’optimisation d’une application de Conversational AI.
Cependant, la latence du LLM correspond au temps nécessaire pour commencer à générer des tokens. Ces tokens peuvent être transmis immédiatement à l’étape suivante, text-to-speech . Comme le text-to-speech est limité par le rythme naturel d’une voix humaine, le LLM est toujours plus rapide — ce qui compte le plus, c’est la latence du premier token (c’est-à-dire le temps jusqu’au premier octet).
.webp&w=3840&q=95)
D’autres facteurs influencent la latence d’un LLM, au-delà du choix du modèle. Cela inclut la longueur du prompt et la taille de la base de connaissances. Plus ils sont grands, plus la latence augmente. En résumé : plus le LLM doit traiter d’informations, plus il prend de temps. Il faut donc trouver un équilibre entre un contexte suffisant et un modèle pas trop chargé.
La « bouche » du système
Le dernier composant de la Conversational AI est le text-to-speech (TTS). La latence du text-to-speech correspond au temps nécessaire pour commencer à parler après avoir reçu les tokens du traitement du texte. C’est tout — car les tokens suivants arrivent plus vite que le débit de la parole humaine, la latence du text-to-speech est uniquement le temps jusqu’au premier octet.
.webp&w=3840&q=95)
Avant, le text-to-speech était particulièrement lent, il fallait parfois 2 à 3 secondes pour générer la voix. Mais des modèles récents comme notre moteur Turbo génèrent la voix avec seulement 300 ms de latence, et le nouveau moteur Flash TTS est encore plus rapide. Flash a un temps de modèle de 75 ms et peut atteindre 135 ms de latence audio de bout en bout, le meilleur score du secteur (on doit bien se vanter un peu !).
Au-delà des quatre composants, d’autres éléments peuvent aussi influencer la latence globale de la Conversational AI.
Il y aura toujours une latence liée à l’envoi de données d’un point à un autre. Pour certaines applications de Conversational AI, les processus ASR, TTI, LLM et TTS devraient idéalement être hébergés ensemble, pour que la seule vraie latence réseau soit celle entre l’utilisateur et le système complet.Cela nous donne un avantage sur la latence, car nous économisons deux appels serveurs grâce à notre propre TTS et notre solution de transcription interne.
.webp&w=3840&q=95)
Beaucoup d’applications de Conversational AI servent à déclencher des fonctions (c’est-à-dire interagir avec des outils et services). Par exemple, je peux demander oralement à l’IA de vérifier la météo. Cela nécessite des appels API supplémentaires au niveau du traitement du texte, ce qui peut ajouter beaucoup de latence selon le besoin.
Par exemple, si je veux commander une pizza à la voix, il peut y avoir plusieurs appels API nécessaires, certains avec beaucoup de délai (comme le traitement d’une carte bancaire).
.webp&w=3840&q=95)
Mais un système de Conversational AI peut limiter ces délais en demandant au LLM de répondre à l’utilisateur avant la fin de l’appel de fonction (par exemple « Je vérifie la météo pour vous »). Cela imite une vraie conversation et évite de laisser l’utilisateur sans réponse.
.webp&w=3840&q=95)
Ces schémas asynchrones sont généralement mis en place avec des webhooks pour éviter les requêtes trop longues.
Une autre fonctionnalité courante des plateformes de Conversational AI est de permettre à l’utilisateur d’appeler par téléphone (ou parfois de passer un appel à sa place). La téléphonie ajoute de la latence — et celle-ci dépend beaucoup de la géographie.
.webp&w=3840&q=95)
En général, la téléphonie ajoute 200 ms de latence si l’appel reste dans la même région. Pour les appels internationaux (par exemple Asie → USA), le temps de trajet peut augmenter fortement, avec une latence autour de 500 ms. Ce cas est fréquent si les utilisateurs ont des numéros de téléphone hors de leur région, ce qui oblige à passer par les réseaux téléphoniques de leur pays d’origine.
Nous espérons que ce tour d’horizon de la Conversational AI vous a intéressé. En résumé, il faut viser une latence inférieure à une seconde. Cela passe souvent par le choix du bon LLM. Il faut aussi garder le contact avec l’utilisateur quand des processus plus complexes tournent en arrière-plan, pour éviter les longs silences.
Au final, le but est de créer du réalisme. L’utilisateur doit ressentir la facilité d’une conversation humaine tout en profitant des avantages d’un programme informatique. En optimisant chaque sous-processus, c’est désormais possible.
Chez ElevenLabs, nous optimisons chaque partie d’un système de agents vocaux IA avec nos modèles STT et TTS de pointe. En travaillant sur chaque étape, nous pouvons offrir des conversations fluides. Cette vision globale de l’orchestration nous permet de gagner un peu de latence — même 1 ms — à chaque étape.

Résolution réussie de >80% des demandes des utilisateurs

Notre plateforme tout-en-un pour créer des agents vocaux interactifs et personnalisables