* feat: Package VOSK model with installation for faster first-run experience 🚀 Installation Improvements: - Add VOSK small model download during installation process - Eliminate first-run model download delay for better user experience - Add --skip-models option for offline installations - Include wget, curl, unzip in system dependencies for model download 🔍 Model Management Enhancements: - Add multi-location model search (user, system-wide, pre-installed) - Prioritize pre-installed models over downloads - Add informative logging for model source detection - Create marker files to identify installer-provided models 📦 Installation Script Features: - Robust model download with progress indicators - Internet connectivity checking before download attempts - Graceful fallback when download fails (runtime download) - Comprehensive error handling and cleanup - Installation summary includes model status 🔧 Recognition Manager Updates: - Check multiple model locations in priority order: 1. User's local models directory 2. System-wide installation directories 3. Download to user directory if not found - Enhanced logging for model source identification - Backward compatibility with existing installations 💡 Benefits: - Faster application startup (no initial model download) - Better offline installation support - Reduced first-run friction for users - Maintains fallback to runtime download if needed - Clear feedback about model installation status This addresses the issue where users had to wait for model downloads on first application launch, making VocaLinux ready to use immediately after installation. * fix: Move install_vosk_models function definition before its call The function was being called before it was defined, causing a 'command not found' error during installation. Fixed by moving the function definition to before the installation steps where it's called. This resolves the installation error: ./install.sh: line 701: install_vosk_models: command not found
Vocalinux
A seamless voice dictation system for Linux, comparable to the built-in solutions on macOS and Windows.
Overview
Vocalinux provides a user-friendly speech-to-text solution for Linux users with:
- Activation via double-tap Ctrl keyboard shortcut
- Real-time transcription with minimal latency
- Universal compatibility across applications
- Offline operation for privacy and reliability
- Visual indicators for microphone status
- Audio feedback for recognition status
Quick Start
Prerequisites
- Ubuntu 22.04 or newer (may work on other Linux distributions)
- Python 3.8 or newer
- X11 or Wayland desktop environment
Installation
# Clone the repository
git clone https://github.com/jatinkrmalik/vocalinux.git
cd vocalinux
# Run the installer script
./install.sh
The installer will set up everything you need, including system dependencies and a Python virtual environment.
For detailed installation instructions and options, see docs/INSTALL.md.
Running Vocalinux
After installation:
# Activate the virtual environment
source activate-vocalinux.sh
# Run Vocalinux
vocalinux
Usage
Voice Dictation
- Double-tap the Ctrl key to start recording
- Speak clearly into your microphone
- Double-tap Ctrl again or pause speaking to stop recording
Voice Commands
| Command | Action |
|---|---|
| "new line" | Inserts a line break |
| "period" | Types a period (.) |
| "comma" | Types a comma (,) |
| "question mark" | Types a question mark (?) |
| "delete that" | Deletes the last sentence |
| "capitalize" | Capitalizes the next word |
For a complete user guide, see docs/USER_GUIDE.md.
Configuration
Configuration is stored in ~/.config/vocalinux/config.json. You can customize:
- Recognition engine (VOSK or Whisper)
- Model size (small, medium, large)
- Keyboard shortcuts
- Audio feedback
- UI behavior
- And more
Features
Custom Icons
Vocalinux includes custom icons for system trays and application launchers that visually indicate:
- Microphone inactive state
- Microphone active state
- Speech processing state
Custom Sounds
Audio feedback is provided for:
- Start of recording
- End of recording
- Error conditions
You can customize these sounds by replacing the files in resources/sounds/.
Advanced Usage
# With debugging enabled
vocalinux --debug
# With a specific speech recognition engine
vocalinux --engine whisper
# With a specific model size
vocalinux --model medium
# Force Wayland compatibility mode
vocalinux --wayland
Documentation
- Installation Guide - Detailed installation instructions
- User Guide - Complete user documentation
- Contributing - Development setup and contribution guidelines
Roadmap
Future development plans include:
Custom icon design✅ (Implemented in v0.1.0)- Graphical settings dialog
- Advanced voice commands for specific applications
- Multi-language support
- Better integration with popular applications
- Improved model management
- Customizable keyboard shortcuts via GUI
- More audio feedback options
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for development setup instructions and contribution guidelines.
License
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.