[M1] Définir le trait SttEngine et les types communs STT #4

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

Contexte

Fondation de la crate fractal-stt. Tous les moteurs STT (Whisper, Vosk, OpenAI) implémentent ce trait commun, ce qui permet de les interchanger dans la config.

Critères d'acceptation

  • Trait SttEngine (#[async_trait]) avec : name(), transcribe(audio, opts), health_check(), supported_languages()
  • Struct AudioData : bytes: Vec<u8>, mime_type: String, duration_ms: Option<u64>
  • Struct Transcript : text, language, confidence: Confidence (High/Medium/Low), segments: Vec<TranscriptSegment>
  • Struct TranscriptSegment : start_ms, end_ms, text
  • Struct TranscribeOptions : language: Option<LanguageCode>, model_size, etc.
  • Enum EngineStatus pour health_check()
  • Tests unitaires sur les types (sérialisation, constructeurs)

Notes techniques

  • Dépend de : #2 (fractal-ext)
  • TranscriptSegment prépare le surlignage temporel futur
  • LanguageCode = newtype sur String avec validation ISO 639-1
## Contexte Fondation de la crate `fractal-stt`. Tous les moteurs STT (Whisper, Vosk, OpenAI) implémentent ce trait commun, ce qui permet de les interchanger dans la config. ## Critères d'acceptation - [ ] Trait `SttEngine` (`#[async_trait]`) avec : `name()`, `transcribe(audio, opts)`, `health_check()`, `supported_languages()` - [ ] Struct `AudioData` : `bytes: Vec<u8>`, `mime_type: String`, `duration_ms: Option<u64>` - [ ] Struct `Transcript` : `text`, `language`, `confidence: Confidence` (High/Medium/Low), `segments: Vec<TranscriptSegment>` - [ ] Struct `TranscriptSegment` : `start_ms`, `end_ms`, `text` - [ ] Struct `TranscribeOptions` : `language: Option<LanguageCode>`, `model_size`, etc. - [ ] Enum `EngineStatus` pour `health_check()` - [ ] Tests unitaires sur les types (sérialisation, constructeurs) ## Notes techniques - Dépend de : #2 (fractal-ext) - `TranscriptSegment` prépare le surlignage temporel futur - `LanguageCode` = newtype sur `String` avec validation ISO 639-1
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#4
No description provided.