Branch tags: #branch/main #branch/release-microsoft-store
ποΈ AI-powered voice-to-text with smart integrations for Windows
A fork of cjpais/Handy with additional features
π₯ Download AivoRelay β Get the latest release!
π Microsoft Store Version β This is an official listing on the Microsoft Store. Note that the Store version is not updated as frequently as the desktop application available here on GitHub, but it does not require administrator rights to install, is signed by Microsoft, and is verified by Microsoft before releasing. It is currently outdated by few months, but will be worked on later.
Of course, basic speech-to-text, all that upstream can do. Lots of models: cloud, local, languages auto pick up, etc. If you use local speech-to-text models, then app is local and free. No data goes outside. If you use any cloud models, data goes outside. Then after speech-to-text model produced text, it can be processed by LLM model (this is handled via API to the server of your choice). And also there are some other processings that can be made, like replacing any text by regular expression or some minor form of post processing. Then there are some additional features that you might want to use or not: like relaying your text to the ChatGPT, running commands, making text out of audio files, recording computer audio as text and so on. The app is complex but capable and you can make it simpler by not using some features.
Quick-switch between language, prompt, and LLM post-processing presets with dedicated shortcuts: switch the currently active profile or assign each profile its own hotkey!
Profiles let you create different transcription configurations and switch between them instantly. Perfect for:
- Multilingual users β Switch between English, Russian, Finnish, etc.
- Different use cases β One profile for dictation, another for code comments
- Application-aware workflows β Automatically use a profile when the main Transcribe shortcut is pressed in a matching executable, window title, or install path
- Translation workflows β Speak in one language, output in another + auto switch language with Windows language!
- Everything you can imagine! β Seriously, you can invent so many uses!
Enable Different applications to use different profiles under your profiles list
to attach automatic application rules (such as code.exe, title:Microsoft Teams,
or path:*\Microsoft Office\*) to each custom profile. When disabled, this feature
runs with zero background overhead (lazy loading). When enabled, you can also display
a sleek chip with the detected application directly in the recording overlay. Rules
are evaluated only when the main Transcribe shortcut starts; an explicit per-profile
shortcut always keeps its assigned profile, and an unmatched application keeps your
manually active profile.
Each profile can override the global LLM post-processing settings:
- Enable/Disable β Turn LLM processing on/off per profile
- Custom Prompt β Use a different prompt than the global one
- Custom Model β Use a different LLM model per profile
Example: Create a "Finnish Translation" profile that takes any language input and outputs Finnish text via LLM.
When writing LLM prompts, use ${output} as a placeholder for the transcribed text:
Translate this to Finnish: ${output}
How it works:
- You speak β "Hello, how are you?"
- STT transcribes β "Hello, how are you?"
${output}is replaced β "Translate this to Finnish: Hello, how are you?"- LLM processes β "Hei, mitΓ€ kuuluu?"
Assign key combinations to the following actions:
| Shortcut | Action |
|---|---|
| Main Transcribe | Use an automatic application match, or fall back to the active profile |
| Cycle Profile | Switch to the next active profile in cycle |
| Per-Profile Shortcuts | Each profile can have its own dedicated shortcut if you don't want to cycle profiles but use all at once |
The "Default Profile" uses your global settings (Speech / Mic). It cannot be deleted but can be customized or set as active.
Setup: Transcription Profiles
Read text aloud or turn complete documents into narrated MP3, Opus, or WAV files. AivoRelay can speak clipboard or selected text in most Windows applications and convert .txt and .md documents to audio with cloud, Windows, or optional local voices. Cloud services receive the supplied text and set their own pricing; Windows voices and local models keep synthesis on the device.
You do not need to understand every setting to begin. AivoRelay includes ready-made presets for every TTS provider and automatically opens the recommended preset the first time you select a provider on each TTS page.
The collapsed voice gallery on both TTS pages includes locally playable Opus samples with their provider, model, voice, and synthesis settings. Applying a card restores those exact voice settings without changing the selected output format or spending API credits on the preview.
- Open Speak selected text in the sidebar.
- Choose a provider. Its recommended preset is loaded automatically the first time; you can select a different preset later.
- Add an API key if the selected cloud provider requires one. Windows voices and the unofficial Microsoft Read Aloud integration do not require a key; local models keep synthesis on the device after installation.
- Assign a keyboard shortcut under Actions. Other settings can stay at their defaults.
- Select text in a supported application and press the shortcut to hear it.
Open Text file to mp3 in the sidebar to convert one or more .txt or .md documents, scan folders with optional subfolders, or automate a watched folder. Long documents are split at natural boundaries, and interrupted jobs can resume from saved progress. Optional AI cleanup may send text to the configured LLM and incur provider costs. Existing outputs are never overwritten.
Available choices include Soniox, Deepgram, OpenAI, OpenAI-compatible custom servers, Murf AI (Falcon 2 and Gen2), ElevenLabs (Eleven v3 and Multilingual v2), Cartesia Sonic 3.5, Windows installed voices, the unofficial Microsoft Read Aloud integration, and optional local Qwen or Kokoro models. File conversion and interactive speech keep separate active settings while sharing saved presets.
See your transcription in real-time in a separate, customizable, always-on-top window.
- Real-time stream β View final and interim results as you speak.
- Customizable β Adjust opacity, colors, theme, and positioning.
- Smart Positioning β Can follow your mouse cursor or stay in a fixed corner.
- Hotkey Controls β Assign shortcuts to toggle visibility or trigger actions.
Setup: User Interface β Live Preview

