1.3 KiB
title, area, horizon, tags, flag, src
| title | area | horizon | tags | flag | src |
|---|---|---|---|---|---|
| Découpage du TTS par phrase — le seul vrai levier de latence | visitapp | v1 | visitapp, vocal | warn | Feu vert à donner | voice-latency-plan.md §1.3 |
Le time-to-first-audio est aujourd'hui la somme de tout : LlmClient.chat() retourne un future de réponse complète (pas de flux) et GeminiTtsEngine._synthesize() fait un generateContent unaire qui attend tout le PCM avant d'écrire le WAV. C'est ce trou que la nappe de réflexion bouche.
Le remède ne dépend d'aucune API nouvelle : découper result.reply en phrases, synthétiser et jouer la première pendant que les suivantes se préparent. Le time-to-first-audio tombe à LLM + TTS(1 phrase). Contenu dans GeminiTtsEngine — ni l'orchestrateur ni le backend ne bougent.
⏸️ Volontairement pas fait avec le reste du lot du 13/08 : c'est le seul chantier structurant des six, il mérite un feu vert séparé. ⚠️ À vérifier avant : :streamGenerateContent émet-il des chunks audio progressifs sur gemini-2.5-flash-preview-tts ? Test curl de 20 min — à faire, pas à supposer.