Skip to main content
Utilisez ce modèle lorsqu’un LLM produit du texte de manière incrémentale et que vous voulez que l’utilisateur entende l’audio avant que la réponse complète soit terminée. Le principe :
  1. Ouvrez un WebSocket TTS avant que le LLM ne démarre.
  2. Regroupez les tokens du LLM en fragments de mots ou de phrases.
  3. Envoyez chaque fragment comme message text.
  4. Ajoutez <flush> lorsque le LLM termine une phrase ou la réponse entière.
  5. Lisez les messages audio en parallèle et diffusez-les vers la lecture.

Envoyer les tokens LLM en streaming vers le TTS

Règles de découpage

  • Envoyez des mots, des groupes de mots ou des phrases complets.
  • Gardez la ponctuation attachée au mot qui la précède.
  • Évitez d’envoyer un token par message, sauf si les tokens correspondent déjà à des mots complets.
  • Ajoutez <flush> aux limites naturelles, en particulier lorsque le LLM a terminé sa réponse.
  • Évitez les flush fréquents : ils réduisent le contexte du modèle et peuvent rendre la prosodie saccadée.

Gérer les interruptions

Si l’utilisateur interrompt l’agent :
  1. Arrêtez d’envoyer du texte.
  2. Arrêtez la lecture localement.
  3. Fermez le WebSocket en cours.
  4. Ouvrez un nouveau WebSocket pour la réponse suivante.
Pour plusieurs réponses indépendantes sur une même connexion, utilisez le multiplexage et routez l’audio selon le client_req_id.

Voir aussi

WebSocket de synthèse vocale

Le guide complet du streaming TTS.

Cycle de vie WebSocket

Setup, ready, entrée, flush, fin et erreurs.