Skip to content

FIEF-nohell/sayso

Repository files navigation

sayso icon

sayso

Local, offline speech-to-text for Windows. One hotkey, instant transcript, straight to your clipboard.

Release Platform Built with Tauri STT 100% local


sayso sits quietly in your tray. Press Ctrl+Alt+Space, speak, press it again. Your words are transcribed locally by whisper.cpp and land in your clipboard, ready to paste anywhere. No account, no cloud, no network round-trip.

Features

  • Global hotkey dictation: press to record, press to finish, from any app. Rebindable in settings.
  • Live preview: watch the transcript form while you speak (updates roughly every 1.5 seconds, with an automatic fallback to batch mode on slow machines).
  • Auto-copy: the final transcript is copied to your clipboard the moment it is ready.
  • PowerToys-Run-style popup: a minimal always-on-top pill that shows recording state, live text, and the result, then gets out of your way.
  • History: every transcription is kept locally with search, copy, and delete.
  • Multilingual: automatic language detection or pin one of 98 languages.
  • Model choice: tiny, base, small, or medium Whisper models, downloaded on first use and cached locally.
  • Microphone selector: pick any input device, with graceful fallback to the system default if it disappears.
  • Tray native: close to tray, double-click to reopen, optional autostart with Windows (starts hidden).
  • Dark and light themes.

Installation

Grab the latest installer from the Releases page:

File What it is
sayso_x.y.z_x64-setup.exe NSIS installer (recommended)
sayso_x.y.z_x64_en-US.msi MSI installer

On first dictation, sayso downloads the Whisper base model (about 148 MB) once and stores it locally. Everything after that works fully offline.

Usage

  1. Launch sayso. It lives in your system tray.
  2. Press Ctrl+Alt+Space and start speaking. The popup shows the recording state and a live preview.
  3. Press Ctrl+Alt+Space again to finish. The transcript is copied to your clipboard and saved to history.
  4. Press Esc while the popup is open to cancel a recording.
  5. Double-click the tray icon (or use its menu) to open the main window with your history and settings.

Settings

Setting Description
Hotkey Rebind the global dictation shortcut
Language Auto-detect or one of 98 fixed languages
Model Whisper tiny / base / small / medium, with download manager
Microphone Input device selection with system-default fallback
Live preview Toggle live partial transcripts while recording
Autostart Start with Windows, hidden in the tray
Popup auto-hide How long the result stays on screen
Theme Dark (default) or light

Privacy

Your audio never leaves your machine. Transcription runs entirely on your CPU via whisper.cpp. sayso makes exactly one kind of network request: downloading a Whisper model from Hugging Face when you select one that is not cached yet. There is no telemetry, no account, and no cloud API.

Local data lives here:

Path Contents
%APPDATA%\sayso\settings.json Settings
%APPDATA%\sayso\history.json Transcription history
%APPDATA%\sayso\models\ Downloaded Whisper models
%LOCALAPPDATA%\sayso\logs\ Log files

Delete those folders and sayso forgets everything.

Building from source

Prerequisites:

  • Node.js 22+ and pnpm
  • Rust (stable, MSVC toolchain) with Visual Studio Build Tools (C++ workload)
  • CMake and LLVM (required by whisper-rs; set LIBCLANG_PATH to LLVM's bin directory)
pnpm install
pnpm tauri dev     # run in development
pnpm tauri build   # build installers into src-tauri/target/release/bundle/

Verification suite:

pnpm typecheck
pnpm lint
cd src-tauri
cargo check
cargo clippy -- -D warnings
cargo test --lib

Note: whisper-rs on Windows needs the MSVC environment (INCLUDE/LIB from vcvars64.bat) in addition to CMake and LLVM, otherwise its bindgen step fails with layout errors. Run builds from a Developer PowerShell / Command Prompt for VS or call vcvars64.bat first.

Tech stack

Layer Choice
Shell Tauri 2 (Rust host + WebView2)
UI React 19, Vite, TypeScript, Tailwind CSS 4, Zustand
Speech-to-text whisper-rs (whisper.cpp bindings)
Audio capture cpal, 16 kHz mono
Storage Plain JSON, no database

Contributing

Issues and pull requests are welcome. Please run the verification suite above before opening a PR.

About

A Windows dictation utility. Runs minimized in the background (tray). Press a global hotkey (rebindable in settings), speak, and it transcribes speech to text locally. Shows a PowerToys-Run-style popup with the transcription, auto-copies the result to the clipboard, and keeps a locally stored history of past transcriptions.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors