[M1] Pipeline audio : téléchargement MXC → conversion → transcription → cache SQLite #7

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

Contexte

Orchestration du flux complet de transcription : depuis la réception du message Matrix jusqu'à l'affichage du résultat, avec mise en cache pour éviter les re-transcriptions.

Critères d'acceptation

  • Téléchargement du média via matrix-rust-sdkVec<u8>
  • Conversion opus/webm → WAV 16kHz mono via pipeline GStreamer
  • Envoi au moteur STT sélectionné dans la config
  • Cache résultat dans SQLite locale (clé = event_id) : table transcriptions(event_id, text, language, confidence, segments_json, created_at)
  • Lecture depuis le cache si l'event_id est déjà présent (pas de re-transcription)
  • Le pipeline tourne dans un thread async dédié (ne bloque pas l'UI)
  • Indicateur de progression pendant la transcription

Notes techniques

  • Dépend de : #5 (WhisperEngine) et/ou #6 (autres moteurs)
  • Base SQLite : ~/.local/share/fractal-plus/stt-cache.db
  • Utiliser sqlx avec le feature sqlite et migrations automatiques
  • Gestion mémoire : ne pas garder Vec<u8> audio en mémoire après conversion
## Contexte Orchestration du flux complet de transcription : depuis la réception du message Matrix jusqu'à l'affichage du résultat, avec mise en cache pour éviter les re-transcriptions. ## Critères d'acceptation - [ ] Téléchargement du média via `matrix-rust-sdk` → `Vec<u8>` - [ ] Conversion opus/webm → WAV 16kHz mono via pipeline GStreamer - [ ] Envoi au moteur STT sélectionné dans la config - [ ] Cache résultat dans SQLite locale (clé = `event_id`) : table `transcriptions(event_id, text, language, confidence, segments_json, created_at)` - [ ] Lecture depuis le cache si l'`event_id` est déjà présent (pas de re-transcription) - [ ] Le pipeline tourne dans un thread async dédié (ne bloque pas l'UI) - [ ] Indicateur de progression pendant la transcription ## Notes techniques - Dépend de : #5 (WhisperEngine) et/ou #6 (autres moteurs) - Base SQLite : `~/.local/share/fractal-plus/stt-cache.db` - Utiliser `sqlx` avec le feature `sqlite` et migrations automatiques - Gestion mémoire : ne pas garder `Vec<u8>` audio en mémoire après conversion
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#7
No description provided.