Jatin K MalikandGitHub 98cba5f549 feat: Package VOSK model with installation for faster first-run experience (#32)
* 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
2025-06-23 18:05:29 -05:00
2025-05-25 23:20:08 -05:00

Vocalinux

Vocalinux CI codecov Status: Early Development License: GPL v3 Python 3.8+ Contributions welcome GitHub issues GitHub release

Vocalinux Users

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

  1. Double-tap the Ctrl key to start recording
  2. Speak clearly into your microphone
  3. 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

Roadmap

Future development plans include:

  1. Custom icon design ✅ (Implemented in v0.1.0)
  2. Graphical settings dialog
  3. Advanced voice commands for specific applications
  4. Multi-language support
  5. Better integration with popular applications
  6. Improved model management
  7. Customizable keyboard shortcuts via GUI
  8. 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.

S
Description
Free, offline voice dictation for Void Linux and niri. Vulkan GPU acceleration, signed xbps repository.
Readme AGPL-3.0
35 MiB
v0.19.1
Latest
2026-11-06 21:18:19 +00:00
Languages
Python 84.5%
TypeScript 8.6%
Shell 5.6%
CSS 0.6%
Just 0.2%
Other 0.4%