Mode Call

Conversation vocale temps réel

Pipeline optimisé : micro utilisateur → Scribe STT → Orion LLM streaming → TTS ultra-réaliste. Latence totale end-of-speech → first audio : ~0,6 seconde.

Architecture du pipeline

Le mode Call unifie STT, LLM et TTS en une seule route streaming (SSE). Le serveur bufferise par phrase et renvoie les chunks audio mp3 au fur et à mesure.

pipeline.txt
Browser (VAD détecte silence)
    ↓ POST multipart (audio blob)
/api/snippet/[shopId]/realtime-turn
    ↓
    ├─ 1. STT Scribe streaming        (~150ms)
    ├─ 2. Gemma Analyser (routing)    (~100ms en parallèle)
    ├─ 3. LLM streaming (Flash/Haiku) (first token ~180ms)
    └─ 4. TTS streaming par phrase    (first audio ~170ms)
         (modèle ultra-rapide v2.5)
    ↓ SSE events
Browser Audio Queue (lecture séquentielle)

Latence totale mesurée

Fin de parole utilisateur → premier audio Orion : ~0,6 s en moyenne. Les 4 étapes du pipeline s’exécutent en streaming parallèle, avec sentence buffering pour que Orion commence à parler dès la première phrase générée.

Events SSE streamés

Le client écoute les events via un ReadableStream. Chaque event contient un type et des données spécifiques.

EventPayloadDescription
transcript{ text: string }Résultat du STT (ce que l'utilisateur a dit)
expression{ value: string }Émotion détectée (happy | sad | surprised | neutral)
token{ text: string }Token LLM (pour subtitle live)
audio{ chunk: string, format: "mp3" }Chunk audio base64 (à jouer séquentiellement)
done-Fin du tour de parole
error{ message: string }Erreur (STT, LLM ou TTS)

Activer le mode Call

Depuis Paramètres → Mode d'affichage dans le dashboard :

Chat

Mode classique (bulles). Exclusif avec Focus.

Focus

Mode immersif (mot par mot). Exclusif avec Chat.
Orion Voice

Call

Complement optionnel. Necessite un add-on Orion Voice (Voice Basic+).

Combinaisons valides

{chat}, {focus}, {chat + call}, {focus + call}. Chat et Focus sont mutuellement exclusifs (radio), Call s'ajoute indépendamment.

Voice Activity Detection (VAD)

Le client détecte automatiquement la fin de phrase (900 ms de silence) pour déclencher le tour de parole. Aucun bouton à presser.

vad.ts
// Paramètres VAD par défaut (snippet)
const SPEAK_THRESHOLD = 35   // sur 255 (seuil d'activité)
const SILENCE_MS = 900       // durée de silence avant STT
const MIN_SPEECH_MS = 400    // durée min pour valider (anti-toux)

// AudioContext analyser frequencyData → RMS → threshold

Choix de la voix

Chaque compte sélectionne une voix dans un catalogue de voix ultra-réalistes, H/F, en français. La voix se configure depuis Paramètres → Call → Voix et est sauvegardée dans shop.call_voice_id.

VoixGenreLangueUsage conseillé
SarahFFR / ENAccueil, e-commerce, SAV chaleureux
LucieFFRServices, conseil, prise de rendez-vous
EmilieFFRTon naturel, proximité client, retail
AugustinHFRB2B, tech, voix posée professionnelle
EdouardHFRÉnergique, accrocheur, restauration
JosephHFRProfond, premium, luxe, spa

Pas de clonage de voix

Orion ne propose pas de clonage de voix personnalisé. Nous fournissons uniquement une sélection de voix pré-validées, ultra-réalistes et sous licence. Cela garantit qualité constante, conformité RGPD/droits à l’image et latence optimale (modèles pré-compilés).

Expressions faciales (blob 3D)

Le blob 3D affiché pendant le call réagit aux émotions pilotées par le LLM et aux fréquences audio en temps réel :

Listen

Ondulations sur médiums

Speak

Pulsation radiale + aigus

Think

Ondes circulaires douces

Idle

Respiration smooth

Quotas TTS & STT

Les quotas sont inclus dans les tiers Orion Voice (voir documentation Orion Voice). Ils se réinitialisent tous les 30 jours.

Quota épuisé

Si TTS ou STT épuisé → l'endpoint retourne HTTP 402. Le mode Call est désactivé jusqu'à la réinitialisation ou l'upgrade du forfait.