← Whispering

docs: Update README for v1.3.0 with voice commands documentation

af6907a4b08af86d115318c7d1be3f05dd2d0375 · Claude · Feb 10, 2026 17:12

- Bump version to 1.3.0
- Add Voice Commands feature section with supported commands table
- Add voice commands configuration guide with detection modes
- Add custom command example (user-defined signatures/macros)
- Update Interface Guide with Voice Commands usage
- Update File Structure to include new command modules
- Add v1.3.0 changelog with Phase 1 features and roadmap

Voice Commands Roadmap documented:
- Phase 1 (complete): Punctuation, whitespace, quotes, parens
- Phase 2 (planned): Formatting (bold, italic, headings)
- Phase 3 (planned): User-defined macros
- Phase 4 (planned): Dual-model low-latency detection

https://claude.ai/code/session_0158RsuryxditNwJ4AGZEs3Z

+87 −15 · 1 file changed

  • README.md +87 −15
diff --git a/README.md b/README.md
index 2437df2..37c8292 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
 # Whispering 🎙️
 
-**Version 1.2.3**
+**Version 1.3.0**
 
-Real-time speech-to-text application with AI-powered translation, proofreading, and voice cloning.
+Real-time speech-to-text application with AI-powered translation, proofreading, voice commands, and voice cloning.
 
 Whispering combines [faster-whisper](https://github.com/SYSTRAN/faster-whisper) for state-of-the-art speech recognition with modern AI models (Claude, GPT-4, Llama) to provide a powerful voice interface for your workflow.
 
@@ -17,6 +17,13 @@ Whispering combines [faster-whisper](https://github.com/SYSTRAN/faster-whisper)
 - **Auto-Type**: Dictate directly into any application (Word, Browser, IDE, Discord).
 - **Smart Formatting**: Paragraph detection and automatic punctuation.
 
+###  Voice Commands
+- **Punctuation by Voice**: Say "comma", "period", "question mark" to insert punctuation.
+- **Text Structure**: "New paragraph", "new line", "tab" for document formatting.
+- **Multi-language Commands**: Speak commands in English, Hebrew, French, German, or Spanish.
+- **Isolation Detection**: Commands are only triggered when spoken as standalone phrases (not mid-sentence).
+- **Rich Text Output**: Output panels render HTML for formatted text display.
+
 ###  AI Powers
 - **Intelligent Proofreading**: correct grammar and polish your spoken text.
 - **Context-Aware Translation**: Nuanced translations that understand context.
@@ -70,6 +77,10 @@ The Modern UI is divided into a control sidebar and dynamic output panels ("Whis
 - **Text-to-Speech**:
   - **Source**: Speak from Raw Transcript (W), AI Output (A), or Translation (T).
   - **Voice**: Upload a reference file to clone a voice instantly.
+- **Voice Commands**:
+  - Enable via the "Voice Commands" checkbox in the sidebar.
+  - Speak command words as standalone phrases (pause before/after).
+  - Commands are replaced with their text equivalents (e.g., "comma" → `,`).
 
 ##  Configuration
 
@@ -86,24 +97,62 @@ summarizer:
   prompt: "Summarize the following text into bullet points:"
 ```
 
+### Voice Commands
+Voice commands are defined in `config/voice_commands.yaml`. The default configuration includes:
+
+**Supported Commands (Phase 1):**
+| Voice Command | Inserts | Variants |
+|---------------|---------|----------|
+| "comma" | `,` | פסיק, virgule, komma, coma |
+| "period" / "full stop" | `.` | נקודה, punkt, punto |
+| "question mark" | `?` | סימן שאלה, fragezeichen |
+| "exclamation mark" | `!` | סימן קריאה, ausrufezeichen |
+| "new paragraph" | `\n\n` | פסקה חדשה, nuevo párrafo |
+| "new line" | `\n` | שורה חדשה, nouvelle ligne |
+| "colon" / "semicolon" | `:` / `;` | נקודתיים, doppelpunkt |
+| "dash" / "ellipsis" | ` — ` / `...` | מקף, tiret |
+| "open quote" / "close quote" | `"` | פתח/סגור מרכאות |
+| "open paren" / "close paren" | ` (` / `) ` | סוגריים |
+| "tab" | `\t` | indent |
+
+**Detection Modes:**
+- `isolation` (default): Command must be the entire spoken segment. "I need a comma here" won't trigger, but saying just "comma" will.
+- `prefix`: Command must start with a wake word (e.g., "command comma").
+
+**Adding Custom Commands:**
+```yaml
+commands:
+  my_signature:
+    action: insert_text
+    insert: "\n\nBest regards,\nJohn Doe"
+    triggers:
+      en: ["sign off", "my signature"]
+```
+
 ##  File Structure
 
 ```
 Whispering/
-├── config/                 # Configuration files (AI keys, personas)
-├── logs/                   # Session logs organized by date
-├── scripts/                # Install & Run scripts
+├── config/
+│   ├── ai_config.yaml          # AI model settings & prompts
+│   ├── custom_personas.yaml    # Custom AI assistants
+│   └── voice_commands.yaml     # Voice command definitions
+├── logs/                       # Session logs organized by date
+├── scripts/                    # Install & Run scripts
 ├── src/
-│   ├── whispering_ui/      # Modern NiceGUI Application
-│   │   ├── components/     # UI Widgets (Sidebar, Chat, Help)
-│   │   ├── bridge.py       # UI <-> Core Logic Bridge
-│   │   └── main.py         # App Entry Point
-│   ├── core_parts/         # Audio Device & Signal Processing
-│   ├── ai_provider.py      # OpenRouter AI Integration
-│   ├── session_logger.py   # JSONL Logging & Recovery System
-│   └── tts_controller.py   # TTS & Voice Cloning Logic
-├── tts_output/             # Generated Audio Files
-└── tts_voices/             # Uploaded Voice Reference Files
+│   ├── whispering_ui/          # Modern NiceGUI Application
+│   │   ├── components/         # UI Widgets (Sidebar, Output, Help)
+│   │   ├── bridge.py           # UI <-> Core Logic Bridge
+│   │   └── main.py             # App Entry Point
+│   ├── core_parts/             # Audio Device & Signal Processing
+│   ├── ai_provider.py          # OpenRouter AI Integration
+│   ├── commands_config.py      # Voice commands YAML loader
+│   ├── command_detector.py     # Voice command pattern matching
+│   ├── command_executor.py     # Voice command action dispatcher
+│   ├── session_logger.py       # JSONL Logging & Recovery System
+│   └── tts_controller.py       # TTS & Voice Cloning Logic
+├── tts_output/                 # Generated Audio Files
+└── tts_voices/                 # Uploaded Voice Reference Files
 ```
 
 ##  Requirements
@@ -143,6 +192,29 @@ Use `qpwgraph` for visual JACK-style audio routing.
 
 ## Changelog
 
+### Version 1.3.0
+**New Features:**
+- **Voice Commands (Phase 1)**: Control transcription with your voice
+  - Punctuation: "comma", "period", "question mark", "exclamation mark", etc.
+  - Structure: "new line", "new paragraph", "tab"
+  - Quotes & Parens: "open quote", "close quote", "open paren", "close paren"
+  - Multi-language triggers: Commands work in English, Hebrew, French, German, Spanish
+  - Configurable via `config/voice_commands.yaml`
+- **Rich Text Output Panels**: Output panels now render HTML instead of plain text
+  - Enables formatted text display for future Phase 2 (bold, italic, headings)
+  - Proper newline and tab rendering
+  - XSS-safe HTML escaping
+
+**Improvements:**
+- Native clipboard operations (xclip/xsel/wl-copy) replace JavaScript clipboard API for PyQt6 compatibility
+- Command word suppression prevents "comma" from flickering in preview before replacement
+- Isolation heuristic: Commands only trigger when spoken as standalone phrases
+
+**Voice Commands Roadmap:**
+- **Phase 2** (Planned): Formatting commands (bold, italic, headings) with stateful detection
+- **Phase 3** (Planned): User-defined macros (keystroke sequences)
+- **Phase 4** (Planned): Dual-model architecture for low-latency command detection
+
 ### Version 1.2.3
 **New Features:**
 - **File Transcription**: Transcribe audio files (MP3, WAV, FLAC, OGG, M4A, etc.)