Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Flowvox update — 2026-05-17

Flowvox update — 2026-05-17

De la console au worker vocal temps réel — web, Mercure, iOS.

Présentation canonique Slidewire — @matyo91 / Darkwood.

Avatar for Mathieu Ledru

Mathieu Ledru

November 06, 2026

More Decks by Mathieu Ledru

Other Decks in Programming

Transcript

  1. Darkwood · Symfony 8 · Voice-first · 2026-05-17 Flowvox update

    De la console au worker vocal temps réel - web, Mercure, iOS. Parler → Transcrire → Diffuser @matyo91
  2. Thèse Symfony peut devenir une plateforme d'agents vocaux temps réel.

    Pas un chatbot. Un système : workers, providers, UI live, mobile natif. 01 | thèse @matyo91
  3. Roadmap narrative Six phases. Une évolution visible. ① Console POC

    ④ OpenAI Realtime 02 | roadmap ② Workers Flow ⑤ UX Native iOS ③ Dashboard Mercure ⑥ Voice agents @matyo91
  4. Phase 1 · 2024 POC console. whisper.cpp sur Symfony. Enregistrer.

    Transcrire. Lire le texte dans le terminal. 03 | phase 1 @matyo91
  5. Slide 5 · 1/1 · représentation statique Phase 1 Pipeline

    minimal Micro ffmpeg WAV whisper-cli 04 | poc pipeline Version interactive (mise en ligne à venir) : https://slides.darkwood.com/slides/flowvox-update-2026-05-17 stdout @matyo91
  6. Limite du POC Ça marche. Mais ce n'est pas un

    produit. Pas de UI Pas de live Pas de scale Tout dans le terminal. Texte après STOP seulement. Une session, un process. 05 | limite @matyo91
  7. Phase 2 Workers distribués. Flow + Messenger. START / STOP

    par session. Un worker long-running par sessionId. 06 | phase 2 @matyo91
  8. Slide 8 · 1/1 · représentation statique Pourquoi Flow ?

    Orchestration fiber, pas spaghetti async. Messenger START/STOP InputProviderFlow RecorderFlow TranscribeFlow DisplayFlow 07 | flow Version interactive (mise en ligne à venir) : https://slides.darkwood.com/slides/flowvox-update-2026-05-17 @matyo91
  9. Pourquoi Symfony ? Le worker n'est pas l'UI. Messenger Doctrine

    Ports Contrôle asynchrone ciblé. Sessions, historique, export. Mercure, providers, use cases. 08 | symfony @matyo91
  10. Multi-session alpha · beta · demo php bin/console voice:worker --session=demo

    php bin/console voice:start --session=demo php bin/console voice:stop --session=demo 09 | cli @matyo91
  11. Phase 3 Dashboard temps réel. Mercure + Turbo. L'UI observe.

    Le worker exécute. 10 | phase 3 @matyo91
  12. Slide 12 · 1/1 · représentation statique Architecture Publish first,

    persist after. Browser Turbo Mercure Worker Hotwire Native VoiceDomainEvent PostgreSQL 11 | mercure arch Version interactive (mise en ligne à venir) : https://slides.darkwood.com/slides/flowvox-update-2026-05-17 @matyo91
  13. Architecture providers Un pipeline. Plusieurs moteurs. Local Cloud batch Cloud

    live whisper_cpp · whisper_cpp_stream openai_batch · gpt-4otranscribe openai_realtime_whisper 13 | providers @matyo91
  14. Slide 15 · 1/1 · représentation statique Providers Registre plug-in

    FLOWVOX_TRANSCRIPTION_ TranscriptionProviderRegistr WhisperCpp WhisperCppStream OpenAiBatch 14 | registry Version interactive (mise en ligne à venir) : https://slides.darkwood.com/slides/flowvox-update-2026-05-17 OpenAiRealtime @matyo91
  15. Slide 17 · 1/1 · représentation statique → Realtime audio

    pipeline PCM 24 kHz WebSocket partials Worker ffmpeg OpenAI Realtime → Mercure PCM stream input_audio_buffer.append transcription_partial publish Worker ffmpeg OpenAI Realtime 16 | realtime pipeline Version interactive (mise en ligne à venir) : https://slides.darkwood.com/slides/flowvox-update-2026-05-17 Mercure @matyo91
  16. whisper-stream local Même UX. Moteur différent. Privé Cloud SDL2 +

    whisper-stream · fenêtre glissante VAD OpenAI · gpt-4o-transcribe 17 | local vs cloud @matyo91
  17. Live demo DEMO worker · START · parler · STOP

    · Mercure 18 | demo @matyo91
  18. Phase 5 UX Native + Hotwire iOS. Une codebase Twig.

    Une expérience native. 19 | phase 5 @matyo91
  19. Hotwire Native WKWebView + bridges. Twig 20 | hotwire ↔

    Stimulus Bridge ↔ Swift UI @matyo91
  20. ux_is_native() Même template. Deux expériences. {% verbatim %}{% if not

    ux_is_native() %} … {% endif %}{% endverbatim %} 21 | native twig @matyo91
  21. iOS validé iPhone physique · LAN · Mercure JWT. flowvox-ios

    22 | ios 192.168.x.x Live transcript @matyo91
  22. darkwood/navi Trace structurée. Workflows demain. NDJSON · Actions · Context

    - base pour assistants programmables. 23 | navi @matyo91
  23. Phase 6 · Horizon Voice-first interface. Translate Agents Navi Realtime

    multilingue Tool calling vocal Workflows déclaratifs 24 | future @matyo91
  24. Slide 26 · 1/1 · représentation statique Stack cible Flowvox

    dans l'écosystème Darkwood Flowvox darkwood/flow darkwood/navi Symfony AI Voice workflows OpenAI Realtime 25 | stack Version interactive (mise en ligne à venir) : https://slides.darkwood.com/slides/flowvox-update-2026-05-17 Uniflow @matyo91
  25. Vision produit Parler à son application. Elle répond en temps

    réel. Dictée · réunions · accessibilité · agents vocaux métier. 26 | vision @matyo91
  26. État d'avancement MVP bout en bout. ~90% ~85% ~70% Workers

    + Flow UI + Mercure iOS native 27 | status @matyo91
  27. Darkwood · Symfony · Uniflow github.com/darkwoodcom/flowvox Article · YouTube ·

    Démo live darkwood.com · Symfony AI · Flow · Navi 29 | merci @matyo91