Skip to content

Latest commit

Β 

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Vacanam πŸŽ™οΈ

Vacanam Banner

Voice In. Words Out.

Production-quality, local-first voice typing and AI text refinement for Windows.
Hold Ctrl+Space anywhere, speak naturally, and watch your polished words appear instantly.

Platform Framework Website STT Engine LLM Engine Database Privacy


🌟 Key Features

  • πŸŽ™οΈ Global Push-to-Talk (Ctrl+Space) β€” Hold from any application (Notepad, VS Code, Word, Chrome, Terminal, Slack, Outlook), speak, release.
  • πŸš€ Zero-Configuration Auto-Setup β€” Launches with a sleek animated splash banner. If no speech model is downloaded on launch, Vacanam automatically downloads and selects the Ultra Fast (tiny ~75 MB) model.
  • πŸ—£οΈ User-Centric Speech Engine Profiles:
    • ⚑ Ultra Fast (tiny ~75 MB) β€” Instant response for short phrases & low-end PCs.
    • ⭐ Balanced (Recommended) (small ~466 MB) β€” Optimal balance of speed and high accuracy.
    • 🎯 High Precision (medium ~1.5 GB) β€” Exceptional accuracy for technical & complex terms.
    • πŸ‘‘ Maximum Accuracy (large-v3 ~3.1 GB) β€” Maximum precision for multi-language speech & accents.
  • ⚑ Standalone Voice Action Commands & Shortcuts β€” Control your PC hands-free by speaking commands: "select all" (Ctrl+A), "undo that" (Ctrl+Z), "redo that" (Ctrl+Y), "copy that", "paste that", "save file" (Ctrl+S), "press enter", "press tab", "press escape", "delete line", "delete word", "switch window" (Alt+Tab), "close window" (Alt+F4), and "lock computer".
  • ✍️ Smart Verbal Punctuation & Emoji Formatting β€” Dictate natural spoken punctuation ("comma", "period", "question mark", "new line", "new paragraph", "open paren", "smiley face", "thumbs up", "fire emoji") and watch them seamlessly format with proper spacing and auto-capitalization.
  • πŸ“ Custom Voice Snippets & Expansion Macros β€” Define custom trigger phrases (e.g. "insert signature", "insert date", "my meeting link") with dynamic {DATE}, {TIME}, and {DATETIME} tags to expand boilerplate text instantly.
  • πŸ€– Local LLM Text Refinement (AI Mode) β€” Sub-second CPU grammar polish using local GGUF models (Qwen2.5-0.5B-Instruct & Llama-3.2-1B-Instruct) via LLamaSharp. Custom System Prompts editable directly in Settings.
  • πŸ“œ Local SQLite Transcript History & Search β€” Opt-in local SQLite database (%LOCALAPPDATA%\Vacanam\history.db in WAL mode) saving timestamps, raw speech, polished text, and target app badges (devenv, notepad, chrome). Features instant real-time search, one-click Copy, and single-entry deletion.
  • πŸ”‡ Microphone Health & Low Volume Alerts (<30%) β€” Real-time detection of muted microphones and low volume levels (<30%), warning you instantly on the floating overlay (Mic Muted πŸ”‡ / Mic Volume 20% πŸ”‡).
  • 🎨 Windows 11 Fluent Dark UI β€” Animated Launch Banner, glassmorphic floating overlay with audio visualizer pulse ring, and dark Settings UI.
  • 🎯 Smart 3-Strategy Text Injection:
    • Clipboard + Ctrl+V (Primary): Backup original clipboard β†’ Paste β†’ Restore original clipboard (<25ms).
    • SendInput Unicode (Fallback 1): Native keystroke simulation for terminal windows (cmd.exe, powershell, wt) without touching clipboard.
    • UI Automation (Fallback 2): ValuePattern.SetValue for accessible controls.
  • πŸ”’ Zero-Trust Local Privacy:
    • ❌ No cloud APIs, no telemetry, no analytics
    • ❌ Audio is never saved to disk
    • ❌ Clipboard contents are never logged
    • βœ… Transcript history is opt-in (disabled by default) and stored 100% locally.
    • πŸ“œ Read our full Privacy Policy or online at avikeid2007.github.io/Vacanam/privacy.html.

πŸ“Έ Pipeline Overview

 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚                   System Tray (Idle)                    β”‚
 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚ Hold Ctrl+Space
                              β–Ό
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚  WASAPI 16kHz PCM Capture + Active Window Context HWND  β”‚
 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚ Release Ctrl+Space
                              β–Ό
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚   VAD Silence Trimming β†’ Multi-Threaded Whisper.net     β”‚
 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚ Transcribed Text
                              β–Ό
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚  (Optional) LLamaSharp GGUF Local LLM Text Polish       β”‚
 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚ Final Text
                              β–Ό
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚  Inject Text into Active App (Clipboard / SendInput)    β”‚
 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚ (Opt-in)
                              β–Ό
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚   Save Transcript Record to SQLite (%LOCALAPPDATA%)     β”‚
 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start & Installation

