[M1] Trait SttEngine, types de base et structure du crate fractal-stt #185

Closed
opened 2026-04-06 08:51:58 +00:00 by charles · 0 comments
Owner

Contexte

M1 — Speech-to-Text. Première brique du module : définir les abstractions qui permettront de brancher plusieurs moteurs STT de manière interchangeable.

Critères d'acceptation

  • Trait SttEngine défini avec les méthodes : name(), transcribe(audio, opts) -> Result<Transcript>, health_check() -> Result<EngineStatus>, supported_languages() -> Vec<LanguageCode>
  • Types AudioData (bytes, mime_type, duration_ms), Transcript (text, language, confidence, segments), TranscriptSegment (start_ms, end_ms, text) définis et publics
  • Enum Confidence : High, Medium, Low
  • Struct TranscribeOptions (language cible ou auto-detect)
  • Enum EngineStatus : Available, Unavailable(String), NotConfigured
  • Le crate implémente le trait Extension de fractal-ext et s'enregistre auprès de l'EventBus
  • Tests unitaires pour les types de base (sérialisation/désérialisation)

Notes techniques

  • Crate : crates/fractal-stt/
  • Le trait SttEngine doit être #[async_trait] + Send + Sync
  • AudioData accepte audio/ogg, audio/webm, audio/wav comme mime_type
  • Voir specs §3.2 (SF-M1-04) et §3.3 (ST-M1-01, ST-M1-02)
## Contexte M1 — Speech-to-Text. Première brique du module : définir les abstractions qui permettront de brancher plusieurs moteurs STT de manière interchangeable. ## Critères d'acceptation - [ ] Trait `SttEngine` défini avec les méthodes : `name()`, `transcribe(audio, opts) -> Result<Transcript>`, `health_check() -> Result<EngineStatus>`, `supported_languages() -> Vec<LanguageCode>` - [ ] Types `AudioData` (bytes, mime_type, duration_ms), `Transcript` (text, language, confidence, segments), `TranscriptSegment` (start_ms, end_ms, text) définis et publics - [ ] Enum `Confidence` : `High`, `Medium`, `Low` - [ ] Struct `TranscribeOptions` (language cible ou auto-detect) - [ ] Enum `EngineStatus` : `Available`, `Unavailable(String)`, `NotConfigured` - [ ] Le crate implémente le trait `Extension` de `fractal-ext` et s'enregistre auprès de l'`EventBus` - [ ] Tests unitaires pour les types de base (sérialisation/désérialisation) ## Notes techniques - Crate : `crates/fractal-stt/` - Le trait `SttEngine` doit être `#[async_trait]` + `Send + Sync` - `AudioData` accepte `audio/ogg`, `audio/webm`, `audio/wav` comme mime_type - Voir specs §3.2 (SF-M1-04) et §3.3 (ST-M1-01, ST-M1-02)
Sign in to join this conversation.
No milestone
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#185
No description provided.