DOCS/kanban/cards/5-planifie/020-decoupage-du-tts-par-phrase-le-seul-vrai-levi.md
2026-09-03 14:00:51 +02:00

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