Skip to content

Repository files navigation

Speech-to-Text

Local speech-to-text using Whisper with global hotkey support. Records audio from the microphone, transcribes, and copies to clipboard.

Files

speech-to-text/
├── stt_daemon.py      # Background daemon with global hotkeys (recommended)
├── stt_simple.py      # Simple CLI tool (Enter to record)
├── start-stt.bat      # Windows launcher for Finnish daemon
├── models/            # Downloaded models (git-ignored)
├── pyproject.toml     # Python dependencies (uv)
└── docs/
    └── stt-setup.md   # Setup and troubleshooting guide

Setup

uv venv
uv sync

Option 1: Global Hotkey Daemon (Recommended)

Run once, use from anywhere:

start-stt.bat
# or manually:
.venv\Scripts\activate
python stt_daemon.py --finnish

Hotkeys:

  • Ctrl+Alt+S — Start/stop recording (copies to clipboard)
  • Ctrl+Alt+D — Stop recording AND auto-paste

Options:

python stt_daemon.py --finnish                        # Finnish model, default hotkeys
python stt_daemon.py --finnish --hotkey "ctrl+alt+z"  # Custom record hotkey
python stt_daemon.py --finnish --model large          # Best accuracy
python stt_daemon.py --model base                     # Standard Whisper, auto-detect language

Auto-start with Windows:

  1. Create a shortcut to start-stt.bat
  2. Press Win+R, type shell:startup, Enter
  3. Move the shortcut there

Option 2: CLI Tool

Manual recording with Enter key:

.venv\Scripts\activate
python stt_simple.py --finnish

Options:

python stt_simple.py                          # Standard Whisper, auto-detect language
python stt_simple.py --finnish                # Finnish fine-tuned model
python stt_simple.py --finnish --model large  # Best accuracy (needs 12GB+ VRAM)
python stt_simple.py --save-recordings        # Save audio files
python stt_simple.py --continuous             # Multiple recordings in one session

Models

Finnish (--finnish flag)

Size Model VRAM
tiny Finnish-NLP/whisper-tiny-finnish ~150MB
medium Finnish-NLP/whisper-medium-finnish ~1.5GB
large Finnish-NLP/whisper-large-finnish-v3 ~3GB

Default for --finnish is medium. Models are downloaded once and cached in models/.

Standard Whisper

tiny, base, small, medium, large — downloaded automatically by openai-whisper.

Privacy

  • 100% local processing — no cloud uploads, no API keys
  • All recordings stay on your machine

See docs/stt-setup.md for detailed setup and troubleshooting.

About

Local speech-to-text using Whisper with global hotkey support for Finnish and English

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages