Skip to main content

voiceio

CI PyPI Python License: MIT

Voice dictation for Linux that learns you. Local, private, open source, and it fine-tunes itself on your own voice.

voiceio: dictation that learns you

Try it in your browser at voiceio.dev: no install, the model runs in the tab.

  • Types anywhere. Press your hotkey, speak, and the words stream into the focused app with a live underlined preview (IBus), on Wayland and X11: GNOME, KDE, Hyprland, sway, i3.
  • Runs on your machine. Whisper decodes your speech locally. No account, no server, no telemetry; logs never contain your words.
  • Learns your words. Keep your recordings (opt-in, on your disk) and voiceio fine-tunes its model on them while the machine is idle. It switches only when the new model wins on clips it never trained on. On the author's voice: 12.1% → 4.9% word errors after one night on a laptop CPU.

Install

With a coding agent. Paste this into Claude Code, Codex or any agent with a shell:

Install voiceio on this machine following https://voiceio.dev/llms.txt. Ask me which hotkey I want and whether to keep my recordings on this computer so voiceio can learn my voice. Finish with voiceio doctor and fix whatever it reports.

By hand:

sudo apt install pipx build-essential python3-dev portaudio19-dev ibus gir1.2-ibus-1.0 python3-gi   # Debian/Ubuntu
sudo dnf install pipx gcc gcc-c++ make python3-devel portaudio-devel ibus ibus-libs python3-gobject   # Fedora
sudo pacman -S python-pipx base-devel portaudio ibus python-gobject                                   # Arch

pipx install 'python-voiceio[desktop]'
voiceio setup        # model, hotkey, autostart

Then press your hotkey, speak, and press it again (or hold it while you speak). voiceio doctor shows what works and voiceio doctor --fix repairs what it can. NixOS, other extras and installing from source: docs/linux.md. Agent runbook: INSTALL.md.

Make it yours

voiceio vocab add Kalshi              # a name, recognized from the next dictation
voiceio corrections add kalchi Kalshi # fix whatever still comes out wrong
voiceio learn schedule on             # learn from your recordings while the machine is idle
voiceio learn status                  # what it learned and how each model scores

Scheduled learning runs daily or weekly at a time you pick, only on an idle machine on mains power, with a notification you can stop. It never switches models unless the new one wins, and voiceio learn rollback undoes a switch. Details: docs/learning.md.

Configure

Everything lives in ~/.config/voiceio/config.toml; config.example.toml documents every option. voiceio config set section.key value edits it in place.

Docs

Learning your voice Vocabulary, corrections, labeling, fine-tuning, evaluation, schedule
Choosing a model Whisper sizes, Parakeet, whisper.cpp servers, licenses
Commands Every voiceio command
Your data What is stored where, and what is off by default
Phone dictation Run voiceio headless on a home server
Linux support and troubleshooting Desktops, backends, NixOS, fixes
Comparisons voiceio vs Voxtype, Wispr Flow, Superwhisper, Dragon and others

Roadmap

  • Unbounded vocabulary: a decoder whose biasing has no token cap (see model choice).
  • GPU on AMD and Intel: let setup run a Vulkan whisper.cpp server for you.
  • Typing without IBus on GNOME and KDE: a libei backend.
  • Distro packages: AUR, .deb and .rpm.
  • One model everywhere: sync your fine-tune across your machines.

Contributing

Open an issue before a large PR. CONTRIBUTING.md covers the architecture, conventions and the reasoning behind the model choice. Install reports and ideas are welcome on the feedback board.

Credits

License

MIT. Model weights are not part of voiceio and carry their own licenses (see docs/models.md).

Metadata

Release files for python-voiceio 1.9.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-voiceio 1.9.1
File Size Uploaded
python_voiceio-1.9.1.tar.gz 2.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for python-voiceio 1.9.1
File Interpreter ABI Platform
python_voiceio-1.9.1-py3-none-any.whl Python 3 none any Details

Total release size: 4.7 MB

Release files / python_voiceio-1.9.1.tar.gz

Download URL python_voiceio-1.9.1.tar.gz
Size 2.4 MB
Tags Source
SHA-256 checksum
How to use checksums
37cf4165411a26df42aa74f9381e13cdc2ad1f422558c3176200e6abd0fdcfe5
BLAKE2b-256 checksum
How to use checksums
d4cf046eddfe8aa418d3e9c7b57452d5875dcaaa88f61fdae3b60e101a109f26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / python_voiceio-1.9.1-py3-none-any.whl

Download URL python_voiceio-1.9.1-py3-none-any.whl
Size 2.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
92cb1d5c0adda44cc9dd2dc5d79439c095f60c981770c819e33fd15ff223bf63
BLAKE2b-256 checksum
How to use checksums
3f47c810dbad3daa984fb7bcb435e84c877daa99234fa22564a2795c086fd678
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release history Release notifications | RSS feed

1.9.2

2 release files

This release

1.9.1 This release

2 release files

1.9.0

2 release files

1.8.3

2 release files

1.8.2

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.1

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.9.11

2 release files

0.9.10

2 release files

0.9.9

2 release files

0.9.8

2 release files

0.9.7

2 release files

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.13

2 release files

0.3.12

2 release files

0.3.11

2 release files

0.3.10

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.1

2 release files

0.2.0

2 release 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