feat: pipeline audio STT avec cache SQLite (#7) #98

Merged
charles merged 4 commits from feat/7-stt-pipeline into main 2026-04-06 02:00:17 +00:00
Owner

Résumé

Implémentation du pipeline audio complet pour le module STT (issue #7).

Changements

  • crates/fractal-stt/src/pipeline.rs (nouveau) : SttPipeline — téléchargement MXC → conversion GStreamer WAV 16kHz mono → transcription → cache SQLite
  • crates/fractal-stt/src/lib.rs : export de SttPipeline et du module pipeline
  • crates/fractal-stt/Cargo.toml : ajout dépendance sqlx = { workspace = true }
  • Cargo.toml (workspace) : ajout sqlx = { version = "0.8", features = ["sqlite", "runtime-tokio-rustls"] }

Fonctionnalités

  • Cache SQLite dans ~/.local/share/fractal-plus/stt-cache.db (évite les re-transcriptions)
  • Conversion audio via GStreamer (skip si déjà WAV 16kHz mono)
  • Schéma : transcriptions(event_id PK, text, language, confidence, segments_json, created_at)
  • Tests unitaires : cache_miss_then_hit, different_events_stored_independently

Closes #7

## Résumé Implémentation du pipeline audio complet pour le module STT (issue #7). ### Changements - **`crates/fractal-stt/src/pipeline.rs`** (nouveau) : `SttPipeline` — téléchargement MXC → conversion GStreamer WAV 16kHz mono → transcription → cache SQLite - **`crates/fractal-stt/src/lib.rs`** : export de `SttPipeline` et du module `pipeline` - **`crates/fractal-stt/Cargo.toml`** : ajout dépendance `sqlx = { workspace = true }` - **`Cargo.toml`** (workspace) : ajout `sqlx = { version = "0.8", features = ["sqlite", "runtime-tokio-rustls"] }` ### Fonctionnalités - Cache SQLite dans `~/.local/share/fractal-plus/stt-cache.db` (évite les re-transcriptions) - Conversion audio via GStreamer (skip si déjà WAV 16kHz mono) - Schéma : `transcriptions(event_id PK, text, language, confidence, segments_json, created_at)` - Tests unitaires : `cache_miss_then_hit`, `different_events_stored_independently` Closes #7
charles deleted branch feat/7-stt-pipeline 2026-04-06 02:00:18 +00:00
Sign in to join this conversation.
No description provided.