From 05a437376873c5f8457569b396b2aeadbcc4c1d3 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Mon, 10 Nov 2025 17:10:34 +0000 Subject: [PATCH] docs: Update README and plugin info for Candle STT migration Removes all references to "Faster-Whisper", Python, and PyO3 from README.md. Updates the plugin name, description, and error messages in whisper_plugin.rs to "Candle Whisper". This aligns all user-facing documentation and in-app text with the new pure Rust STT backend. --- README.md | 20 ++----------------- .../coldvox-stt/src/plugins/whisper_plugin.rs | 6 +++--- 2 files changed, 5 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 7d946ef2..a254d039 100644 --- a/README.md +++ b/README.md @@ -22,13 +22,13 @@ This copies the hooks from `.githooks/` into `.git/hooks/` and makes them execut Minimal root README. Full developer & architecture guide: see [`CLAUDE.md`](CLAUDE.md). ## Overview -ColdVox is a modular Rust workspace providing real‑time audio capture, VAD, STT (Faster-Whisper), and cross‑platform text injection. +ColdVox is a modular Rust workspace providing real‑time audio capture, VAD, STT (Candle Whisper), and cross‑platform text injection. ## Quick Start **For Voice Dictation (Recommended):** ```bash -# Run with default Faster-Whisper STT and text injection (model auto-discovered) +# Run with default Candle Whisper STT and text injection (model auto-discovered) cargo run --features text-injection # With specific microphone device @@ -49,15 +49,12 @@ cargo run --bin mic_probe -- list-devices > Audio dumps: The TUI dashboard now records raw audio to `logs/audio_dumps/` by default. Pass `--dump-audio=false` to disable persistent capture. -**Note on Defaults**: Faster-Whisper STT is the default feature (enabled automatically), ensuring real speech recognition in the app and tests. This prevents fallback to the mock plugin, which skips transcription. Override with `--stt-preferred mock` or env `COLDVOX_STT_PREFERRED=mock` if needed for testing. For other STT backends, enable their features and set preferred accordingly. - ### Configuration (Canonical Path) - Canonical STT selection config lives at `config/plugins.json`. - Any legacy duplicates like `./plugins.json` or `crates/app/plugins.json` are deprecated and ignored at runtime. A warning is logged on startup if they exist. Please migrate changes into `config/plugins.json` only. - Some defaults can also be set in `config/default.toml`, but `config/plugins.json` is the source of truth for STT plugin selection. ### Whisper Model Setup -- **Python Package**: Install the `faster-whisper` Python package via pip - **Models**: Whisper models are automatically downloaded on first use - **Model Identifiers**: Use standard Whisper model names (e.g., "tiny.en", "base.en", "small.en", "medium.en") - **Manual Path**: Set `WHISPER_MODEL_PATH` to specify a model identifier or custom model directory @@ -74,19 +71,6 @@ cargo run --bin mic_probe -- list-devices More detail: See [`CLAUDE.md`](CLAUDE.md) for full developer guide. -### Python 3.13 and PyO3 -If your system default Python is 3.13, current `pyo3` versions may warn about unsupported Python version during build. Two options: - -1) Prefer Python 3.12 for development tools, or -2) Build using the stable Python ABI by exporting: - -```bash -set -gx PYO3_USE_ABI3_FORWARD_COMPATIBILITY 1 # fish shell -cargo check -``` - -We plan to upgrade `pyo3` in a follow-up to remove this requirement. - ### Future Vision (Experimental) - We're actively exploring an **always-on intelligent listening** architecture that keeps a lightweight listener running continuously and spins up tiered STT engines on demand. - This speculative work includes decoupled listening/processing threads, dynamic STT memory management, and context-aware activation. diff --git a/crates/coldvox-stt/src/plugins/whisper_plugin.rs b/crates/coldvox-stt/src/plugins/whisper_plugin.rs index a811dac5..5563bb26 100644 --- a/crates/coldvox-stt/src/plugins/whisper_plugin.rs +++ b/crates/coldvox-stt/src/plugins/whisper_plugin.rs @@ -246,8 +246,8 @@ impl SttPlugin for WhisperPlugin { fn info(&self) -> PluginInfo { PluginInfo { id: "whisper".to_string(), - name: "Faster Whisper".to_string(), - description: "Local transcription via faster-whisper".to_string(), + name: "Candle Whisper".to_string(), + description: "Local transcription via Candle Whisper".to_string(), requires_network: false, is_local: true, is_available: check_whisper_available(), @@ -722,7 +722,7 @@ impl SttPluginFactory for WhisperPluginFactory { if !check_whisper_available() { return Err(SttError::NotAvailable { plugin: "whisper".to_string(), - reason: "The faster-whisper Python module is not available. Install the `faster-whisper` package.".to_string(), + reason: "The Candle Whisper implementation is not available.".to_string(), } .into()); }