Login / Sign up
Discover Bonzai
Terms of Use
Legal notice
Privacy
Region
Language
matyo91
matyo91
14
Subscribers
Facebook
X
Whatsapp
Telegram
👉 You must follow matyo91 to access chat.
Feed Shop About

⬆️ Flowvox update : Symfony devient une plateforme d’agents vocaux temps réel

Facebook
Twitter
Whatsapp
Telegram
1 week ago


En février 2026, j’avais publié un premier prototype expérimental autour de la transcription vocale en PHP avec Whisper.cpp.

https://blog.darkwood.com/article/i-m-building-a-dictation-engine-in-php-flow-symfony-whisper-cpp

L’objectif était simple :

enregistrer sa voix, la retranscrire localement, puis exporter le résultat.

Trois mois plus tard, le projet a énormément évolué.

Flowvox n’est plus seulement un POC console.

C’est désormais une plateforme de workers vocaux temps réel construite avec Symfony 8, Messenger, Mercure, Symfony UX, OpenAI Realtime et Hotwire Native.

Pourquoi cette mise à jour maintenant ?

La raison est très simple : OpenAI vient de faire évoluer massivement son API audio temps réel.

Dans leur démonstration récente, plusieurs nouveautés ont été présentées :

  • traduction multilingue temps réel

  • transcription fluide en streaming

  • agents vocaux capables d’appeler des tools

  • raisonnement en arrière-plan

  • conservation du contexte conversationnel.

Ce n’est plus simplement de la reconnaissance vocale.

La voix devient une interface programmable.

Et c’est précisément la direction dans laquelle Flowvox évolue.

Le prototype initial : Whisper.cpp + terminal

La première version de Flowvox était extrêmement minimaliste.

Architecture :

Microphone → ffmpeg → whisper.cpp → transcription locale

Le système fonctionnait entièrement en ligne de commande :

php bin/console voice:start php bin/console voice:stop php bin/console voice:worker

Il n’y avait :

  • aucune UI

  • aucun temps réel

  • aucune orchestration distribuée

  • aucune notion de session.

L’objectif était uniquement de valider qu’il était possible de faire de la transcription locale en PHP avec Whisper.cpp.

Passage à une architecture distribuée

La nouvelle version change complètement de philosophie.

Le cœur du système repose maintenant sur :

  • Symfony Messenger

  • darkwood/flow

  • Mercure

  • Doctrine

  • Symfony UX

  • providers de transcription interchangeables.

Architecture simplifiée :

Symfony UX

Messenger

Voice Worker

Flow Pipeline

OpenAI Realtime

Whisper.cpp

Mercure

Le point important :

le worker n’est pas l’interface.

L’UI ne fait que piloter des workers vocaux indépendants.

Chaque session possède sa propre queue Messenger :

voice_demo voice_mobile voice_conference voice_stream

Cela permet d’avoir :

  • plusieurs workers

  • plusieurs appareils

  • plusieurs sessions simultanées

  • une architecture distribuée.

Flow orchestration

Le pipeline repose toujours sur Darkwood Flow.

Trois étapes principales :

ÉtapeRôleInputProviderFlowLecture des événements START / STOPRecorderFlowEnregistrement audioTranscribeFlowTranscription

Le worker reste long-running et écoute les événements Messenger.

Lorsqu’un START est reçu :

  1. le worker démarre l’enregistrement

  2. ffmpeg capture l’audio

  3. la session est suivie

  4. les événements sont publiés via Mercure.

Lorsqu’un STOP est reçu :

  1. le fichier WAV est finalisé

  2. la transcription démarre

  3. l’UI reçoit les mises à jour.

Symfony UX + Mercure : le temps réel

Une des plus grosses évolutions du projet est l’arrivée d’une vraie interface web temps réel.

Stack utilisée :

  • Twig

  • Symfony UX

  • Turbo

  • Stimulus

  • Mercure.

Le dashboard permet maintenant :

  • de voir les workers actifs

  • de démarrer/arrêter une session

  • de suivre les événements live

  • d’afficher les transcriptions

  • d’accéder à l’historique.

Architecture temps réel :

UIBrowserMercureWorkerUIBrowserMercureWorkerpublish eventlive updaterefresh transcript

L’intérêt est énorme :

Symfony peut maintenant faire du temps réel moderne sans React ni frontend séparé.

Providers de transcription

Une autre évolution importante est l’introduction d’une couche DDD avec providers interchangeables.

Flowvox peut maintenant fonctionner avec plusieurs moteurs :

ProviderTypewhisper_cppLocalwhisper_cpp_streamLocal realtimeopenai_batchCloud batchopenai_realtime_whisperCloud realtime

La sélection se fait via une variable d’environnement :

FLOWVOX_TRANSCRIPTION_PROVIDER=

Le moteur peut changer.

L’UX reste identique.

OpenAI Realtime Whisper

C’est probablement la nouveauté la plus importante.

Avant :

START → parler → STOP → transcription

Maintenant :

START → streaming audio → transcription live → partials → UI temps réel

Le fonctionnement :

Micro

ffmpeg

WebSocket OpenAI

Worker

Mercure

Symfony UX

Le worker envoie les chunks audio à OpenAI Realtime via WebSocket.

Le modèle retourne des transcriptions partielles.

Le worker publie ensuite ces événements vers Mercure.

Et Symfony UX met à jour l’interface en direct.

Traduction multilingue temps réel

OpenAI introduit aussi GPT Realtime Translate.

Cela permet :

  • de parler en français

  • de traduire en anglais

  • ou même de changer dynamiquement de langue pendant la conversation.

Le modèle suit la structure de la phrase et attend parfois les verbes avant de traduire, ce qui rend le résultat beaucoup plus naturel.

