Logo

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
  • Search


© Copyright 2025, Riccardo Doyle.

Built with Sphinx using a theme provided by Read the Docs.