DOCS/kanban/cards/5-planifie/040-live-api-gemini-audio-natif-bidirectionnel.md
2026-09-03 14:00:51 +02:00

12 lines
2.0 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Live API Gemini — audio natif bidirectionnel
area: backend visitapp
horizon: v2
tags: 3 repos
flag: warn | V2 — spike d'abord
src: voice-latency-plan.md §3.2
---
<p>Supprimerait les trois maillons Whisper → LLM → Gemini TTS au profit d'un <strong>WebSocket permanent</strong> : flux micro brut en entrée (PCM 16 kHz), flux audio en sortie (24 kHz), sans jamais passer par du texte. Débloque trois choses que l'architecture actuelle ne peut <strong>structurellement</strong> pas faire : le <strong>barge-in</strong> (couper la parole à l'assistant), le <strong>VAD côté serveur</strong> (fin du <code>timeout: 5 secondes</code> en dur de <code>_listenForFollowUp</code>) et une latence de l'ordre de la seconde. Les voix prébuilt sont de la même famille — Viva/Marco survivraient.</p>
<p><strong>Le point dur n'est pas l'audio, c'est le tool calling.</strong> Les outils (<code>GetSectionDetail</code>, RAG) vivent dans <code>manager-service</code>. Deux options : l'app parle directement à Gemini (latence minimale, mais logique métier déplacée dans le client et jetons éphémères obligatoires — on ne met pas une clé Gemini dans un APK de visiteurs), ou <strong><code>manager-service</code> proxifie le WebSocket</strong> (clé au chaud, prompt et stats gardés, mais relais audio temps réel en C# avec sessions, reconnexions et backpressure). <strong>C'est l'option B qui a du sens, et c'est elle qui coûte cher.</strong></p>
<p>⚠️ <strong>Le modèle de coût change de nature</strong> : plus à la requête mais à la session ouverte, avec des jetons audio bien plus chers. 80 visiteurs simultanés = 80 sessions. <strong>À chiffrer, les tarifs ne sont pas connus ici.</strong> ⚠️ Sessions à durée limitée, reprise à gérer sur réseau mobile en bâtiment de pierre. ⛔ <strong>Modèles en preview</strong> — après l'historique ElevenLabs → Gemini, y accrocher une fonction vendue serait imprudent. <strong>Verdict : spike chiffré d'une journée avant toute décision.</strong></p>