C’est extrêmement intéressant pour :

  • conférences

  • podcasts

  • support client

  • éducation

  • médias.

Symfony UX Native + iOS

Autre grosse évolution : l’intégration native mobile.

Flowvox utilise maintenant :

composer require symfony/ux-native

L’idée est de conserver :

  • Twig

  • Symfony UX

  • Turbo

  • Stimulus

tout en utilisant un shell mobile natif basé sur Hotwire Native.

Architecture :

Twig

Turbo

WebView

SwiftUI

Stimulus

NativeBridge

L’application iOS repose sur une WebView connectée au serveur Symfony local.

Le résultat :

  • même application

  • même backend

  • même UI

  • version web + version native.

Darkwood Navi : traçabilité des workflows

Flowvox intègre aussi Darkwood Navi.

L’objectif :

  • enregistrer les événements

  • suivre les exécutions

  • tracer les workflows

  • rendre les traitements reproductibles.

Cela prépare surtout les prochaines étapes :

  • agents vocaux

  • tool calling

  • workflows déclaratifs

  • orchestration IA.

Vision long terme

Flowvox n’est plus seulement un moteur de transcription.

La direction devient beaucoup plus ambitieuse :

une plateforme vocale programmable pour Symfony.

Les prochaines étapes :

  • GPT Realtime Translate

  • agents vocaux

  • tool calling

  • orchestration Flow

  • workflows Navi

  • intégration Uniflow

  • automation pilotée par la voix.

L’objectif n’est plus simplement :

“parler à son application”.

Mais plutôt :

“avoir une application qui réagit, raisonne et agit en temps réel à travers la voix”.

Conclusion

En quelques mois, Flowvox est passé :

d’un POC terminal Whisper.cpp → à une plateforme vocale temps réel Symfony

Avec :

  • workers distribués

  • orchestration Flow

  • Symfony UX

  • Mercure

  • OpenAI Realtime

  • Hotwire Native

  • providers interchangeables

  • traçabilité Navi.

La voix devient progressivement une interface programmable.

Et je pense que Symfony possède aujourd’hui toutes les briques nécessaires pour devenir une excellente plateforme pour ce type de systèmes.

Flowvox continue d’évoluer comme terrain d’expérimentation autour :

  • des workers vocaux

  • de l’orchestration temps réel

  • des agents pilotés par la voix

  • de Symfony UX

  • de Symfony AI

  • et des workflows déclaratifs avec Flow et Navi.

L’objectif n’est plus simplement de retranscrire de l’audio.

L’objectif est maintenant de construire des interfaces vocales programmables capables :

  • d’écouter

  • de raisonner

  • de traduire

  • et d’agir dans des systèmes externes en temps réel.

Ressources

  • Flowvox Announcement

  • Flowvox GitHub

  • Symfony UX Native

  • OpenAI Realtime API

  • whisper.cpp

Tu peux ajouter cette section à la fin de l’article.

Ressources & projets

Le code source et les expérimentations autour de Flowvox sont disponibles publiquement :

  • Flowvox (Symfony voice platform)

  • Flowvox iOS (Hotwire Native)

  • Slides SlideWire de la présentation

Technologies utilisées :

  • Whisper.cpp

  • Symfony UX Native

Annonces et documentation OpenAI :

  • Annonce OpenAI Realtime Audio Models

  • Documentation OpenAI Realtime Translation

Follow matyo91 to comment
matyo91

matyo91

Je t'aide à automatiser tes process
14
Visit this Bonzai
Follow matyo91 to get the latest updates.

🎤 Sunday Labs #4 : ce que l’écosystème builder parisien cherche vraiment

2 days ago
6

🧩 Un agent IA aujourd’hui, c’est un stagiaire hypermotivé avec 400 onglets ouverts.

5 days ago
10

⚙️ NoLife Models - Vers une infrastructure locale des runtimes IA avec Symfony

2 weeks ago
19

💡 Devoxx France 2026 - L'Ère de l'Agentique au Cœur de Paris

2 weeks ago
48

💫 J’ai forcé 4 IA à recréer Mario de zéro avec Symfony AI et Godot

2 weeks ago
23

⚡️ Projection du film "Mon Extraordinaire"

3 weeks ago
32

✨ Le design transformatif : ne plus concevoir des usages, mais des métamorphoses

3 weeks ago
32

⚙️ Construire une architecture multi-agent gouvernée avec Symfony AI, Flow et Navi

4 weeks ago
66

🚀 Levée de fonds vs Bootstrap : deux chemins pour construire une boîte

4 weeks ago
37

🚀 J’ai reconstruit un LLM… avec des pixels.

1 month ago
36

🔊 DJ Matyo Live - Soundcloud set

1 month ago
36

🤖 Symfony AI in Action - Construire des systèmes IA réels avec Symfony

1 month ago
47

🐳 Agentic Workflows avec Docker - vers des systèmes autonomes, sécurisés et orchestrés

1 month ago
44

👨‍💻 Évaluation comparative de petits modèles de langage dans le monde réel

1 month ago
39

🚀 Sundays Lab #3 - Quand l’IA devient un terrain de jeu collectif

1 month ago
43

⚙️ Message-oriented vs Data-oriented orchestration - de la donnée à la connaissance

1 month ago
57

🤩 Relâcher les connecteurs - Des outils au langage

1 month ago
55

💡 J’ai créé une app IA RGPD en 1h avec Symfony

1 month ago
57

🗂️ Hellcats Over The Pacific - ouverture des archives

1 month ago
54

🧠 Ne rien dévoiler. Tout montrer – Bâtir des systèmes publics sur des fondations privées

2 months ago
58
© 2026 Bonzai Privacy Legal notice Terms of Use