ryu-stt 0.1.8

Speech-to-text (STT) modality primitive for Ryu: `transcribe(audio) -> text` with a swappable engine seam (in-process parakeet ONNX by default; whisper.cpp and Gateway-routed cloud Whisper as HTTP proxies). An extracted Core capability crate — in-process by default and consumed as a NON-optional path dependency (the voice/meetings/hardware data paths reach it unconditionally). The parakeet ONNX inference is the genuinely in-process hot path (feature `voice-parakeet`); whisper + gateway engines are thin HTTP proxies. Host couplings the crate cannot own (whisper base-url, Gateway url/bearer, the parakeet model dir) are injected via the narrow `SttHost` trait, so the crate has ZERO dependency on apps/core.
Documentation

ryu-stt

Speech-to-text modality primitive for Ryu: transcribe(audio) -> text behind a swappable engine seam.

Role in the decomposition

An extracted Core capability crate — in-process by default and consumed as a non-optional path dependency: the voice / meetings / hardware data paths reach it unconditionally. It carries zero dependency on apps/core. Host couplings it cannot own (whisper base-url, Gateway url/bearer, the parakeet model dir) inject via the narrow SttHost trait.

Key API (src/lib.rs, src/parakeet.rs)

  • SttHost — supplies whisper base-url, Gateway url/bearer, parakeet model dir.
  • transcribe_wav / transcribe_wav_detailed — the entry points.
  • Transcription / TranscriptSegment — result types.
  • default_stt_engine() — the cross-surface default engine id.
  • mod parakeet — the in-process ONNX inference path.

Swap seam

Three engines behind one transcribe:

  • parakeet ONNX — in-process default, the genuine hot path, behind the voice-parakeet feature (pulls transcribe-rs + native ONNX Runtime, plus a process-global lazily-loaded model). With the feature off, parakeet::transcribe returns a clear "not built" error and the default falls back to whisper.cpp.
  • whisper.cpp — thin HTTP proxy to a local whisper server.
  • Gateway-routed cloud Whisper — thin HTTP proxy through the Gateway.

Consumed as

Compiled-into-Core crate (default path dependency); voice-parakeet off by default to keep cargo test / CI lean and the default build free of the native ONNX dep.