[M1] Implémenter WhisperEngine via subprocess whisper-cpp #5

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

Contexte

Moteur STT local principal. Invoque le binaire whisper-cpp en subprocess pour transcrire l'audio, sans dépendance réseau.

Critères d'acceptation

  • Struct WhisperEngine : binary_path: PathBuf, model_path: PathBuf, model_size: WhisperModel (Tiny/Base/Small/Medium/Large)
  • transcribe() : écriture audio dans tempfile → conversion WAV 16kHz mono via GStreamer → appel subprocess → parse JSON output
  • health_check() : vérifie l'existence du binaire et du modèle
  • supported_languages() : liste statique des langues Whisper
  • Gestion des erreurs : binaire absent, modèle absent, conversion audio échouée, timeout subprocess (60s max)
  • Test d'intégration avec un fichier WAV de test (voix synthétique courte)

Notes techniques

  • Dépend de : #4 (trait SttEngine)
  • Conversion audio via pipeline GStreamer (déjà dépendance GTK de Fractal)
  • Format intermédiaire : WAV PCM 16kHz mono (requis par whisper-cpp)
  • Sortie subprocess : JSON avec segments[].text et timestamps
## Contexte Moteur STT local principal. Invoque le binaire `whisper-cpp` en subprocess pour transcrire l'audio, sans dépendance réseau. ## Critères d'acceptation - [ ] Struct `WhisperEngine` : `binary_path: PathBuf`, `model_path: PathBuf`, `model_size: WhisperModel` (Tiny/Base/Small/Medium/Large) - [ ] `transcribe()` : écriture audio dans tempfile → conversion WAV 16kHz mono via GStreamer → appel subprocess → parse JSON output - [ ] `health_check()` : vérifie l'existence du binaire et du modèle - [ ] `supported_languages()` : liste statique des langues Whisper - [ ] Gestion des erreurs : binaire absent, modèle absent, conversion audio échouée, timeout subprocess (60s max) - [ ] Test d'intégration avec un fichier WAV de test (voix synthétique courte) ## Notes techniques - Dépend de : #4 (trait SttEngine) - Conversion audio via pipeline GStreamer (déjà dépendance GTK de Fractal) - Format intermédiaire : WAV PCM 16kHz mono (requis par whisper-cpp) - Sortie subprocess : JSON avec `segments[].text` et timestamps
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#5
No description provided.