From 03d55a989fb83b1e0ac5c8cebbb1fd0035fd5d19 Mon Sep 17 00:00:00 2001 From: Jatin K Malik Date: Wed, 11 Feb 2026 20:33:28 -0800 Subject: [PATCH] chore(release): prepare v0.6.0-beta with whisper.cpp as default (#181) * docs: update all documentation for whisper.cpp as default engine Comprehensive documentation update highlighting whisper.cpp as the new default speech recognition engine: README.md: - Added 'Major Change: whisper.cpp is Now Default!' section - Updated Features to highlight whisper.cpp and Vulkan GPU support - Updated Quick Install section with engine choices - Changed default engine from whisper to whisper_cpp in examples - Updated configuration examples - Updated roadmap to mark whisper.cpp as complete docs/INSTALL.md: - Added whisper.cpp section with performance benefits - Updated installation options (--engine flag) - Added GPU support matrix and Vulkan detection info - Added installation time comparison table - Updated system requirements (lower disk space for whisper.cpp) docs/USER_GUIDE.md: - Added comprehensive 'Choosing Your Engine' section - Added GPU acceleration information - Updated tips to mention whisper.cpp benefits - Added model size recommendations web/src/app/page.tsx: - Updated hero to mention whisper.cpp (C++ optimized, Vulkan support) - Changed installation time from ~5-10 min to ~1-2 min - Updated Features section to mention Vulkan GPU support - Added whisper.cpp as default engine card (3-column layout) - Updated installation commands (--engine flags) - Updated FAQ about switching engines This ensures all documentation reflects whisper.cpp as the new default and highlights its major benefits: 10x faster install, universal GPU support, and C++ optimized performance. * chore(release): prepare v0.6.0-beta This release brings whisper.cpp as the new default speech recognition engine: Version Updates: - Bump version from 0.5.0-beta to 0.6.0-beta - Update src/vocalinux/version.py - Update web/package.json Documentation Updates: - README.md: Update all v0.5.0-beta references to v0.6.0-beta - docs/INSTALL.md: Update version references and installation commands - docs/UPDATE.md: Add new 'What's New' section highlighting whisper.cpp - SECURITY.md: Update supported versions table (0.6.x now supported) Website Updates: - web/src/app/layout.tsx: Update softwareVersion to 0.6.0-beta Release Highlights: - whisper.cpp is now the default engine (10x faster install!) - Universal GPU support via Vulkan (AMD, Intel, NVIDIA) - C++ optimized inference with multi-threading - ~1-2 minute installation vs ~5-10 minutes before Testing: - All 472 tests passing - Black formatting clean - Flake8 linting clean - isort import ordering clean * ui(website): improve hero section layout * docs(readme): remove duplicate What's New section --- README.md | 152 ++++++++++++++++----------------- SECURITY.md | 21 +++-- docs/INSTALL.md | 176 +++++++++++++++++++++++++++++++-------- docs/UPDATE.md | 37 ++++---- docs/USER_GUIDE.md | 67 +++++++++++++-- src/vocalinux/version.py | 4 +- web/package.json | 2 +- web/src/app/layout.tsx | 2 +- web/src/app/page.tsx | 120 ++++++++++++++++++-------- 9 files changed, 403 insertions(+), 178 deletions(-) diff --git a/README.md b/README.md index a37b805..0e2245d 100644 --- a/README.md +++ b/README.md @@ -28,9 +28,18 @@ **A seamless free open-source private voice dictation system for Linux**, comparable to built-in solutions on macOS and Windows. -## ๐Ÿ“š What's New in v0.5.0-beta +## ๐Ÿ“š What's New in v0.6.0-beta -We're excited to announce our first **Beta release**! Vocalinux has evolved significantly since the last alpha, with numerous bug fixes and feature improvements. +We're excited to announce our first **Beta release**! Vocalinux has evolved significantly with the biggest change yet: **whisper.cpp is now the default speech recognition engine**, bringing massive improvements to speed, compatibility, and ease of installation. + +### ๐Ÿš€ Major Change: whisper.cpp is Now Default! + +**Why this is a game-changer:** +- **โšก 10x faster installation** - No more 2.3GB PyTorch downloads (was ~5-10 min, now ~1-2 min) +- **๐ŸŽฎ Universal GPU support** - Works with AMD, Intel, and NVIDIA via Vulkan (not just NVIDIA CUDA) +- **๐Ÿ’พ Smaller footprint** - Tiny model is only ~39MB vs ~75MB Whisper +- **๐Ÿ”ฅ Better performance** - C++ optimized inference with multi-threading +- **๐Ÿ No Python GIL** - True parallel processing for faster transcription ### ๐Ÿ› Critical Bug Fixes - Fixed text escaping issues (apostrophes and quotes no longer have backslash escapes) @@ -38,23 +47,27 @@ We're excited to announce our first **Beta release**! Vocalinux has evolved sign - Fixed missing spaces after punctuation when transcribing again ### โœจ Key New Features +- **๐Ÿค– whisper.cpp integration** - High-performance C++ speech recognition with Vulkan GPU acceleration +- **๐Ÿ“ฆ Interactive installer** - Choose between 3 engines: whisper.cpp (recommended), Whisper, or VOSK +- **๐Ÿ”ง Hardware auto-detection** - Automatically detects your GPU and recommends optimal settings - **Customizable keyboard shortcuts** - Configure your own activation shortcuts via GUI - **Modern GNOME HIG settings dialog** - Complete UI overhaul following GNOME design guidelines - **Pleasant audio feedback** - Gliding tones replace harsh beeps -- **Interactive installer with GPU detection** - Smart hardware auto-detection - **Better Wayland support** - Native keyboard shortcuts without XWayland ### ๐Ÿ”ง Quality Improvements - **80%+ test coverage** - Comprehensive test suite across all modules - **Microphone reconnection** - Automatic recovery when microphone disconnects - **Audio buffer management** - Prevents memory issues during long recordings +- **Enhanced logging** - Comprehensive debug info for whisper.cpp troubleshooting --- -> ๐ŸŽ‰ **Beta Release!** +> ๐ŸŽ‰ **Beta Release with whisper.cpp!** > > We're excited to share Vocalinux Beta with the community! -> See "What's New" above for details on this release. +> whisper.cpp brings **10x faster installation** and **universal GPU support**. +> See "What's New" above for details. --- @@ -63,11 +76,13 @@ We're excited to announce our first **Beta release**! Vocalinux has evolved sign - ๐ŸŽค **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 +- ๐Ÿ”’ **100% Offline operation** for privacy and reliability +- ๐Ÿค– **whisper.cpp by default** - High-performance C++ speech recognition +- ๐ŸŽฎ **Universal GPU support** - Vulkan acceleration for AMD, Intel, and NVIDIA - ๐ŸŽจ **System tray integration** with visual status indicators - ๐Ÿ”Š **Pleasant audio feedback** - smooth gliding tones, headphone-friendly - โš™๏ธ **Graphical settings** dialog for easy configuration +- ๐Ÿ“ฆ **3 engine choices** - whisper.cpp (default), OpenAI Whisper, or VOSK ## ๐Ÿ“ธ Screenshots @@ -104,53 +119,46 @@ Here are some screenshots showcasing Vocalinux in action: ## ๐Ÿš€ Quick Install -### Interactive Install (Recommended for New Users) +### Interactive Install (Recommended) -Let the installer guide you through the setup with smart hardware detection: +Our new interactive installer guides you through setup with intelligent hardware detection: ```bash -curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --tag=v0.5.0-beta --interactive +curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --tag=v0.6.0-beta ``` -The interactive installer will: -- **Auto-detect your hardware** (GPU, RAM) -- **Recommend the best configuration** for your system -- **Guide you through each step** with clear explanations -- **Show you how to launch and use** Vocalinux after installation +**Choose your engine:** +1. **whisper.cpp** โญ (Recommended) - Fast, works with any GPU via Vulkan +2. **Whisper** (OpenAI) - PyTorch-based, NVIDIA GPU only +3. **VOSK** - Lightweight, works on older systems -### One-liner Installation (Quick Install) +The installer will: +- **Auto-detect your hardware** (GPU, RAM, Vulkan support) +- **Recommend the best engine** for your system +- **Download the appropriate model** (~39MB for whisper.cpp tiny) +- **Install in ~1-2 minutes** (vs 5-10 min with old Whisper) +> **Note**: Installs v0.6.0-beta. For other versions, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases). + +### Installation Options + +**Default (whisper.cpp - recommended):** ```bash -curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --tag=v0.5.0-beta +curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --tag=v0.6.0-beta ``` +Fastest installation (~1-2 min), universal GPU support via Vulkan. -> **Note**: Installs v0.5.0-beta. For the most recent version, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases). -> -> **GPU Detection**: The installer now automatically detects NVIDIA GPUs and uses CPU-only PyTorch when no GPU is present, saving you ~2GB of download! - -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: - - **VOSK**: installs the `vosk` Python package from PyPI - - **Whisper**: installs the `openai-whisper` package from PyPI, which also pulls in PyTorch (the ML framework Whisper requires) -- Create a symlink at `~/.local/bin/vocalinux` -- Download the default **Whisper tiny** speech model (~75MB) - -> โฑ๏ธ **Note**: Installation takes ~5-10 minutes due to Whisper AI dependencies (PyTorch with CUDA support, ~2.3GB). - -**Whisper with CPU-only PyTorch (no NVIDIA GPU needed):** +**Whisper (OpenAI) - if you prefer PyTorch:** ```bash -curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --tag=v0.5.0-beta --whisper-cpu +curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --tag=v0.6.0-beta --engine=whisper ``` -This installs Whisper with CPU-only PyTorch (~200MB instead of ~2.3GB). Works great for systems without NVIDIA GPU. +NVIDIA GPU only (~5-10 min, downloads PyTorch + CUDA). -**For low-RAM systems (8GB or less) - VOSK only:** +**VOSK only - for low-RAM systems:** ```bash -curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --tag=v0.5.0-beta --no-whisper +curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --tag=v0.6.0-beta --engine=vosk ``` -This skips Whisper installation entirely and configures VOSK as the default engine. +Lightweight option (~40MB), works on systems with 4GB RAM. ### Alternative: Install from Source @@ -184,29 +192,6 @@ vocalinux Or launch it from your application menu! -## ๐Ÿ“š What's New in v0.5.0-beta - -We're excited to announce our first **Beta release**! Vocalinux has evolved significantly since the last alpha, with numerous bug fixes and feature improvements. - -### ๐Ÿ› Critical Bug Fixes -- Fixed text escaping issues (apostrophes and quotes no longer have backslash escapes) -- Fixed stop sound being transcribed as "thank you" -- Fixed missing spaces after punctuation when transcribing again - -### โœจ Key New Features -- **Customizable keyboard shortcuts** - Configure your own activation shortcuts via GUI -- **Modern GNOME HIG settings dialog** - Complete UI overhaul following GNOME design guidelines -- **Pleasant audio feedback** - Gliding tones replace harsh beeps -- **Interactive installer with GPU detection** - Smart hardware auto-detection -- **Better Wayland support** - Native keyboard shortcuts without XWayland - -### ๐Ÿ”ง Quality Improvements -- **80%+ test coverage** - Comprehensive test suite across all modules -- **Microphone reconnection** - Automatic recovery when microphone disconnects -- **Audio buffer management** - Prevents memory issues during long recordings - -For a complete list of changes, see the release notes. - ## ๐Ÿ“‹ Requirements - **OS**: Linux (tested on Ubuntu 22.04+, Debian 11+, Fedora 39+, Arch Linux, openSUSE Tumbleweed) @@ -239,11 +224,13 @@ For a complete list of changes, see the release notes. ### Command Line Options ```bash -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 +vocalinux --help # Show all options +vocalinux --debug # Enable debug logging +vocalinux --engine whisper_cpp # Use whisper.cpp engine (default) +vocalinux --engine whisper # Use OpenAI Whisper engine +vocalinux --engine vosk # Use VOSK engine +vocalinux --model medium # Use medium-sized model +vocalinux --wayland # Force Wayland mode ``` ## โš™๏ธ Configuration @@ -253,8 +240,8 @@ Configuration is stored in `~/.config/vocalinux/config.json`: ```json { "speech_recognition": { - "engine": "vosk", - "model_size": "small", + "engine": "whisper_cpp", + "model_size": "tiny", "vad_sensitivity": 3, "silence_timeout": 2.0 } @@ -285,17 +272,20 @@ python -m vocalinux.main --debug ``` 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 -โ”œโ”€โ”€ scripts/ # Development utilities -โ”‚ โ””โ”€โ”€ generate_sounds.py # Sound generation script -โ”œโ”€โ”€ resources/ # Icons and sounds -โ”œโ”€โ”€ docs/ # Documentation -โ””โ”€โ”€ web/ # Website source +โ”œโ”€โ”€ src/vocalinux/ # Main application code +โ”‚ โ”œโ”€โ”€ speech_recognition/ # Speech recognition engines (VOSK, Whisper, whisper.cpp) +โ”‚ โ”‚ โ””โ”€โ”€ recognition_manager.py # Unified engine interface +โ”‚ โ”œโ”€โ”€ text_injection/ # Text injection (X11/Wayland) +โ”‚ โ”œโ”€โ”€ ui/ # GTK UI components +โ”‚ โ””โ”€โ”€ utils/ # Utility functions +โ”‚ โ”œโ”€โ”€ whispercpp_model_info.py # whisper.cpp model metadata & hardware detection +โ”‚ โ””โ”€โ”€ vosk_model_info.py # VOSK model metadata +โ”œโ”€โ”€ tests/ # Test suite +โ”œโ”€โ”€ scripts/ # Development utilities +โ”‚ โ””โ”€โ”€ generate_sounds.py # Sound generation script +โ”œโ”€โ”€ resources/ # Icons and sounds +โ”œโ”€โ”€ docs/ # Documentation +โ””โ”€โ”€ web/ # Website source ``` ## ๐Ÿ“– Documentation @@ -331,6 +321,8 @@ This script generates all three sounds using the same smooth glide algorithm. Yo - [x] ~~Graphical settings dialog~~ โœ… - [x] ~~Whisper AI support~~ โœ… - [x] ~~Multi-language support (FR, DE, RU)~~ โœ… +- [x] ~~whisper.cpp integration (default engine)~~ โœ… +- [x] ~~Vulkan GPU support~~ โœ… - [ ] In-app update mechanism - [ ] Application-specific commands - [ ] Debian/Ubuntu package (.deb) diff --git a/SECURITY.md b/SECURITY.md index c434cba..783ff1e 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -4,7 +4,8 @@ | Version | Supported | | ------- | ------------------ | -| 0.5.x | :white_check_mark: | +| 0.6.x | :white_check_mark: | +| 0.5.x | :x: | | 0.4.x | :x: | | < 0.4 | :x: | @@ -43,15 +44,25 @@ We take security seriously. If you discover a security vulnerability within Voca Vocalinux is designed with privacy in mind: -- **Offline by default**: Both Whisper (default) and VOSK engines work completely offline +- **Offline by default**: whisper.cpp (default), Whisper, and VOSK engines all work completely offline - **Local processing**: All speech recognition happens on your device - **No data collection**: We don't collect or transmit your voice data - **No telemetry**: We don't track usage or behavior -### Whisper AI (Default Engine) +### whisper.cpp (Default Engine) -Whisper is the default speech recognition engine: -- Whisper processes locally on your machine +whisper.cpp is the default speech recognition engine: +- High-performance C++ implementation +- Processes completely locally on your machine +- Models are downloaded once and cached locally +- No audio data is sent to external servers +- Supports Vulkan GPU acceleration for AMD, Intel, and NVIDIA GPUs + +### Whisper AI (OpenAI) + +OpenAI's Whisper is also available as an alternative: +- PyTorch-based implementation +- Processes locally on your machine - Models are downloaded once and cached locally - No audio data is sent to external servers diff --git a/docs/INSTALL.md b/docs/INSTALL.md index 46249b9..a7a5a49 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -2,19 +2,23 @@ This guide provides detailed instructions for installing Vocalinux on Linux systems. -## Quick Start +## ๐Ÿš€ Quick Start ### One-liner Installation (Recommended) ```bash -curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash -s -- --tag=v0.5.0-beta +curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash -s -- --tag=v0.6.0-beta ``` -> **Note**: Installs v0.5.0-beta. For other versions, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases). +> **Note**: Installs v0.6.0-beta with **whisper.cpp** (our new default engine). For other versions, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases). -That's it! The installer handles everything automatically, including Whisper AI support. +That's it! The installer handles everything automatically: +- โœ… Installs whisper.cpp (~1-2 minutes, no heavy dependencies!) +- โœ… Auto-detects your GPU (AMD, Intel, NVIDIA all supported) +- โœ… Downloads the tiny model (~39MB) +- โœ… Configures everything automatically -> โฑ๏ธ **Note**: Installation takes ~5-10 minutes due to Whisper AI dependencies. +> โฑ๏ธ **Installation Time**: ~1-2 minutes (vs 5-10 minutes with old Whisper AI) ### From Source @@ -30,28 +34,45 @@ git clone https://github.com/jatinkrmalik/vocalinux.git && cd vocalinux && ./ins | **Python** | 3.8 or newer | | **Display Server** | X11 or Wayland | | **Hardware** | Microphone for speech input | -| **Disk Space** | ~500MB (including speech models) | -| **RAM** | 4GB minimum, 8GB recommended for Whisper | +| **Disk Space** | ~200MB (including whisper.cpp model) | +| **RAM** | 4GB minimum, works great with 8GB | + +### GPU Support (Optional) + +**whisper.cpp** supports GPU acceleration via **Vulkan**, which works with: +- โœ… AMD GPUs (RX series, integrated graphics) +- โœ… Intel GPUs (Arc, integrated graphics) +- โœ… NVIDIA GPUs (RTX, GTX series) + +No special drivers needed - if your GPU supports Vulkan, whisper.cpp will use it automatically! + +To check Vulkan support: `vulkaninfo --summary` ## Installation Options -### Standard Installation +### Interactive Installation (Recommended) + +The new interactive installer guides you through engine selection: ```bash -# Clone the repository -git clone https://github.com/jatinkrmalik/vocalinux.git -cd vocalinux - -# Run the installer ./install.sh ``` -### Installation with Whisper Support +**Choose your engine:** +1. **whisper.cpp** โญ (Recommended) - Fast, works with any GPU via Vulkan +2. **Whisper** (OpenAI) - PyTorch-based, NVIDIA GPU only +3. **VOSK** - Lightweight, works on older systems -Whisper provides better accuracy but requires more resources: +The installer will auto-detect your hardware and recommend the best option! + +### Automatic Installation + +Skip the interactive prompts with `--auto`: ```bash -./install.sh --with-whisper +./install.sh --auto # Default: whisper.cpp +./install.sh --auto --engine=whisper # Use OpenAI Whisper +./install.sh --auto --engine=vosk # Use VOSK only ``` ### Development Installation @@ -69,15 +90,27 @@ This installs additional tools: pytest, black, isort, flake8, pre-commit. ```bash ./install.sh --help +Installation Modes: + (no flags) Interactive mode - guided setup with recommendations + --auto Automatic mode - install with defaults (whisper.cpp) + --auto --engine=whisper Auto mode with Whisper engine + Options: + --interactive, -i Force interactive mode (default) + --auto Non-interactive automatic installation + --engine=NAME Speech engine: whisper_cpp (default), whisper, vosk --dev Install in development mode with all dev dependencies --test Run tests after installation - --venv-dir=PATH Specify custom virtual environment directory (default: venv) - --skip-models Skip downloading VOSK models during installation - --with-whisper Install Whisper AI support (default in curl install) - --no-whisper Skip Whisper installation (faster, VOSK only) - -y, --yes Non-interactive mode (accept defaults) + --venv-dir=PATH Specify custom virtual environment directory + --skip-models Skip downloading speech models during installation + --tag=TAG Install specific release tag --help Show this help message + +Examples: + ./install.sh # Interactive mode (recommended) + ./install.sh --auto # Auto-install with whisper.cpp + ./install.sh --auto --engine=vosk # Auto-install VOSK only + ./install.sh --dev --test # Dev mode with tests ``` ## What the Installer Does @@ -85,9 +118,24 @@ Options: 1. **Detects your Linux distribution** and installs appropriate system packages 2. **Creates a Python virtual environment** with system site-packages access 3. **Installs the Vocalinux package** and all dependencies -4. **Downloads speech recognition models** (Whisper tiny model by default, VOSK as fallback) -5. **Installs desktop integration** (icons, .desktop file) -6. **Creates activation script** for easy environment activation +4. **Installs the speech recognition engine** you selected: + - **whisper.cpp** (default): High-performance C++ engine with Vulkan GPU support + - **Whisper**: OpenAI's PyTorch-based engine (NVIDIA GPU only) + - **VOSK**: Lightweight engine for older systems +5. **Downloads speech recognition models**: + - whisper.cpp: ~39MB tiny model (or larger if selected) + - Whisper: ~75MB tiny model + PyTorch dependencies (~2.3GB with CUDA) + - VOSK: ~40MB small model +6. **Installs desktop integration** (icons, .desktop file) +7. **Creates activation script** for easy environment activation + +### Installation Time Comparison + +| Engine | Download Size | Install Time | GPU Support | +|--------|---------------|--------------|-------------| +| **whisper.cpp** (default) | ~39-500MB | ~1-2 min | AMD, Intel, NVIDIA (Vulkan) | +| Whisper (OpenAI) | ~2.3GB+ | ~5-10 min | NVIDIA only (CUDA) | +| VOSK | ~40MB | ~30 sec | CPU only | ## Running Vocalinux @@ -108,15 +156,16 @@ vocalinux ### Command Line Options ```bash -vocalinux --help # Show all options -vocalinux --debug # Enable debug logging -vocalinux --engine whisper # Use Whisper AI engine (default) -vocalinux --engine vosk # Use VOSK engine -vocalinux --model tiny # Use tiny model (default, fastest) -vocalinux --model small # Use small model -vocalinux --model medium # Use medium model -vocalinux --model large # Use large model -vocalinux --wayland # Force Wayland compatibility mode +vocalinux --help # Show all options +vocalinux --debug # Enable debug logging +vocalinux --engine whisper_cpp # Use whisper.cpp engine (default) +vocalinux --engine whisper # Use OpenAI Whisper engine +vocalinux --engine vosk # Use VOSK engine +vocalinux --model tiny # Use tiny model (default, fastest) +vocalinux --model small # Use small model +vocalinux --model medium # Use medium model +vocalinux --model large # Use large model +vocalinux --wayland # Force Wayland compatibility mode ``` ## Directory Structure @@ -260,6 +309,65 @@ cp resources/icons/scalable/*.svg ~/.local/share/icons/hicolor/scalable/apps/ gtk-update-icon-cache -f -t ~/.local/share/icons/hicolor ``` +## About whisper.cpp + +### What is whisper.cpp? + +**whisper.cpp** is a high-performance C++ port of OpenAI's Whisper speech recognition model. It's now the **default engine** in Vocalinux because it offers significant advantages: + +**Performance Benefits:** +- **10x faster installation** - No 2.3GB PyTorch download (just ~39MB model) +- **C++ optimized inference** - Faster than Python-based Whisper +- **True multi-threading** - Uses all CPU cores (no Python GIL limitations) +- **Lower memory usage** - More efficient than PyTorch + +**GPU Support:** +- **Vulkan acceleration** - Works with AMD, Intel, and NVIDIA GPUs +- **Automatic backend selection** - Uses Vulkan โ†’ CUDA โ†’ CPU (in that order) +- **No special drivers** - Just needs standard Vulkan support + +**Models:** +whisper.cpp uses the same models as OpenAI Whisper, converted to `ggml` format: +- **tiny** (~39MB) - Fastest, good for real-time dictation +- **base** (~74MB) - Good balance of speed and accuracy +- **small** (~244MB) - Better accuracy, still fast +- **medium** (~769MB) - High accuracy +- **large** (~1.5GB) - Best accuracy, slower + +### Checking GPU Support + +To verify your GPU is detected: + +```bash +# Check Vulkan support (for AMD, Intel, NVIDIA) +vulkaninfo --summary | grep -i "deviceName" + +# In Vocalinux, look for these log messages: +# [INFO] whisper.cpp backend selection priority: Vulkan -> CUDA -> CPU +# [INFO] whisper.cpp using Vulkan GPU backend: AMD Radeon RX 6800 +``` + +### Switching Engines + +If you want to try a different engine after installation: + +```bash +# Edit the config file +nano ~/.config/vocalinux/config.json +``` + +Change the `engine` field: +```json +{ + "speech_recognition": { + "engine": "whisper_cpp", // Options: whisper_cpp, whisper, vosk + "model_size": "tiny" + } +} +``` + +Or use the GUI: Right-click tray icon โ†’ Settings โ†’ Speech Engine + ## Troubleshooting ### Virtual Environment Issues @@ -387,7 +495,7 @@ Already have Vocalinux installed? See the [Update Guide](UPDATE.md) for instruct Quick update command: ```bash -curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash -s -- --tag=v0.5.0-beta +curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash -s -- --tag=v0.6.0-beta ``` ## Getting Help diff --git a/docs/UPDATE.md b/docs/UPDATE.md index 83488da..ccb0938 100644 --- a/docs/UPDATE.md +++ b/docs/UPDATE.md @@ -9,7 +9,7 @@ This guide explains how to update Vocalinux to the latest version. Simply re-run the installation command with the new version tag: ```bash -curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash -s -- --tag=v0.5.0-beta +curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash -s -- --tag=v0.6.0-beta ``` The installer will: @@ -24,7 +24,7 @@ The installer will: ```bash cd vocalinux git fetch origin -git checkout v0.5.0-beta +git checkout v0.6.0-beta ./install.sh ``` @@ -50,7 +50,7 @@ cd vocalinux ./install.sh --tag=v0.4.1-alpha # Or via curl (for any installation) -curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash -s -- --tag=v0.5.0-beta +curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash -s -- --tag=v0.6.0-beta ``` **What gets preserved:** @@ -68,7 +68,7 @@ cd vocalinux # 2. Pull the latest changes git fetch origin -git checkout v0.5.0-beta +git checkout v0.6.0-beta # 3. Activate your virtual environment source venv/bin/activate @@ -97,17 +97,26 @@ git describe --tags --- -## What's New in v0.5.0-beta +## What's New in v0.6.0-beta -- **Customizable keyboard shortcuts**: Configure your own activation shortcuts via GUI -- **Modern settings dialog**: Redesigned with GNOME HIG styling -- **Improved audio feedback**: Pleasant gliding tones for recording status -- **Enhanced Wayland support**: Better keyboard shortcut handling on Wayland -- **Microphone reconnection**: Automatic reconnection when microphone disconnects -- **80%+ test coverage**: Comprehensive test suite for reliability -- **Interactive installer**: Smart hardware detection and guided installation +### ๐Ÿš€ Major Feature: whisper.cpp is Now Default! -See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.5.0-beta). +This release brings **whisper.cpp** as the new default speech recognition engineโ€”a game-changing upgrade! + +**Key Improvements:** +- **โšก 10x faster installation** โ€” No more 2.3GB PyTorch downloads (~1-2 min vs ~5-10 min) +- **๐ŸŽฎ Universal GPU support** โ€” Works with AMD, Intel, and NVIDIA via Vulkan (not just NVIDIA CUDA) +- **๐Ÿ’พ Smaller footprint** โ€” Tiny model is only ~39MB vs ~75MB +- **๐Ÿ”ฅ Better performance** โ€” C++ optimized inference with true multi-threading (no Python GIL) +- **๐ŸŒ 99+ languages** with automatic language detection + +**Additional Improvements:** +- **Interactive installer**: Choose between 3 engines (whisper.cpp, Whisper, VOSK) +- **Hardware auto-detection**: Automatically detects your GPU and recommends optimal settings +- **Enhanced logging**: Comprehensive debug info for whisper.cpp troubleshooting +- **Better documentation**: Updated all docs to reflect whisper.cpp as the new default + +See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.6.0-beta). --- @@ -142,7 +151,7 @@ See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/ ./uninstall.sh --keep-config --keep-data # Reinstall -curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash -s -- --tag=v0.5.0-beta +curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash -s -- --tag=v0.6.0-beta ``` ### Old Version Still Running diff --git a/docs/USER_GUIDE.md b/docs/USER_GUIDE.md index 553f3c4..b04405a 100644 --- a/docs/USER_GUIDE.md +++ b/docs/USER_GUIDE.md @@ -46,7 +46,11 @@ Vocalinux supports several commands that you can speak to control formatting: 3. **Moderate pace**: Don't speak too quickly or too slowly 4. **Quiet environment**: Minimize background noise when possible 5. **Learn commands**: Familiarize yourself with voice commands for punctuation and formatting -6. **Use larger models**: For better accuracy, use `vocalinux --model medium` or `--model large` +6. **Use GPU acceleration**: If you have a GPU (AMD, Intel, or NVIDIA), whisper.cpp will automatically use it for faster transcription +7. **Choose the right model**: + - For real-time dictation: Use `tiny` or `base` (fastest) + - For better accuracy: Use `vocalinux --model medium` or `--model large` +8. **Check debug logs**: Run `vocalinux --debug` to see which backend is being used (Vulkan, CUDA, or CPU) ## Customization @@ -59,12 +63,65 @@ Vocalinux uses a double-tap Ctrl keyboard shortcut for starting and stopping voi ### Model Settings -You can change the speech recognition model for better accuracy or faster performance: +You can change the speech recognition engine and model for better accuracy or faster performance: -1. Open settings from the tray icon menu +### Choosing Your Engine + +Vocalinux now offers **three speech recognition engines**: + +1. **whisper.cpp** โญ (Default) - High-performance C++ engine + - Fastest installation (~1-2 min) + - Works with AMD, Intel, NVIDIA GPUs via Vulkan + - True multi-threading (no Python GIL) + - Best for most users + +2. **Whisper** (OpenAI) - PyTorch-based engine + - NVIDIA GPU only (requires CUDA) + - Larger download (~2.3GB with PyTorch) + - Installation takes ~5-10 min + - Use if you specifically need PyTorch features + +3. **VOSK** - Lightweight engine + - Smallest footprint (~40MB) + - CPU only + - Great for older systems or minimal resource usage + +### Changing Engine and Model + +1. Open settings from the tray icon menu (right-click) 2. Go to the "Recognition" tab -3. Select your preferred model size (tiny is the default, use larger models for better accuracy) -4. Choose between Whisper (default, more accurate) and VOSK (lighter weight, faster) +3. Select your **Speech Engine**: + - whisper_cpp (recommended) + - whisper + - vosk +4. Select your **Model Size**: + - **tiny** (~39MB) - Fastest, good for real-time dictation + - **base** (~74MB) - Good balance + - **small** (~244MB) - Better accuracy + - **medium** (~769MB) - High accuracy + - **large** (~1.5GB) - Best accuracy, slower + +### When to Use Each Model + +**For real-time dictation:** Use **tiny** or **base** - they're fast enough to keep up with your speech. + +**For transcription:** Use **small** or **medium** - better accuracy for recorded audio. + +**For maximum accuracy:** Use **large** - best results but requires more RAM and GPU power. + +### GPU Acceleration + +**whisper.cpp** automatically uses GPU acceleration when available: + +- **Vulkan** (AMD, Intel, NVIDIA) - Automatically detected and used +- **CUDA** (NVIDIA only) - Fallback if Vulkan not available +- **CPU** - Always works as fallback + +To check which backend is being used, look for these log messages when starting Vocalinux: +``` +[INFO] whisper.cpp using Vulkan GPU backend: AMD Radeon RX 6800 +[INFO] whisper.cpp configured with n_threads=16 +``` ## Troubleshooting diff --git a/src/vocalinux/version.py b/src/vocalinux/version.py index 79434ad..69fdb40 100644 --- a/src/vocalinux/version.py +++ b/src/vocalinux/version.py @@ -2,8 +2,8 @@ Version information for Vocalinux. """ -__version__ = "0.5.0-beta" -__version_info__ = (0, 5, 0, "beta") +__version__ = "0.6.0-beta" +__version_info__ = (0, 6, 0, "beta") __author__ = "Jatin K Malik" __email__ = "jatinkrmalik@gmail.com" __license__ = "GPL-3.0" diff --git a/web/package.json b/web/package.json index ddb0773..90064d4 100644 --- a/web/package.json +++ b/web/package.json @@ -1,6 +1,6 @@ { "name": "vocalinux-website", - "version": "0.5.0", + "version": "0.6.0", "private": true, "type": "module", "scripts": { diff --git a/web/src/app/layout.tsx b/web/src/app/layout.tsx index bc7ba39..d381252 100644 --- a/web/src/app/layout.tsx +++ b/web/src/app/layout.tsx @@ -120,7 +120,7 @@ export default function RootLayout({ "priceCurrency": "USD" }, "description": "Free, open-source voice dictation for Linux. 100% offline with Whisper AI and VOSK. Works with X11 and Wayland.", - "softwareVersion": "0.5.0-beta", + "softwareVersion": "0.6.0-beta", "author": { "@type": "Person", "name": "Jatin K Malik", diff --git a/web/src/app/page.tsx b/web/src/app/page.tsx index e3af4a7..def7375 100644 --- a/web/src/app/page.tsx +++ b/web/src/app/page.tsx @@ -44,9 +44,9 @@ const getInstallCommands = (latestRelease: string) => ({ oneClickInstallCommand: `curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --tag=${latestRelease}`, - oneClickInstallWhisperCpu: `curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --tag=${latestRelease} --whisper-cpu`, + oneClickInstallWhisper: `curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --tag=${latestRelease} --engine=whisper`, - oneClickInstallNoWhisper: `curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --tag=${latestRelease} --no-whisper`, + oneClickInstallVosk: `curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --tag=${latestRelease} --engine=vosk`, uninstallCommand: `curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/uninstall.sh -o /tmp/vul.sh && bash /tmp/vul.sh`, }); @@ -178,7 +178,7 @@ export default function HomePage() { // Get install commands based on the latest release const installCommands = getInstallCommands(latestRelease); - const { interactiveInstallCommand, oneClickInstallCommand, oneClickInstallWhisperCpu, oneClickInstallNoWhisper, uninstallCommand } = installCommands; + const { interactiveInstallCommand, oneClickInstallCommand, oneClickInstallWhisper, oneClickInstallVosk, uninstallCommand } = installCommands; return (
@@ -194,7 +194,7 @@ export default function HomePage() { /> Vocalinux - v0.5.0 Beta + v0.6.0 Beta @@ -308,9 +308,11 @@ export default function HomePage() { +

+ 100% offline voice dictation for Linux. +

- 100% offline, privacy-first voice-to-text. Double-tap Ctrl to dictate anywhere. - Powered by Whisper AI & VOSK. Free & open-source. + Just double-tap Ctrl and speak.

{/* CTA Buttons */} @@ -379,11 +381,27 @@ export default function HomePage() { No sudo required - - ~5-10 min + + ~1-2 min + + {/* Tech stack info */} +
+ + + whisper.cpp powered + + + + AMD, Intel & NVIDIA GPUs + + + + Free & open-source + +
@@ -498,7 +516,7 @@ export default function HomePage() { } title="Blazing Fast" - description="Optimized for real-time transcription. Choose from Whisper AI (accurate) or VOSK (lightweight) engines." + description="whisper.cpp brings C++ optimized inference with Vulkan GPU support. Works with AMD, Intel, and NVIDIA GPUs!" /> } @@ -591,16 +609,16 @@ export default function HomePage() {
- {/* Alternative: Auto-detect install */} + {/* Default: whisper.cpp install */}
-
- +
+
-

Auto-detect Install

+

Recommended: whisper.cpp (Default)

- Fastest for power users - no prompts (~3-10 min) + Fastest installation (~1-2 min), Vulkan GPU support for AMD/Intel/NVIDIA

@@ -617,19 +635,19 @@ export default function HomePage() {
- {/* Alternative install - CPU only */} + {/* Alternative install - Whisper (OpenAI) */}
-

CPU-only Install

+

OpenAI Whisper (PyTorch)

- Smaller download (~200MB vs ~2.3GB) - for systems without NVIDIA GPU (~3-4 min) + PyTorch-based engine, NVIDIA GPU only (~5-10 min, ~2.3GB download)

- +
- {oneClickInstallWhisperCpu} + {oneClickInstallWhisper}
@@ -652,10 +670,10 @@ export default function HomePage() {

VOSK Only (Lightweight)

- For low-RAM systems (8GB or less) - skips Whisper entirely (~2-3 min) + For low-RAM systems (4GB or less) - minimal footprint (~40MB)

- +
- {oneClickInstallNoWhisper} + {oneClickInstallVosk}
@@ -765,7 +783,7 @@ export default function HomePage() {
-
+
@@ -775,19 +793,19 @@ export default function HomePage() {
- +
-

Whisper AI

+

whisper.cpp

- OpenAI's state-of-the-art speech recognition model, running locally on your machine. + High-performance C++ port of Whisper with Vulkan GPU support. Our new default!

    {[ - "Highest accuracy available", - "Multiple model sizes (tiny to large)", - "Excellent multi-language support", - "Best for clear, accurate transcription", + "10x faster installation (~1-2 min)", + "Universal GPU support (AMD/Intel/NVIDIA)", + "C++ optimized, true multi-threading", + "Tiny model only ~39MB", ].map((item, i) => (
  • @@ -796,16 +814,46 @@ export default function HomePage() { ))}
- Model sizes: Tiny (75MB) โ€ข Base (142MB) โ€ข Small (466MB) โ€ข Medium (1.5GB) โ€ข Large (3GB) + Model sizes: Tiny (39MB) โ€ข Base (74MB) โ€ข Small (244MB) โ€ข Medium (769MB) โ€ข Large (1.5GB)
+
+
+
+ +
+

Whisper (OpenAI)

+
+

+ OpenAI's original PyTorch-based Whisper model. NVIDIA GPU only. +

+
    + {[ + "PyTorch-based implementation", + "NVIDIA GPU support (CUDA)", + "Same accuracy as whisper.cpp", + "Larger download (~2.3GB)", + ].map((item, i) => ( +
  • + + {item} +
  • + ))} +
+
+ Install time: ~5-10 minutes with PyTorch +
+
+
+ +
- +

VOSK

@@ -817,7 +865,7 @@ export default function HomePage() { "Very lightweight and fast", "Low memory footprint", "Great for real-time streaming", - "Good for basic transcription needs", + "CPU only, minimal resources", ].map((item, i) => (
  • @@ -826,7 +874,7 @@ export default function HomePage() { ))}
    - Footprint: ~50MB model, minimal CPU/RAM usage + Footprint: ~40MB model, minimal CPU/RAM usage
  • @@ -858,9 +906,9 @@ export default function HomePage() { "Vocalinux works on most modern Linux distributions including Ubuntu 22.04+, Fedora, Debian, Arch Linux, Linux Mint, Pop!_OS, and more. It supports both X11 and Wayland display servers.", }, { - question: "How do I switch between Whisper and VOSK?", + question: "How do I switch between speech engines?", answer: - 'You can switch engines via the settings GUI or command line. Use "vocalinux --engine whisper" or "vocalinux --engine vosk". Whisper is recommended for accuracy, VOSK for speed.', + 'You can switch engines via the settings GUI or command line. Use "vocalinux --engine whisper_cpp" (default, recommended), "vocalinux --engine whisper" (OpenAI), or "vocalinux --engine vosk" (lightweight). whisper.cpp offers the best balance of speed and accuracy.', }, { question: "What are the system requirements?",