Skip to content

Repository files navigation

Voicium

Local-first push-to-talk dictation for Ubuntu, powered by Whisper.

Hold a hotkey, speak, release it, and get recognized text in your clipboard without sending audio to a cloud API.

Python Ubuntu Whisper CUDA License

What It Does

Voicium is a small Ubuntu desktop daemon for private voice dictation:

hold hotkey -> speak -> release -> local transcription -> clipboard -> paste anywhere

It is currently focused on Russian dictation, but uses Whisper-compatible multilingual models. Other languages can work when selected explicitly, while desktop post-processing is still Russian-oriented.

Features

  • Local Whisper transcription through whisper.cpp profiles.
  • Global push-to-talk hotkey via evdev.
  • Tray menu for microphone, hotkey, model, and paste settings.
  • Clipboard support for Wayland and X11.
  • Optional auto-paste with clipboard fallback.
  • SQLite transcript history.
  • Optional NVIDIA/CUDA acceleration with CPU fallback.
  • Ubuntu .deb packaging and systemd user service.

Current Scope

Area Status
Ubuntu 24.04 GNOME Primary target
Wayland / X11 Supported
Russian dictation Primary workflow
Other languages Available through explicit Whisper language/profile settings
macOS / Windows Not supported

Important limitation: the daemon always applies Russian post-processing. That is useful for commands like запятая, точка, and новая строка, but Voicium is not yet a fully multilingual desktop dictation app.

Install Dependencies

sudo apt update
sudo apt install -y \
  ffmpeg \
  pulseaudio-utils \
  wl-clipboard \
  xclip \
  libnotify-bin \
  gir1.2-gtk-3.0 \
  gir1.2-ayatanaappindicator3-0.1 \
  python3-gi

For global hotkeys, add your user to the input group and log out/in:

sudo usermod -aG input "$USER"

Quick Start From Source

git clone <repo-url> voicium
cd voicium
uv sync --frozen
uv run voicium healthcheck
uv run voicium record-transcribe --duration 5 --lang ru
uv run voicium daemon

Manual daemon control:

uv run voicium start
uv run voicium stop
uv run voicium status

Ubuntu Package

./scripts/build-deb.sh
sudo apt install --reinstall ./dist/deb/voicium_0.1.0_all.deb
systemctl --user daemon-reload
systemctl --user enable --now voicium.service

Logs:

journalctl --user -u voicium.service -n 100 --no-pager

CLI Examples

voicium transcribe sample.wav --lang ru --profile small-q8_0
voicium record-transcribe --duration 5 --lang ru --keep-audio sample.wav
voicium audio inputs
voicium backend select --backend auto
voicium history list --limit 20

Models

Profile Runtime Best for
small-q8_0 whisper.cpp Default CPU quality/speed balance
small whisper.cpp Better small-model quality
medium-q5_0 whisper.cpp Balanced quality on stronger machines
large-v3-turbo-q5_0 whisper.cpp Best multilingual quality currently wired into Voicium
russian Hugging Face Transformers Russian-only quality profile

Download models explicitly when needed:

voicium models download small-q8_0
voicium models download medium-q5_0
voicium models download large-v3-turbo-q5_0
voicium models download russian

Models are stored in ~/.local/share/voicium/models. The russian profile requires:

uv sync --extra transformers

Configuration

User config lives at ~/.config/voicium/config.toml, or at $XDG_CONFIG_HOME/voicium/config.toml when XDG_CONFIG_HOME is set.

voicium config show

Common keys:

[general]
language = "ru"

[hotkey]
key = "KEY_RIGHTCTRL"

[transcription]
backend = "auto"
model_profile = "small-q8_0"
runtime_mode = "small-q8_0"

[paste]
auto_paste = false
fallback_to_clipboard = true

[russian.replacements]
"опенкод" = "OpenCode"
"гитлаб" = "GitLab"

Package installation and reinstallation do not overwrite user config.

Development

uv sync --frozen
uv run ruff check
uv run ruff format --check
uv run pytest
uv build
./scripts/build-deb.sh

Project map:

src/voicium/          Python package
tests/                pytest suite
scripts/build-deb.sh  Ubuntu package builder
resources/systemd/    systemd user service
docs/                 design and release notes
AGENTS.md             instructions for AI coding agents

Privacy

Audio is transcribed locally by the selected runtime. Voicium does not add telemetry, analytics, or remote logging. Model files may be downloaded from their upstream hosting locations when requested or when a missing whisper.cpp model is needed.

License

Voicium is MIT licensed. Whisper model files and third-party runtime components are provided by their respective upstream projects and may have separate licenses.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages