feat(stt): pipeline audio MXC → WAV → transcription → cache SQLite (#7) #85

Closed
charles wants to merge 3 commits from feat/7-audio-pipeline into main
Owner

Résumé

Orchestration complète du flux de transcription, non-bloquant pour l'UI.

Changements

  • pipeline.rs : AudioPipeline + TranscribeRequest
    • Worker Tokio via mpsc::channel — l'UI n'est jamais bloquée
    • submit() : retourne un oneshot::Receiver pour awaiter le résultat
    • fire_and_forget() : déclenche sans attendre (mode auto)
    • Téléchargement MXC via HTTP (/_matrix/media/v3/download/)
    • Conversion → WAV 16kHz mono via gst-launch-1.0
    • Cache SQLite (transcriptions table) via sqlx — pas de re-transcription si event_id déjà présent
  • Cargo.toml : ajout sqlx (sqlite, runtime-tokio), reqwest, tempfile

Plan de test

  • cargo check -p fractal-stt passe
  • Cache hit évite un 2e appel au moteur STT
  • Timeout gst-launch 30s correctement propagé

Closes #7

## Résumé Orchestration complète du flux de transcription, non-bloquant pour l'UI. ## Changements - `pipeline.rs` : `AudioPipeline` + `TranscribeRequest` - Worker Tokio via `mpsc::channel` — l'UI n'est jamais bloquée - `submit()` : retourne un `oneshot::Receiver` pour awaiter le résultat - `fire_and_forget()` : déclenche sans attendre (mode auto) - Téléchargement MXC via HTTP (`/_matrix/media/v3/download/`) - Conversion → WAV 16kHz mono via `gst-launch-1.0` - Cache SQLite (`transcriptions` table) via `sqlx` — pas de re-transcription si `event_id` déjà présent - `Cargo.toml` : ajout `sqlx` (sqlite, runtime-tokio), `reqwest`, `tempfile` ## Plan de test - [ ] `cargo check -p fractal-stt` passe - [ ] Cache hit évite un 2e appel au moteur STT - [ ] Timeout gst-launch 30s correctement propagé Closes #7
feat(stt): export AudioPipeline and TranscribeRequest (#7)
Some checks failed
CI / cargo check (pull_request) Has been cancelled
CI / cargo test (pull_request) Has been cancelled
CI / clippy + rustfmt (pull_request) Has been cancelled
0fd3683c23
charles closed this pull request 2026-04-06 02:01:13 +00:00
Some checks are pending
CI / cargo check (pull_request) Has been cancelled
CI / cargo test (pull_request) Has been cancelled
CI / clippy + rustfmt (pull_request) Has been cancelled
qa
Required

Pull request closed

Sign in to join this conversation.
No description provided.