[M1] Implémenter OpenAiWhisperEngine et VoskEngine #6

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

Contexte

Moteurs STT alternatifs : cloud (OpenAI / endpoints compatibles Groq) et local léger (Vosk, pour machines modestes).

Critères d'acceptation

  • OpenAiWhisperEngine : api_key: SecretString, base_url: Url (permet Groq et autres compatibles), appel HTTP multipart vers /v1/audio/transcriptions
  • OpenAiWhisperEngine::health_check() : valide la clé API avec un appel minimal
  • VoskEngine : invoque le binaire vosk ou la lib via FFI/subprocess
  • VoskEngine::health_check() : vérifie présence du modèle vosk dans le répertoire de données
  • Les deux moteurs respectent l'interface SttEngine
  • SecretString : type opaque qui ne loggue pas la clé API

Notes techniques

  • Dépend de : #4 (trait SttEngine)
  • base_url configurable → compatible Groq, Together, etc.
  • Vosk : modèle stocké dans ~/.local/share/fractal-plus/models/vosk-*/
  • Pas de dépendance openssl directe : utiliser reqwest avec rustls
## Contexte Moteurs STT alternatifs : cloud (OpenAI / endpoints compatibles Groq) et local léger (Vosk, pour machines modestes). ## Critères d'acceptation - [ ] `OpenAiWhisperEngine` : `api_key: SecretString`, `base_url: Url` (permet Groq et autres compatibles), appel HTTP multipart vers `/v1/audio/transcriptions` - [ ] `OpenAiWhisperEngine::health_check()` : valide la clé API avec un appel minimal - [ ] `VoskEngine` : invoque le binaire vosk ou la lib via FFI/subprocess - [ ] `VoskEngine::health_check()` : vérifie présence du modèle vosk dans le répertoire de données - [ ] Les deux moteurs respectent l'interface `SttEngine` - [ ] `SecretString` : type opaque qui ne loggue pas la clé API ## Notes techniques - Dépend de : #4 (trait SttEngine) - `base_url` configurable → compatible Groq, Together, etc. - Vosk : modèle stocké dans `~/.local/share/fractal-plus/models/vosk-*/` - Pas de dépendance `openssl` directe : utiliser `reqwest` avec `rustls`
charles referenced this issue from a commit 2026-04-06 01:51:07 +00:00
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#6
No description provided.