πŸ“₯ Download Installer

  1. Download the latest installer VacanamSetup-1.x.x.exe from GitHub Releases.
  2. Run VacanamSetup-1.x.x.exe (no administrative privileges required).
  3. Vacanam will launch automatically in your System Tray β€” hold Ctrl+Space anywhere to dictate.

Note

Code Signing: Free code signing provided by SignPath.io, certificate by SignPath Foundation.

Prerequisites for Building from Source

Build & Run from Source

# Clone the repository
git clone https://github.com/your-org/vacanam.git
cd Vacanam

# Restore dependencies
dotnet restore Vacanam.slnx

# Build Release binary
dotnet build Vacanam.slnx --configuration Release

# Run Vacanam (runs in System Tray)
dotnet run --project src/Vacanam.App --configuration Release

βš™οΈ Settings & Model Management

Right-click the Vacanam tray icon and click Settings:

  • Speech Tab:
    • User-Centric Profiles: Select from Ultra Fast, Balanced, High Precision, or Maximum Accuracy.
    • Live Model Badges: See which models are ACTIVE & READY, DOWNLOADED, or NOT DOWNLOADED.
    • One-Click Download & Select: Download models directly from Settings with live progress tracking.
  • Audio Tab: Live Microphone Volume Slider (0 - 100%), Mute Microphone Toggle, and Voice Activity Detection (VAD) threshold settings.
  • AI Tab: Enable/disable AI text polish, customize System Prompt / Grammar Rules, and manage local GGUF models (Qwen 2.5 0.5B & Llama 3.2 1B).
  • History Tab: Local SQLite Transcript Search, instant real-time filtering, target application badges, one-click Copy, single-record deletion, and Clear All History.
  • General Tab: Startup & notification options.
  • Privacy Tab: Local-first guarantees & opt-in transcript history toggles.

πŸ“ Solution Architecture

Vacanam is built with a strictly decoupled modular architecture across 8 projects:

Vacanam.slnx
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ Vacanam.Core/           Pure domain interfaces, models, and enums (net10.0)
β”‚   β”œβ”€β”€ Vacanam.Windows/        Win32 P/Invoke (RegisterHotKey, GetForegroundWindow, SendInput)
β”‚   β”œβ”€β”€ Vacanam.Audio/          WASAPI audio capture, pure C# AudioConverter, VAD
β”‚   β”œβ”€β”€ Vacanam.Speech/         Whisper.net speech recognition & automatic model downloader
β”‚   β”œβ”€β”€ Vacanam.LLM/            LLamaSharp v0.27.0 CPU local LLM text refinement engine
β”‚   β”œβ”€β”€ Vacanam.Input/          Text injection strategies (Clipboard backup/restore, SendInput, UIA)
β”‚   β”œβ”€β”€ Vacanam.Infrastructure/ Settings persistence (JSON), SQLite history, DI registration
β”‚   └── Vacanam.App/            WPF UI (Tray, Floating Overlay, Launch Banner, Settings Window)

πŸ“‚ Local Model & Storage Paths

Models, settings, databases, and operational logs are stored in your local application data directory:

%LOCALAPPDATA%\Vacanam\
β”œβ”€β”€ Models\
β”‚   β”œβ”€β”€ Whisper\
β”‚   β”‚   β”œβ”€β”€ ggml-tiny.bin (Ultra Fast ~75 MB)
β”‚   β”‚   └── ggml-small.bin (Balanced ~466 MB, Recommended)
β”‚   └── LLM\
β”‚       β”œβ”€β”€ Qwen2.5-0.5B-Instruct-Q4_K_M.gguf (~398 MB)
β”‚       └── Llama-3.2-1B-Instruct-Q4_K_M.gguf (~808 MB)
β”œβ”€β”€ history.db (SQLite database - opt-in history)
β”œβ”€β”€ Logs\
β”‚   └── vacanam-YYYYMMDD.log
└── settings.json

πŸ“œ License

Distributed under the MIT License. Free and open-source forever.


Vacanam is an independent project designed for local offline voice typing on Windows.

About

πŸŽ™οΈ Production-quality, 100% offline voice typing & AI text refinement for Windows. Hold Ctrl+Space anywhere, speak naturally, and dictate into any app instantly. Powered by .NET 10, Whisper.cpp & LLamaSharp.

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages