feat(stt): OpenAiWhisperEngine + VoskEngine + SecretString (#6) #88

Closed
charles wants to merge 5 commits from feat/6-alt-engines into main
Owner

Résumé

Deux moteurs STT alternatifs + type SecretString.

Changements

  • src/secret.rs : SecretString — masqué dans Debug/Display (***)
  • src/openai_whisper.rs : OpenAiWhisperEngine
    • base_url configurable (OpenAI, Groq, Together.ai…)
    • Multipart HTTP → verbose_json, segments avec timestamps
    • health_check() via /v1/models
    • reqwest 0.12 avec rustls-tls (pas d'OpenSSL)
  • src/vosk.rs : VoskEngine via subprocess vosk-transcriber
    • Modèles dans ~/.local/share/fractal-plus/models/vosk-<lang>/
    • Timeout 120 s, parse JSON ligne par ligne

Plan de test

  • cargo test -p fractal-stt passe
  • SecretString ne logue pas la clé
  • VoskEngine::health_check()Unavailable si binaire absent

Closes #6

## Résumé Deux moteurs STT alternatifs + type `SecretString`. ## Changements - `src/secret.rs` : `SecretString` — masqué dans `Debug`/`Display` (`***`) - `src/openai_whisper.rs` : `OpenAiWhisperEngine` - `base_url` configurable (OpenAI, Groq, Together.ai…) - Multipart HTTP → `verbose_json`, segments avec timestamps - `health_check()` via `/v1/models` - `reqwest 0.12` avec `rustls-tls` (pas d'OpenSSL) - `src/vosk.rs` : `VoskEngine` via subprocess `vosk-transcriber` - Modèles dans `~/.local/share/fractal-plus/models/vosk-<lang>/` - Timeout 120 s, parse JSON ligne par ligne ## Plan de test - [ ] `cargo test -p fractal-stt` passe - [ ] `SecretString` ne logue pas la clé - [ ] `VoskEngine::health_check()` → `Unavailable` si binaire absent Closes #6
charles closed this pull request 2026-04-06 01:54:02 +00:00
Some checks are pending
CI / cargo check (pull_request) Has been cancelled
CI / cargo test (pull_request) Has been cancelled
CI / clippy + rustfmt (pull_request) Has been cancelled
qa
Required

Pull request closed

Sign in to join this conversation.
No description provided.