* fix: install/uninstall scripts for curl | bash usage Install script improvements: - Detect non-interactive mode (curl | bash) automatically - Skip interactive prompts in non-interactive mode - Add --no-whisper and -y/--yes flags for explicit control - Continue with defaults when stdin is not a tty Uninstall script improvements: - Clean up curl-installed files: - ~/.local/share/vocalinux-install (cloned repo) - ~/.local/share/vocalinux/venv (virtual environment) - ~/.local/bin/vocalinux (symlink) - ~/.local/bin/activate-vocalinux.sh - Add -y/--yes flag for non-interactive mode - Verify all curl-installed components are removed README updates: - Document curl installation with --with-whisper option - Add uninstall instructions for both methods - Clarify what gets installed where * feat: install Whisper by default in non-interactive mode - curl | bash now installs both VOSK and Whisper out of the box - Users can freely switch between engines in settings - Add --no-whisper flag for faster install (VOSK only) - Update README to reflect new default behavior * chore: remove install-whisper.sh (now part of install.sh) Whisper is installed by default via install.sh, making this separate script redundant. * chore: remove activate-vocalinux.sh (generated by install.sh) This file is dynamically created by install.sh based on the venv location, so the static template is not needed.
7.4 KiB
Vocalinux
A seamless voice dictation system for Linux, comparable to the built-in solutions on macOS and Windows.
🎉 Alpha Release! We're excited to share Vocalinux with the community. Try it out and let us know what you think!
✨ Features
- 🎤 Double-tap Ctrl to start/stop voice dictation
- ⚡ Real-time transcription with minimal latency
- �� Universal compatibility across all Linux applications
- 🔒 Offline operation for privacy and reliability (with VOSK)
- 🤖 Optional Whisper AI support for enhanced accuracy
- 🎨 System tray integration with visual status indicators
- 🔊 Audio feedback for recording status
- ⚙️ Graphical settings dialog for easy configuration
🚀 Quick Install
One-liner Installation (Recommended)
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash
This will:
- Clone the repository to
~/.local/share/vocalinux-install - Install all system dependencies
- Set up a virtual environment in
~/.local/share/vocalinux/venv - Install both VOSK and Whisper AI speech engines
- Create a symlink at
~/.local/bin/vocalinux - Download the default VOSK speech model
⏱️ Note: Installation takes ~5-10 minutes due to Whisper AI dependencies (PyTorch).
Without Whisper (faster install, VOSK only):
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash -s -- --no-whisper
Alternative: Install from Source
# Clone the repository
git clone https://github.com/jatinkrmalik/vocalinux.git
cd vocalinux
# Run the installer (will prompt for Whisper)
./install.sh
# Or with Whisper support
./install.sh --with-whisper
The installer handles everything: system dependencies, Python environment, speech models, and desktop integration.
After Installation
# If ~/.local/bin is in your PATH (recommended):
vocalinux
# Or activate the virtual environment first:
source ~/.local/bin/activate-vocalinux.sh
vocalinux
# Or run directly:
~/.local/share/vocalinux/venv/bin/vocalinux
Or launch it from your application menu!
Uninstall
# If installed via curl:
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/uninstall.sh | bash
# If installed from source:
./uninstall.sh
📋 Requirements
- OS: Ubuntu 22.04+ (other Linux distros may work)
- Python: 3.8 or newer
- Display: X11 or Wayland
- Hardware: Microphone for voice input
🎙️ Usage
Voice Dictation
- Double-tap Ctrl to start recording
- Speak clearly into your microphone
- Double-tap Ctrl again (or pause speaking) to stop
Voice Commands
| Command | Action |
|---|---|
| "new line" | Inserts a line break |
| "period" / "full stop" | Types a period (.) |
| "comma" | Types a comma (,) |
| "question mark" | Types a question mark (?) |
| "exclamation mark" | Types an exclamation mark (!) |
| "delete that" | Deletes the last sentence |
| "capitalize" | Capitalizes the next word |
Command Line Options
vocalinux --help # Show all options
vocalinux --debug # Enable debug logging
vocalinux --engine whisper # Use Whisper AI engine
vocalinux --model medium # Use medium-sized model
vocalinux --wayland # Force Wayland mode
⚙️ Configuration
Configuration is stored in ~/.config/vocalinux/config.json:
{
"speech_recognition": {
"engine": "vosk",
"model_size": "small",
"vad_sensitivity": 3,
"silence_timeout": 2.0
}
}
You can also configure settings through the graphical Settings dialog (right-click the tray icon).
🔧 Development Setup
# Clone and install in dev mode
git clone https://github.com/jatinkrmalik/vocalinux.git
cd vocalinux
./install.sh --dev
# Activate environment
source activate-vocalinux.sh
# Run tests
pytest
# Run from source with debug
python -m vocalinux.main --debug
📁 Project Structure
vocalinux/
├── src/vocalinux/ # Main application code
│ ├── speech_recognition/ # Speech recognition engines
│ ├── text_injection/ # Text injection (X11/Wayland)
│ ├── ui/ # GTK UI components
│ └── utils/ # Utility functions
├── tests/ # Test suite
├── resources/ # Icons and sounds
├── docs/ # Documentation
└── web/ # Website source
📖 Documentation
- Installation Guide - Detailed installation instructions
- User Guide - Complete user documentation
- Contributing - Development setup and contribution guidelines
🗺️ Roadmap
Custom icon design✅Graphical settings dialog✅Whisper AI support✅- Multi-language support
- Application-specific commands
- Debian/Ubuntu package (.deb)
- Improved Wayland support
- Voice command customization
🤝 Contributing
We welcome contributions! Whether it's bug reports, feature requests, or code contributions, please check out our Contributing Guide.
Quick Links
👨💻 Author
Jatin K Malik
- GitHub: @jatinkrmalik
- Twitter: @jatinkrmalik
⭐ Support
If you find Vocalinux useful, please consider:
- ⭐ Starring this repository
- 🐛 Reporting bugs you encounter
- 📖 Improving documentation
- 🔀 Contributing code
📜 License
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
Made with ❤️ for the Linux community
github.com/jatinkrmalik/vocalinux