Real-time speech-to-text streaming β see your words appear as you speak!
- Live streaming β Words appear instantly during speech
- Language hints β Guide recognition with expected languages
Setup: Models
Use Deepgram for fast cloud transcription, including live speech-to-text.
- Regular or live use β Works for standard recording and live transcription
- Flexible tuning β Adjust settings for speed and accuracy
- Speaker diarization β Can label different speakers in audio file transcription
Setup: Models
Voice-controlled text editing β select text, speak instruction, get AI-transformed result.
- Select code β say "add error handling" β improved code replaces selection
- Select paragraph β say "make it shorter" β condensed version
- Empty field + "no selection" mode β say "write a greeting email" β generated text
- Works in any Windows application
In the demonstration above, first I ask to solve the mathematical task, and then to translate text to Finnish.
Setup: AI Replace
If you frequently connect different headsets, USB microphones, or docking stations, you can give one preferred microphone priority whenever it is available. This is also useful with Windows Remote Desktop, where your redirected microphone may appear under a different nameβoften Remote Audioβinstead of the microphone you normally use.
AivoRelay checks the available input devices before every recording, automatically switches to the matching preferred microphone while it is present, and falls back to your last manually selected microphone when it disappears.
Set a case-insensitive microphone name mask such as Remote Audio (wildcards * and ? are also supported). The check runs only when recording starts, with no background device polling.
Setup: Audio Processing β Automatic Microphone Selection
Voice-to-AI bridge via the AivoRelay Connector browser extension β post your voice transcriptions, selected text, and screenshots directly into web AI chats (ChatGPT, Claude, Perplexity, Gemini, Grok, etc.) without manual copy-pasting.
- Easy app-driven setup β AivoRelay can unpack/export the extension right from the app.
- Generated password β The app creates and manages the connector password for you automatically.
- CORS-ready local bridge β Built-in local web server connects securely on
http://127.0.0.1:38243(configurable port). - Built-in screenshots β Native screen region capture overlay (no external tools required) or optional tools like ShareX.
| Mode | Input | What AI chat receives |
|---|---|---|
| Voice only | Speak your question | Your transcribed question |
| Voice + Selection | Speak + selected text | Question with context |
| Voice + Screenshot | Speak + screen capture | Question with image |
Examples:
- Say "what is recursion" β AI chat gets your question
- Select error log, say "why is this failing" β AI chat gets question + the log
- Capture chart, say "explain this" β AI chat gets question + screenshot
- Open Browser Connector in settings β enable the connector and export the bundled extension (a secure password is generated automatically).
- Install / load the AivoRelay Connector extension in Chrome, Edge, Brave, or other Chromium browsers (via
chrome://extensionsβ Developer mode β Load unpacked). - Open ChatGPT, Claude, Perplexity, or another supported AI chat in a browser tab.
- Click the extension icon in your browser toolbar β "Bind to this tab" (connects to
http://127.0.0.1:38243). - Configure your desired shortcut keys under Actions to send voice, selections, or screenshots directly into the active tab!
Setup: Browser Connector
Capture live audio from your computer speakers (loopback), microphone, or both to stream a real-time transcript right inside AivoRelay without typing into other apps. Supports speaker diarization with compatible cloud providers (Gemini Live, Soniox, Deepgram).
Setup: Live Monitor
Drag and drop audio files to get a transcript.
- Supports WAV, MP3, OGG, M4A, FLAC, WebM
- Outputs Text, SRT (Subtitles), or VTT
- Uses your local or cloud models (including Gemini, Soniox, Deepgram)
- Deepgram can label different speakers in multi-speaker recordings
Setup: Transcribe File
Automatically fix transcription errors and apply formatting rules.
| Feature | Description |
|---|---|
| Find & Replace | Simple text substitution with special character support (\n, \t) |
| Case Insensitive | Toggle to match "Hello" and "hello" as the same |
| Regular Expressions | Advanced pattern matching with capture group support ($1, $2) |
Examples:
- Fix typos:
tehβthe - Remove repeated words:
\b(\w+)\s+\1\bβ$1(regex) - Add paragraph breaks:
.\nβ.\n\n
Applied after LLM post-processing, so you get the final word on the output!
Setup: Text Replacement
Automatically recombine and fix complex terms split by speech-to-text (e.g., "Chat G P T" β "ChatGPT") using fuzzy n-gram matching.
Setup: Text Replacement β Custom Words
Automatically filter out filler words and stutters from transcriptions. Enhance LLM templates with dynamic context variables like ${current_app} and ${time_local}!
Avoid unwanted capitalization when continuing a sentence after a manual correction.
AivoRelay passively monitors your "edit" key (default: Backspace). If you press it to correct a transcription and then resume speaking, the next inserted text chunk will automatically start with a lowercase letter. This prevents the system from starting a new "sentence" with a capital letter when you are actually in the middle of a sentence.
- Non-Blocking β Uses a passive listener, so your edit keys work exactly as usual.
- One-Shot Trigger β The logic fires only once after a correction and then resets.
- Configurable Timeout β Set how long the "resume" window remains active after your edit.
- Real-time Support β Works seamlessly with Soniox Live transcription and standard modes.
Setup: Text Replacement β Decapitalize After Manual Edit
Use Gemini 3.5 Transcribe, Gemini Live (via Google Direct or Vercel), Soniox, Deepgram, Groq, or other OpenAI-compatible APIs β or keep using local Whisper. Your choice!
- Fast cloud streaming with Gemini Live, Soniox, and Deepgram
- No GPU? Use fast cloud APIs
- Have a powerful GPU? Run locally for privacy
- Switch between providers anytime
Setup: Models
Execute PowerShell scripts with your voice. Pre-write scripts... or make LLM write them on the fly (confirmation dialog window appears, you can cancel)
- Say "lock computer" β Locks Windows
- Say "open notepad" β Opens Notepad
- Somewhat safe: Always shows confirmation before running
- Smart: If no command matches, use AI to generate a script on the fly (e.g., "open Chrome and go to YouTube")
Setup: Voice Commands
- Download from Releases
- Install and run AivoRelay
- Press
Ctrl+F8β hold to record, release to transcribe!
This extension has only been built and tested for Windows. If you need other platforms, Handy can do it but without additional features.
All original Handy features remain available:
- Local Whisper transcription with multiple model sizes
- Voice Activity Detection (VAD)
- Global keyboard shortcuts (two engines: Tauri for performance, rdev for CapsLock/NumLock support β see Debug settings)
- Push-to-talk mode
- LLM post-processing
- Transcription history
MIT License β NO WARRANTIES.
Bundled and optional runtime components are listed in Third-Party Licenses.
- OneClickPrompts: Your Quick Prompt Companion for Multiple AI Chats!
- Console2Ai: Send PowerShell buffer to AI
- AI for Complete Beginners: Guide to LLMs
- Ping-Plotter the PowerShell only Ping Plotting script
With AivoRelay already running, invoke the same executable to control dictation without opening or focusing its settings window:
AivoRelay.exe recording start
AivoRelay.exe recording start --post-process
AivoRelay.exe recording stop
AivoRelay.exe recording toggle
AivoRelay.exe recording toggle --post-process
AivoRelay.exe recording cancel
AivoRelay.exe transcript clipboard
AivoRelay.exe transcript paste
AivoRelay.exe transcript paste --method ctrl_shift_vRepeated start and stop are safe: starting while recording and stopping while
idle do nothing. Start uses the manually selected transcription profile; stop
preserves the active recording's profile, settings, and output mode, including
recordings started by a profile shortcut. Start/stop/toggle do nothing while
processing or while microphone startup/cleanup is in progress. Cancel uses the
app's existing operation cancellation behavior.
Transcript commands use the latest completed dictation retained in History,
prefer its post-processed text, and skip empty results. Paste uses the saved
clipboard and auto-submit settings. --method overrides only that invocation;
supported methods are ctrl_v, ctrl_shift_v, shift_insert, direct, and
none (hyphenated spellings are also accepted).
The existing --toggle-transcription, --toggle-post-process, and --cancel
flags remain available. Commands are sent through the existing single-instance
transport; the caller exits after delivery, without a transcription result or
execution acknowledgement. Structured recording/transcript commands do not
support --json. Launch AivoRelay normally before using them; a command sent
when no instance is running only launches the app.
AivoRelay exposes the same two app-managed file workflows in the current terminal:
Provider credentials and detailed conversion behavior remain configured in the matching app settings pages.








