How razaxq/vocal works
Vocal is a Windows desktop voice-input application: a user triggers capture, local recognition produces text, optional correction and cleanup refine it, and the result is inserted into the focused application. The graph preserves the documented model, dictionary, history, settings, AI-consolidation, and update capabilities. Several implementation links are based on the supplied AppController excerpts and README; unsampled subsystem wiring is omitted where uncertain.
Main entry points: AppController.cpp App controller · TriggerController.cpp Trigger handling · WindowsPlatform.cpp Windows input platform · ModelManager.cpp Model downloads
Components 23
Desktop control
- Desktop UI and tray
native/src/main.cpp - App controller
native/src/AppController.cpp - Trigger handling
native/src/TriggerController.cpp - Windows input platform
native/src/platform/WindowsPlatform.cpp
Audio and recognition
- Audio capture
native/src/AudioCapture.cpp - Audio segmentation
native/src/AudioSegmenter.cpp - Offline recognition
native/src/SpeechWorker.cpp - Streaming recognition
native/src/StreamWorker.cpp - Worker processes
native/src/WorkerProcess.cpp
Text processing
- Homophone correction
native/src/CorrectionWorker.cpp - Spoken-text cleanup
native/src/TextCleanup.cpp - AI text consolidation
native/src/LlmService.cpp - Text insertion
native/src/TextOutput.cpp
Models and resources
- Model catalog
native/src/ModelCatalog.cpp - Model downloads
native/src/ModelManager.cpp - Dictionary services
native/src/DesktopServices.cpp
Settings and maintenance
- Settings and history
native/src/Settings.cpp - Software updates
native/src/NativeUpdate.h
Other components
- Voice-input user
- Focused application
- Model download hosts
- Dictionary update source
- Configured AI service
Connections 26
- Voice-input user → Desktop UI and tray: configures and views
- Desktop UI and tray → App controller: invokes controls
- App controller → Settings and history: reads and writes
- App controller → Trigger handling: configures
- Trigger handling → Windows input platform: configures and receives input
- Windows input platform → Trigger handling: reports input
- Trigger handling → App controller: signals recording
- App controller → Audio capture: starts capture
- Audio capture → Audio segmentation: supplies audio
- App controller → Offline recognition: dispatches recognition
- App controller → Streaming recognition: dispatches preview
- Offline recognition → Worker processes: uses worker process
- Streaming recognition → Worker processes: uses worker process
- App controller → Homophone correction: requests correction
- App controller → Spoken-text cleanup: cleans recognized text
- App controller → AI text consolidation: requests consolidation
- AI text consolidation → Configured AI service: sends text when enabled
- App controller → Text insertion: sends final text
- Text insertion → Windows input platform: inserts into focused app
- Windows input platform → Focused application: types text
- App controller → Model downloads: requests model operations
- Model downloads → Model catalog: checks model metadata
- Model downloads → Model download hosts: downloads models
- App controller → Dictionary services: coordinates dictionary
- Dictionary services → Dictionary update source: checks for updates
- App controller → Software updates: checks software updates