Files
kxkm_clown/docs/TIMING_RECOMMENDATIONS_2026-03-19.md
T
Codex Local 06ea18f425 feat: session 2026-03-19 — 35 lots (24-58), 311 tests, 12 services
Highlights:
- Streaming chat chunks + web search auto (Sherlock/SearXNG)
- pino structured logging (43->0 console.log)
- Zod validation (19 schemas API + storage)
- Qwen3-TTS 0.6B + 33 persona voices
- Docling + bge-reranker RAG pipeline
- React lazy routes (-50% bundle), virtualized chat
- SEC-01->05 all resolved
- A11y WCAG (40 ARIA attrs)
- Perf + error telemetry endpoints
- Systemd units (TTS, LightRAG, reranker)
- p-limit Ollama, WS reconnect, signal handlers
- createId thread-safe via crypto.randomBytes (lot-59)
- Hyperparam bounds validation with Zod schema (lot-60)
- DPO extractDPOPairs warns on empty pairs (lot-61)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 22:54:32 +01:00

1.6 KiB

Timing & Ordering Recommendations (2026-03-19)

Context

Analyse des patterns de timing pour les pipelines LLM + TTS + music gen + image gen en temps reel.

Recommandations

P1 — Sentence-boundary TTS chunking

Au lieu d'attendre la reponse complete avant TTS, decoupe en phrases pendant le streaming. Latence percue: 6s → 1s avec Piper, ~1.5s avec Chatterbox.

P1 — Placeholder-then-resolve pour tasks longues

Envoyer media_pending immediatement, puis media_ready quand le resultat est pret. Pattern valide par ChatGPT, Midjourney, Discord bots.

P2 — Sequence numbers WS (seq + replyTo)

Garantir l'ordre d'affichage cote client. Attacher audio/image au bon message via replyTo.

P2 — Async handler ordering guard

Promise chain sur ws.on(message) pour eviter le reordonnement des messages async.

P2 — Per-persona task queues

Remplacer le mutex global TTS par des queues per-persona avec concurrence bornee. TTS et image gen peuvent tourner en parallele (ressources GPU differentes).

P3 — Protocol enrichi

Types: message_chunk, media_pending, media_ready, media_error. Client affiche skeleton loader pour pending, swap sur ready.

Latences cibles (RTX 4090)

Pipeline Cible
Ollama TTFB 200-500ms
Piper TTS/phrase 200-400ms
Chatterbox first chunk ~470ms
ACE-Step 1 min musique ~2-5s
Total texte+audio percu <2s

Sources

  • Pipecat, LLMVoX (sentence chunking)
  • ACE-Step 1.5 benchmarks (34x RTF sur A100)
  • WebSocket ordering: sitongpeng.com
  • LiveKit + Piper low-latency pattern