A graphical user interface for managing FluidVoice's vocabulary replacement configuration, replacing the current manual JSON editing workflow with an intuitive UI.
Currently, vocabulary replacements are managed through manual editing of ~/.config/fluidvoice/vocabulary.jsonc:
- Users must understand JSON syntax
- No validation of input format
- No search/filtering capabilities
- Risk of syntax errors breaking the configuration
- No visual feedback on applied rules
-
Vocabulary Management Interface
- Add new vocabulary entries with canonical form and misrecognitions
- Edit existing entries inline
- Delete unwanted entries
- Drag-and-drop reordering within categories
-
Smart Input Features
- Auto-suggest common misrecognitions based on canonical term
- Case mode selection (upper/mixed/exact) with preview
- Real-time validation of entries
- Duplicate detection and warnings
-
Organization & Search
- Category-based grouping (Technical Acronyms, Platforms, Languages, etc.)
- Search/filter vocabulary entries
- Bulk operations (delete multiple, change case modes)
- Import/export capabilities
┌─ Vocabulary Editor ──────────────────────────────────────┐
│ [+ Add Entry] [Import] [Export] [Test Mode] [Search▼] │
├──────────────────────────────────────────────────────────┤
│ ▼ TECHNICAL ACRONYMS (12 entries) │
│ API → ["a p i", "api", "a.p.i"] [UPPER] │
│ CLI → ["c l i", "cli", "c.l.i"] [UPPER] │
│ ... │
│ │
│ ▼ PLATFORMS & SERVICES (8 entries) │
│ GitHub → ["git hub", "github", "git-hub"] [MIXED]│
│ Claude Code → ["cloud code", "clod code"] [MIXED] │
│ ... │
└──────────────────────────────────────────────────────────┘
┌─ Edit Vocabulary Entry ──────────────────────────────────┐
│ Canonical Form: [DVS ] │
│ Case Mode: (•) UPPER ( ) Mixed ( ) Exact │
│ Preview: DVS │
│ │
│ Misrecognitions: │
│ • [d vs ] [×] │
│ • [d v s ] [×] │
│ • [D VS ] [×] │
│ • [D V S ] [×] │
│ [+ Add misrecognition] │
│ │
│ Category: [Technical Acronyms ▼] │
│ │
│ [Cancel] [Save] │
└──────────────────────────────────────────────────────────┘
- SwiftUI for native macOS interface
- Settings-style window (similar to System Preferences)
- Dock integration or menu bar access
- Live editing of vocabulary.jsonc
- Atomic saves to prevent corruption
- Backup creation before modifications
- Real-time validation with error highlighting
- Settings window as new tab/section
- Menu item in main app menu: "Vocabulary Editor..."
- Keyboard shortcut for quick access
- Context menu integration for adding terms from transcriptions
- User clicks "Add Entry" or uses keyboard shortcut
- Dialog opens with smart defaults based on clipboard/selection
- User enters canonical form, system suggests case mode
- User adds common misrecognitions (with suggestions)
- System validates and saves to vocabulary.jsonc
- User selects multiple entries via checkboxes
- Bulk operations: delete, change category, export subset
- Confirmation dialog for destructive operations
- Progress indicator for large operations
- Toggle "Test Mode" to simulate transcription
- Type or paste text with known vocabulary issues
- Real-time preview showing applied corrections
- Identify gaps in current vocabulary coverage
- Lower barrier to entry for vocabulary customization
- Reduced errors through input validation
- Better organization with categorization and search
- Faster iteration on vocabulary improvements
- Visual feedback on correction rules
- Phase 1: Basic CRUD operations with simple list interface
- Phase 2: Advanced features (categories, search, bulk operations)
- Phase 3: Smart suggestions and testing mode
- Phase 4: Import/export and integration features
- Reduced time to add new vocabulary entries
- Fewer JSON syntax errors in vocabulary.jsonc
- Increased user customization of vocabulary
- Positive user feedback on ease of use
~/.config/fluidvoice/vocabulary.jsonc- Configuration file- Potential new files:
Sources/VocabularyEditor/- UI implementationSources/VocabularyManager.swift- Data managementSources/VocabularyValidation.swift- Input validation
This feature would significantly improve the user experience for vocabulary customization, making FluidVoice more accessible to non-technical users while providing power users with advanced management capabilities.