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, on mains power and only while you're away from the computer: it stops within seconds when you come back and resumes later where it was. You get a notification with a button to stop it. 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.3

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.3
File Size Uploaded Provenance
python_voiceio-1.9.3.tar.gz 2.4 MB With provenance Details

Built distribution (wheel)

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

Total release size: 4.7 MB

Release files / python_voiceio-1.9.3.tar.gz

Download URL python_voiceio-1.9.3.tar.gz
Size 2.4 MB
Tags Source
SHA-256 checksum
How to use checksums
8a4c5e73834a000d577a8407aaabab833322991d44f2b003d5fdb0aadf49ce68
BLAKE2b-256 checksum
How to use checksums
a36cf6269ee8cab499af03fca8159bb6dc960dbbbf63e141fc5a5eeb0b16ba2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 21, 2026.

Transparency log

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

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

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 21, 2026.

Transparency log

Security for python-voiceio 1.9.3

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for python_voiceio-1.9.3.tar.gz

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 21, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.9.3 This release

2 release files Full provenance

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