Skip to main content

whspr

A minimalist dictation tool for local speech recognition using OpenAI's Whisper models. Its interface is fully keyboard-driven and sound-based so as not to interfere with windowing or application focus.

Processing is done locally using faster-whisper. If whspr[gpu] optional dependencies are installed and an Nvidia GPU is available, the model whisper-large-v3-turbo will be used; otherwise, whisper-small will be used. whspr is currently only available on Linux and can be installed from PyPI.

Transcription happens in a background server process that keeps the model warm between dictations and shuts itself down automatically after five minutes of inactivity; it is started (and restarted) on demand, so this is invisible in use.

Usage

Bind the following commands to your preferred keyboard shortcuts (examples given here).

whspr            # Super+C
whspr --paste    # Super+V
whspr --cancel   # Super+X

In the example given, Super+C and Super+V will both start or stop dictation and copy the result to the clipboard. The difference is that Super+V will additionally paste the result into the currently focussed application. Super+X will cancel any dictation currently in progress. Sounds will indicate when whspr is listening and when it has finished processing.

whspr can also be accessed from within Python:

from whspr import transcribe
result = transcribe("path/to/audio.mp3")

Installation

whspr depends on:

  • the aplay, arecord, ydotool commands. The former two are part of the alsa-utils package and installed on most distros by default. ydotool is optional and only required for the --paste flag (see Usage).
  • a clipboard backend compatible with pyperclip, e.g. wl-clipboard on Wayland or xclip on X11.
  • for optional GPU-accelerated speech recognition, an Nvidia GPU and drivers are required.

On Ubuntu, simply run:

sudo apt update && sudo apt install -y alsa-utils wl-clipboard xclip ydotool pipx
pipx install 'whspr[gpu]'  # gpu support is optional; omit [gpu] if it's not desired
whspr --finish-setup     # optional to pre-load the model from the internet before its first use

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

whspr-1.1.0.tar.gz (107.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

whspr-1.1.0-py3-none-any.whl (118.6 kB view details)

Uploaded Python 3

File details

Details for the file whspr-1.1.0.tar.gz.

File metadata

  • Download URL: whspr-1.1.0.tar.gz
  • Upload date:
  • Size: 107.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.4

File hashes

Hashes for whspr-1.1.0.tar.gz
Algorithm Hash digest
SHA256 3dc98772e3bee87234c3cdd43d5d8992d407440815b5755ed87d13b863e4e925
MD5 ca7419f5f80c93990727ea163768b24a
BLAKE2b-256 dd6487e686533a1f18d2611684c0b30e181d89ae21325cef0179235048439f7c

See more details on using hashes here.

File details

Details for the file whspr-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: whspr-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 118.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.4

File hashes

Hashes for whspr-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6f0cbda895729090ce3673205c28c4f5848850e3411956ef59f02435a932c284
MD5 7043fb362b5f8dec323eb7a70196cd89
BLAKE2b-256 3f2e1546da235163ff1e6157918431cd6b141f11a9ae6a62220067d31ce3174c

See more details on using hashes here.

Release history Release notifications | RSS feed

1.1.2

2 files

This release

1.1.0 This release

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page