whspr
A minimalist dictation tool for local speech recognition using OpenAI's Whisper and NVIDIA's Parakeet models. Its interface is fully keyboard-driven and sound-based so as not to interfere with windowing or application focus.
Processing is done locally. If whspr[gpu] optional dependencies are installed and an
Nvidia GPU is available, the model whisper-large-v3-turbo will be used via faster-whisper;
otherwise, parakeet-tdt-0.6b-v3
will be run on the CPU via onnx-asr. 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.
To free the model's memory without waiting that long, stop the server with
whspr --stop-server.
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.
The background server can also be stopped from the command line before its five minutes of inactivity have passed; a transcription that is already underway still completes, and the next dictation starts the server again:
whspr --stop-server
whspr can also be accessed from within Python:
from whspr import transcribe
result = transcribe("path/to/audio.mp3")
Installation
whspr depends on:
- Python 3.10 or newer.
- the
aplay,arecord,ydotoolcommands. The former two are part of thealsa-utilspackage and installed on most distros by default.ydotoolis optional and only required for the--pasteflag (see Usage). - a clipboard backend compatible with
pyperclip, e.g.wl-clipboardon Wayland orxclipon 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
Metadata
Release files for whspr 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| whspr-1.2.0.tar.gz | 112.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| whspr-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 237.4 kB
Release files / whspr-1.2.0.tar.gz
| Download URL | whspr-1.2.0.tar.gz |
|---|---|
| Size | 112.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
690bc3e292a11cdf62cfd5ad63f280972daa8857122c5f79df18761a3dfd5797
|
|
BLAKE2b-256 checksum How to use checksums |
9491d52d01d0ebcf9850194560bc03f5914d3b8f521607e81cac35c692523582
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.4
|
Release files / whspr-1.2.0-py3-none-any.whl
| Download URL | whspr-1.2.0-py3-none-any.whl |
|---|---|
| Size | 125.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3b99d249693f186399422d8380f1086fd6e6d6d7d1a112dd29fe7c59415012ff
|
|
BLAKE2b-256 checksum How to use checksums |
5f1679b5a9c3e449d0909dfc7c1cda5c50f36aafe269a02d3750d9b67df7ebf3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.4
|