[M5] Mode Voice-to-Voice avec l'agent IA (STT → agent → TTS) #66

Closed
opened 2026-04-06 01:38:02 +00:00 by charles · 0 comments
Owner

Contexte

Mode conversation vocale temps réel avec l'agent IA : capture micro → STT → envoi à l'agent → réception → TTS → lecture audio. Combinaison de M1 + M2 + un moteur TTS.

Critères d'acceptation

  • Bouton "Appeler l'agent" dans les salons avec agent détecté
  • Capture audio micro via GStreamer
  • Transcription temps réel via le moteur STT configuré (M1)
  • Envoi du texte transcrit à l'agent Matrix
  • Réception de la réponse agent + synthèse vocale via espeak-ng ou Piper
  • Trait TtsEngine : synthesize(text, voice_opts) -> AudioData
  • Interface : overlay "En appel" avec bouton couper micro + mettre fin
  • Latence cible : < 3s entre fin de phrase et début réponse audio

Notes techniques

  • Dépend de : M1 (#4–#9), M2 (#11, #14)
  • PiperEngine : subprocess piper local (qualité supérieure, modèles ~50Mo)
  • EspeakEngine : binaire espeak-ng (léger, qualité moindre, toujours disponible)
  • La capture micro utilise GstDeviceMonitor (GStreamer) pour la sélection du périphérique
## Contexte Mode conversation vocale temps réel avec l'agent IA : capture micro → STT → envoi à l'agent → réception → TTS → lecture audio. Combinaison de M1 + M2 + un moteur TTS. ## Critères d'acceptation - [ ] Bouton "Appeler l'agent" dans les salons avec agent détecté - [ ] Capture audio micro via GStreamer - [ ] Transcription temps réel via le moteur STT configuré (M1) - [ ] Envoi du texte transcrit à l'agent Matrix - [ ] Réception de la réponse agent + synthèse vocale via `espeak-ng` ou `Piper` - [ ] Trait `TtsEngine` : `synthesize(text, voice_opts) -> AudioData` - [ ] Interface : overlay "En appel" avec bouton couper micro + mettre fin - [ ] Latence cible : < 3s entre fin de phrase et début réponse audio ## Notes techniques - Dépend de : M1 (#4–#9), M2 (#11, #14) - `PiperEngine` : subprocess `piper` local (qualité supérieure, modèles ~50Mo) - `EspeakEngine` : binaire `espeak-ng` (léger, qualité moindre, toujours disponible) - La capture micro utilise `GstDeviceMonitor` (GStreamer) pour la sélection du périphérique
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/my-fractal#66
No description provided.