kwap.io

Linux Whisper

v0.9.7 · Rust · GPLv3

Speech to text for Linux.

Download

Press a key, speak, and your words appear in the app you are using.

It all happens on your own computer. No cloud. No tracking.

01How it works

1

Press a key.

One hotkey starts dictation. It works in every app.

2

Speak.

Talk the way you normally do. Your voice is recorded on your own computer.

3

It listens.

Whisper turns your speech into text, on your computer.

4

It types.

Your words appear where your cursor is while you speak.

The speech recognition is done by whisper.cpp. Nothing leaves your computer.

02Features

Dictation in any app

Press your shortcut anywhere and speak. Your words appear in the window you are working in as you talk, like dictation on a phone, and the last few are corrected as it hears more. The shortcut's own keys are kept out of it.

Audio files

Open a WAV, MP3, OGG, M4A, OPUS, FLAC or MP4 file and get a transcript with time stamps that you can search.

Export

Save a transcript as TXT, SRT, VTT or CSV: plain text for notes, subtitles for video, a table for analysis.

50+ languages

The language is detected again for each sentence, so you can switch language from one sentence to the next. Tell it which languages you speak and it gets them right even with an accent.

Tidy text

Paragraphs, capital letters and punctuation are cleaned up for you. If you turn it on, a language model on your own computer polishes the text further.

Faster with NVIDIA

An NVIDIA graphics card speeds up transcription (CUDA) when you build Linux Whisper with GPU support. Without one, the processor does the work.

Private

Everything is processed on your computer. No account, no telemetry, no cloud.

03Works on

  • Pop!_OS 24.04
  • Ubuntu 24.04+
  • Fedora 40+
  • Arch Linux
  • Debian 13+

On Wayland and on X11: GNOME, KDE Plasma, Sway and other desktops.

04Before you install

Install what Linux Whisper needs. Pick the block for your system. Building needs Rust 1.89 or newer.

Ubuntu, Pop!_OS, Debian

# Build tools, and the GTK4, libadwaita and sound libraries
sudo apt install build-essential cmake pkg-config git curl \
  libgtk-4-dev libadwaita-1-dev libasound2-dev

# Pasting the text
sudo apt install wl-clipboard xdotool wtype

# The hotkey: add yourself to the "input" group, then log out and back in
sudo usermod -aG input $USER

# Rust (the version in apt is too old)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
. "$HOME/.cargo/env"

Fedora

sudo dnf install gcc gcc-c++ cmake pkgconf-pkg-config git rust cargo \
  gtk4-devel libadwaita-devel alsa-lib-devel wl-clipboard xdotool wtype
sudo usermod -aG input $USER    # then log out and back in

Arch Linux

sudo pacman -S --needed base-devel cmake git rust gtk4 libadwaita alsa-lib \
  wl-clipboard xdotool wtype
sudo usermod -aG input $USER    # then log out and back in

05Install

A ready-made package

Download the latest .deb package or the tarball from the releases page. These run on the processor; for an NVIDIA graphics card, build from the source. From the tarball, run ./install.sh in the extracted folder.

Latest release →

From the source

Download the code and build it:

git clone https://github.com/kwap/linux-whisper.git
cd linux-whisper
cargo build --release

Install it for everyone on the computer. It asks for your password:

./build-aux/install.sh

This puts the program in /usr/local, adds it to the applications menu, and adds the rule that lets it paste text on GNOME and KDE and keep its shortcut out of your apps. To remove it again, run ./build-aux/uninstall.sh.

Or let just do both:

just release
just install

With an NVIDIA graphics card

Install the CUDA toolkit, then build with GPU support:

cargo build --release --features cuda

If nvcc refuses your compiler version (CUDA 13 with GCC 16 on Fedora 44, for example), install gcc15-c++ and build with NVCC_CCBIN=/usr/bin/g++-15 in front of the command.

The first start

Linux Whisper asks to download a Whisper model. You can choose another model size at any time, in Preferences or in the window.

Press Super+Shift+Space to start speaking and again to stop. To use other keys, click the shortcut in Preferences and press the ones you want. Your words appear where your cursor is as you speak, and when you stop, the text is on the clipboard too.

If you speak more than one language, tick them in Preferences under Languages You Speak. Switching language between sentences works best with the Small model or larger.

On GNOME there is no tray icon unless you add the AppIndicator extension, so Linux Whisper opens its window instead. Closing the window keeps it running, so the hotkey keeps working.

06Security

A security audit covered all seven crates of the code and the build pipeline. It found the project clean and safe to distribute.

No unsafe code

There is no unsafe block anywhere in the code. Whisper is called through the safe whisper-rs bindings.

Nothing is sent out

No telemetry, analytics or tracking. The only download is the model, over HTTPS from Hugging Face. Your transcripts never leave your computer.

Checked downloads

A downloaded model is compared with its known SHA-256 hash. A damaged or altered file is rejected.

No command injection

Other programs are started with safe arguments and get their input through a pipe. What you say or type is never put into a shell command.

Not a keylogger

The hotkey listener watches only for the shortcut you set, and whether a key like Ctrl is held, so dictated words are not typed as shortcuts. To keep the shortcut out of your apps it passes every other key straight on, and it never records, stores or sends any of them.

Pinned build tools

Every build step on GitHub is pinned to an exact commit and checked. No unpinned code from others.

The audit looked for: back doors, data leaving the computer, stolen credentials, misuse of files, gaining extra rights, unsafe calls into other code, command injection, script injection (XSS), the supply chain of the dependencies, and the build pipeline.

07About

Language
Rust
License
GPLv3
Speech recognition
whisper.cpp, through whisper-rs
Interface
GTK4 and libadwaita
Audio
CPAL
Display
Wayland and X11

Code on GitHub →