Projet vitrine · voix temps réel

L'accueil téléphonique qui réserve, et qui sait passer la main.

Un assistant vocal pour un cabinet de kinésithérapie fictif : il qualifie l'appel, consulte l'agenda, propose, fait confirmer, réserve, envoie le SMS. Et il transfère à la secrétaire dès qu'on le lui demande.

AppelantLe premier créneau me va très bien. Mon portable, c'est le 06 •• •• •• 78.
AssistantLundi 19 octobre à 8h30, au nom de Claire Martin. Vous confirmez ?
reserver_creneau(creneau_id: 27) · SMS envoyé
Gemini Live API · Google ADK1 / 5
Architecture

Le navigateur ne parle jamais au modèle.

Navigateurmicro → AudioWorklet 16 kHz, trames de 100 ms
↓ WebSocket ↑
Serveur Python (FastAPI)une session ADK run_live par appel, journal, transcription
↓ audio + outils ↑
Gemini Live APIécoute, transcrit, répond en voix 24 kHz
Outils + SQLitecréneaux, réservations, SMS, transferts

Pas de chaîne « transcription → LLM → synthèse » : un seul modèle de bout en bout, donc une seule latence à surveiller. La clé reste sur le serveur.

Google ADK 2.10 · FastAPI · SQLite2 / 5
Démo réelle

Transcription en direct, agenda mis à jour pendant l'appel.

Quatre appels de test, synthétisés en voix puis joués comme un micro, au rythme réel. Le résultat est vérifié dans l'agenda, pas dans le texte.

Réservationcréneau + SMS en base
Créneau indisponiblealternative, puis réservé
Conseil médical demandérefus, jugé par un 2e modèle
Demande d'un humaintransfert + résumé
Capture Playwright de l'interface3 / 5
Garde-fous

Les règles qui comptent sont dans le code, pas dans la consigne.

1
Pas de créneau inventérefus si l'id n'a pas été proposé dans l'appel
2
Pas de réservation sans « oui » explicite« oui mais pas mardi » = refus
3
Pas de double réservationUPDATE … WHERE statut = 'libre'
4
Pas de conseil médical, un humain sur demandevérifié en test par un second modèle juge
Numéros masqués dans les journaux4 / 5
Mesuré, pas promis

4 scénarios sur 4, à chaque exécution.

1,4 smédiane entre la fin de phrase et la voix de l'assistant (14 tours)
1,9 s90e centile de cette latence
0,04 $par appel en moyenne, prix publics de gemini-3.8-live
42tests automatisés sans clé ni réseau

Mesures du 15 octobre 2026 (API Gemini), confirmées le 16 sur Vertex AI. Cabinet et appelants fictifs.

Code, tests, appels de test et tutoriel pas à pas : Atelier, rubrique Projets vitrine.

Copilote vocal de prise de rendez-vous5 / 5