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

Additional Information

  • Contact
Vocalance
  • Search


© Copyright 2025, Riccardo Doyle.

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