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.10.0

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

Built distribution (wheel)

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

Total release size: 4.8 MB

Release files / python_voiceio-1.10.0.tar.gz

Download URL python_voiceio-1.10.0.tar.gz
Size 2.4 MB
Tags Source
SHA-256 checksum
How to use checksums
9da2484cb6be58d20c3ee6566e03e19a8e0938ab00d853d7571857a9a3d480c8
BLAKE2b-256 checksum
How to use checksums
448ff72778f7a4fc17acc03a131a8111826710b431ccd3047c568bf09729762e
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.10.0-py3-none-any.whl

Download URL python_voiceio-1.10.0-py3-none-any.whl
Size 2.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
7f0268ce12337cc404d10af31cb4ca2d783d7378e8d5d9bb441ccc0634d50b31
BLAKE2b-256 checksum
How to use checksums
b3ea8d3ed32c436b99497768c931f53325379b5ad6c4ba8267eaed75fe7e2f24
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.10.0

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.10.0.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.10.0 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