Voice typing for Linux — press a key, speak, and text appears at your cursor.
Powered by Groq Whisper for lightning-fast speech recognition.
Linux has lacked a proper voice typing tool like Typeless on macOS. VoiType fills that gap — it's free, open-source, and works with any app on X11 and Wayland.
Hold a key. Speak. Release. Done.
Your speech is transcribed by Groq's Whisper API (blazing fast, free tier available), cleaned up by an LLM (filler removal, punctuation, grammar), and pasted at your cursor.
- Voice Dictation — Hold Right Alt, speak, release. Formatted text appears at your cursor.
- Smart Rewrite — Select text, hold Left Alt + Right Alt, speak rewrite instructions.
- AI Formatting — Automatic filler removal ("um", "uh"), grammar, punctuation via LLM. Toggle off for raw transcription.
- Result Popup — Transcribed text shown in a floating popup. Click to copy if auto-paste doesn't work in certain apps.
- Microphone Selection — Choose your input device from Settings. Auto sample rate fallback.
- Visual Overlay — Recording (red pulse), Processing (blue spinner), Done (green check).
- Multi-language — Japanese, English, and any Whisper-supported language.
- X11 + Wayland — Auto-detects your session. Works with Sway, Hyprland, niri, GNOME, KDE, etc.
- System Tray — Quick access to settings, toggles, and hotkey reference.
- Privacy — No data stored. Audio is processed by Groq and discarded.
# 1. Clone and install
git clone https://github.com/wat-hiroaki/voitype.git
cd voitype
chmod +x setup.sh
./setup.sh
# 2. Log out and back in (required for input group)
# 3. Run
GROQ_API_KEY=your_key_here .venv/bin/voitypeGet your free API key at console.groq.com/keys.
| Key | Action |
|---|---|
| Right Alt (hold) | Voice dictation |
| Left Alt + Right Alt (hold) | Smart rewrite (select text first) |
| Esc | Cancel recording |
Configurable via Settings (system tray > Settings).
Hold key → Record → Groq Whisper API → LLM Format → Paste at cursor
| |
microphone result popup
- Record — Holding the hotkey captures audio from your microphone
- Transcribe — Audio is sent to Groq's Whisper API (~0.5s latency)
- Format — LLM cleans up filler words, self-corrections, adds punctuation
- Paste — Formatted text is pasted at your cursor + shown in result popup
Settings are stored in ~/.config/voitype/settings.json:
| Setting | Description | Default |
|---|---|---|
formatting_enabled |
AI text formatting | true |
sound_enabled |
Sound feedback | true |
hotkey_dictation |
Dictation key | KEY_RIGHTALT |
hotkey_modifier |
Rewrite modifier | KEY_LEFTALT |
audio_device |
Microphone index (-1 = default) | -1 |
api_key |
Groq API key | "" |
- Linux (Debian/Ubuntu, Arch, Fedora)
- Python 3.10+
- Groq API key (free tier available)
inputgroup membership (setup.sh handles this)
Hotkeys not working
sudo usermod -aG input $USER
# Log out and log back inAPI key dialog on every launch
echo 'export GROQ_API_KEY=your_key_here' >> ~/.bashrc
source ~/.bashrcOr set it via the Settings dialog (saved permanently).
Right Alt conflicts with AltGr
Open Settings from the tray icon and change the dictation key to KEY_F13, KEY_SCROLLLOCK, or KEY_PAUSE.
No system tray icon
# Debian/Ubuntu
sudo apt install gir1.2-ayatanaappindicator3-0.1
# Arch
sudo pacman -S libayatana-appindicatorAudio not recording
arecord -d 3 test.wav && aplay test.wavIf that works, try selecting a different microphone in Settings.
Contributions are welcome! Feel free to open issues or submit PRs.
MIT
