Autorité média et téléphonie
Appel, PBX, bridge, file, Media WS, VAD, barge-in, STT, TTS, playback, mark/ACK, WebRTC et handoff humain.
Pipeline conversationnel
Media WS, VAD, STT, orchestration, LLM, garde déterministe, TTS, playback ACK et commit CAS.
Le LLM propose. Les politiques, l’état courant et la garde décident. Le transport audio ne prouve jamais l’audition humaine.
| Étape | Owner | Autorité | État / token | Preuve et limite |
|---|---|---|---|---|
| Media WS | Navy Phone | Frames slin16 consultatives | Session média et génération | Code/tests; serveur Asterisk Media WS non importé, donc pas intégré |
| VAD / barge-in | Navy Phone | Début/fin de parole | Nouvelle génération + AbortSignal | Scénarios code/tests, téléphone cloud non prouvé |
| STT streaming cible | Navy Phone | Partiels consultatifs; final seulement après validation langue/re-décodage | Final corrélé au tour | Contrats/code; aucun endpoint souverain ou streaming runtime intégré |
| Session VoiceBot | VoiceBot | Révision et protocole métier | Prepared-turn et token opaque | Contrats produit et CAS optimiste |
| Orchestration | VoiceBot | Choix dialogue, faits et outils allowlistés | Contexte minimal et provenance | Code/tests produit, runtime non déployé |
| LLM | Provider piloté par VoiceBot | Proposition conversationnelle uniquement | Texte candidat + modèle/digest | Choix modèle non production |
| Validation déterministe | VoiceBot | Décision avant action et avant restitution | Autoriser, corriger, demander, refuser, handoff | Pas un simple filtre post-LLM |
| TTS | Navy Phone | Synthèse du texte validé | Frames liées à la génération | Voix/endpoint souverain à qualifier |
| Transport / mark | Navy Phone | Preuve de frontière transport | Mark/ACK corrélé courant | Mark ≠ audition par l’appelant |
| Commit CAS | VoiceBot | État durable du tour | Commit seulement si révision et ACK sont courants | Conflit, timeout ou ACK ancien = aucun commit |
Cette répartition empêche le produit conversationnel de prendre le contrôle implicite de la téléphonie ou de ses preuves de lecture.
Appel, PBX, bridge, file, Media WS, VAD, barge-in, STT, TTS, playback, mark/ACK, WebRTC et handoff humain.
Session, prepared-turn, révision, protocoles critiques, RAG, provenance, décisions, garde déterministe, token et audit métier.
Une interruption invalide la génération complète, pas seulement le buffer audio visible.
Parole détectée pendant la restitution.
Incrément et AbortSignal vers tâches actives.
clear / FLUSH_MEDIA et purge.
Mark ancien invalidé, aucun ACK recevable.
Nouveau final STT, intention et réponse contextuelle.
Les budgets de production restent à fixer par mesure. La conception doit néanmoins exposer chaque étage et privilégier une première phrase sûre.
Mesurer routage, retrieval et modèle séparément; limiter outils et contexte au tour courant.
Préparer une courte confirmation validée pendant que la réponse complète continue, sans anticiper une action critique.
Twilio actuel est final-only avec silence proche de 900 ms; ce seuil est un état de code, pas un SLO.
Double ffmpeg et upload complet sur le chemin actuel; le streaming reste shadow et ne doit pas être présenté comme production.
Le registre sépare ce qui tourne en code, le contrat recherché et les pistes expérimentales. Une entrée de benchmark ne devient jamais un provider intégré.
| Niveau | Contenu | Preuve | Limite |
|---|---|---|---|
| État actuel | Chemin Twilio final-only, contrats STT/LLM/TTS et chaîne de providers configurable | Code et tests du dépôt | Aucun pipeline streaming voix souverain E2E |
| Cible | Endpoints cloud UE qualifiés, streaming annulable, identité/digest et budgets mesurés par étage | Contrats et gates seulement | Provider, modèle, capacité et SLO à figer |
| Alternatives TTS | Qwen registered voice et VoxCPM Nano décrits dans un harness cloud-only isolé | experiments/voice-human-lab, tests locaux du harness | Aucun provider contacté, aucun résultat qualité/latence, aucun import runtime |
| Choix LLM | Sélection ouverte derrière un contrat de proposition non autoritaire | Schémas, fallbacks et garde en code/tests | Aucun modèle/cloud déclaré production |
Aucune indisponibilité modèle ne doit produire une action critique inventée ou empêcher un transfert humain.
| Panne | Réaction | État durable | Expérience appelant |
|---|---|---|---|
| STT | Retirer le bot de l’admission | Aucun nouveau tour | Phrase sûre puis humain |
| LLM | Réponse déterministe bornée | Décision auditée | Clarification ou transfert |
| TTS / ACK | Timeout, stop génération | Aucun commit | Retry borné ou humain |
| DB / CAS | Refus fail-closed | Aucun commit | Information sans engagement ou transfert |
| Worker | Session perdue/drain | Pas de reprise transparente prouvée | Handoff si encore contrôlable |
Le pipeline transporte le strict nécessaire: état, faits autorisés, sources et identifiants opaques, jamais un transcript généralisé dans les métriques.
Tenant, session, tour, protocole, faits autorisés, révision, langue validée et état de handoff.
Source, version, modèle/digest, garde/version et raison de décision restent corrélés au tour.