Skip to content

G3dar/Dictator

Repository files navigation

I Am Dictator 🎙️

Push-to-talk speech-to-text transcriber for Windows that lets you dictate text anywhere.

Features

  • 🎯 Universal Hotkey: Press CTRL+ALT to start/stop recording
  • 🤖 Local AI: Uses OpenAI Whisper for accurate transcription
  • 🔇 Subtle Audio Feedback: Low-volume beeps indicate recording state
  • ⚡ Batch Processing: Records complete utterances for better accuracy
  • 🎤 Microphone Selection: Choose from available audio input devices
  • 📝 Auto Text Injection: Automatically types transcribed text
  • 🌍 Multi-language: Supports automatic language detection
  • 🔒 Privacy-First: All processing happens locally

Quick Start

  1. Run IAmDictator.exe
  2. The app starts in the system tray
  3. Hold CTRL+ALT and speak
  4. Release keys when done
  5. Transcribed text appears automatically

System Tray Menu

Right-click the tray icon to access:

  • Language: Auto, English, Spanish, French, German, Portuguese
  • Model: Tiny (fastest) to Large-v3 (most accurate)
  • Injection Mode: SendInput or Clipboard
  • Microphone: Select input device
  • Settings: Advanced configuration
  • Logs: View application logs

Requirements

  • Windows 10/11
  • .NET 8.0 Runtime
  • Python 3.10+ (for STT server)
  • Microphone

Architecture

┌─────────────────────┐
│   WPF Application   │
│  (System Tray UI)   │
└──────────┬──────────┘
           │
           ├── Hotkey Engine (CTRL+ALT)
           ├── Audio Capture (NAudio)
           ├── gRPC Client
           │
           v
┌─────────────────────┐
│   Python STT Server │
│  (faster-whisper)   │
└─────────────────────┘
           │
           v
┌─────────────────────┐
│   Text Injection    │
│   (SendInput API)   │
└─────────────────────┘

Components

  • IAmDictator.App: WPF application with system tray UI
  • IAmDictator.Core: Core functionality (hotkeys, audio, text injection)
  • IAmDictator.STT.Server: Python gRPC server with faster-whisper

Configuration

Settings are stored in: %APPDATA%\IAmDictator\settings.json

{
  "Hotkey": {
    "Enabled": true,
    "ArmedDelayMs": 120
  },
  "Transcription": {
    "ModelName": "small",
    "Language": "auto"
  },
  "Injection": {
    "Mode": "SendInput"
  },
  "General": {
    "MicrophoneDeviceIndex": 0
  }
}

Building from Source

Prerequisites

  • .NET 8.0 SDK
  • Python 3.10+
  • Visual Studio 2022 or VS Code

Build Steps

  1. Clone the repository:
git clone https://github.com/yourusername/IAmDictator.git
cd IAmDictator
  1. Build the solution:
dotnet build IAmDictator.sln --configuration Release
  1. Setup Python STT server:
cd src/IAmDictator.STT.Server
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
  1. Run the application:
src\IAmDictator.App\bin\Release\net8.0-windows\IAmDictator.App.exe

Troubleshooting

No transcription appearing

  • Check microphone selection in tray menu
  • Verify STT server is running (check logs)
  • Ensure correct microphone device is selected

Poor transcription quality

  • Use a better microphone (headset recommended)
  • Increase model size (small → medium → large)
  • Speak clearly and at moderate pace
  • Reduce background noise

Logs Location

%LOCALAPPDATA%\IAmDictator\logs\

License

MIT License - See LICENSE file for details

Credits

  • Whisper: OpenAI
  • faster-whisper: SYSTRAN
  • NAudio: Mark Heath
  • gRPC: Google

Made with ❤️ for productivity enthusiasts

About

Voice-to-text dictation app for Windows & macOS using local AI (OpenAI Whisper)

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors