Setup
Installation
Overview
1
Overview
1.1
The Audio Pipeline
1.2
Services
1.3
The Event Bus
1.4
Front End and Back End
Features
1
Capture
1.1
The Capture Layer
1.1.1
AudioChunkCapturedEvent
1.1.2
Audio Capture Service
1
Command Flow
1.1
Overview
1.2
Segmentation
1.2.1
Voice Activity Detection
1.2.2
CommandSegmenterService
1.2.3
SoundSegmenterService
1.3
Recognition
1.3.1
Speech Recognition
1.3.2
Sound Recognition
1.4
Parsing
1.4.1
Output Events
1.5
Execution
1.5.1
Automation
1.5.2
Marks
1.5.3
Grid
1.5.4
Pause / Resume
1
Dictation Flow
1.1
The Session Model
1.1.1
The Speech Engine: Moonshine
1.1.2
The Vosk Side Channel
1.2
Session Modes and the State Machine
1.2.1
Session Modes
1.2.2
The State Machine
1.3
Audio Routing
1.3.1
Routing to Moonshine
1.3.2
The Vosk Side Channel During Dictation
1.4
Text Shaping
1.4.1
Modifiers
1.4.2
Aliases
1.5
Stopping a Session
1.6
LLM Rewriting
1.7
The Popup as a State Mirror
1
User Interface
1.1
The Three-Role Architecture
1.1.1
Views
1.1.2
Controllers
1.2
Main Window and Tabs
1.2.1
Startup and the UI Registry
1.2.2
Tab Summary
1.3
Overlay Windows
1.3.1
The Dictation Popup
1.3.2
The Grid Overlay
1.3.3
The Mark Overlay
1.4
The System Controller
Foundations
1
Event Bus
1.1
The Publish / Subscribe Model
1.2
The Queue and the Worker
1.2.1
Naive Publish Semantics and Their Problems
1.2.2
Queue-Backed Delivery
1.2.3
Within-Event Concurrency
1.2.4
Audio on the Bus
1.3
Subscription Tracking
1.3.1
The
SubscriptionTracker
1
Concurrency
1.1
The Two Concurrency Models
1.1.1
asyncio: One Thread, Many Tasks
1.1.2
Threads: Multiple Threads, Preemptive Switching
1.2
The Vocalance Concurrency Model
1.2.1
The Default: asyncio on One Thread
1.2.2
The Exceptions: Two Categories of Off-Thread Work
1.3
The CPU-Heavy Jobs
1.4
The Thread Crossing Primitives
1.4.1
Moving Results from a Foreign Thread to the Main Thread
1.4.2
The PortAudio Crossing
1.5
run_blocking
: Dispatching Heavy Work to a Background Thread
1.5.1
Why Daemon Threads
1.5.2
Why One Thread Per Call
1.5.3
Serializing OS Input
1.6
Cancellation
1.7
Summary: Three Rules
1
Lifecycle
1.1
Building the Application
1.1.1
The Service Spec Pattern
1.1.2
Initialization
1.1.3
Background Tasks
1.2
Shutting Down
1.2.1
Shutdown Triggers
1.2.2
Cooperative Cancellation
1.2.3
The Teardown Sequence
1
Storage
1.1
The Two Layers
1.2
Raw Persistence: StorageService
1.2.1
Typed Models and Files
1.2.2
Atomic Writes
1.2.3
Cached Reads
1.3
Live Configuration: RuntimeConfigurationStore
1.3.1
What “Live Configuration” Means
1.3.2
Startup: Loading Stored Overrides
1.3.3
Live Updates During a Session
Security
Overview
Table of Contents
Releases
Lint
Security Scan
Unit Tests
Privacy Guards
Draft Release
Privacy
Stored Data
Logs
User Data
Supply Chain Integrity
Python Libraries
UV Bootstrap
AI Models
Model allowlist
Redirect pinning
SHA-256 verification
Bundled Models
Installation and Uninstallation
Installation
Privilege model
Installation flow
File layout
Uninstallation
Input Validation
Settings Bounds
Ingestion Guards
Hotkey Allowlist
Alias Sanitisation
Security Assumptions
What We Protect Against
Supply-Chain Integrity
Tampered Local Storage
What is Out of Scope
Audio-Input Spoofing
Additional Information
Contact
Vocalance
Index
Edit on GitHub
Index