Skip to content

Kenshiin13/echo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Echo

Local voice-to-text for Windows.
Hold a hotkey or just start talking; the transcript gets pasted where your cursor is.

Release Platform whisper.cpp


Echo settings window

Features

  • Push-to-talk hotkey (default F9) that works in any app
  • Voice activation mode (Silero VAD) if you don't want to hold a key
  • Pick a specific microphone, or let the OS default route
  • Whisper runs locally via whisper.cpp — audio stays on your machine
  • CUDA acceleration if you have an NVIDIA GPU, CPU fallback otherwise
  • Five Whisper model sizes: tiny, base, small, medium, large-v3-turbo, plus a local Models library to delete/swap them
  • Optional DeepL translation into a target language of your choice
  • Find & replace rules + an initial prompt passed to Whisper, applied to every transcript
  • Hands-free paste — pin a target window and Echo focuses it, pastes, and returns you to whatever you were on. Works even when the target is minimized
  • Auto-submit — press Enter after paste, handy for Claude / ChatGPT / Discord
  • Rolling transcription history with copy-to-clipboard
  • Built-in auto-updater: new releases download in the background and install with one click
  • Lives in the system tray; can start at login

Install

Download the latest installer from the Releases page and run it.

On first launch Echo downloads the selected Whisper model (base by default) and, if you have an NVIDIA GPU and pick the CUDA backend, the matching whisper.cpp binary. From v2.2.0 onward, Echo checks for its own updates on launch and installs them from a single Restart & install button in the About tab.

Usage

Push-to-talk (default):

  1. Hold F9 (or whatever hotkey you set).
  2. Speak.
  3. Release. Transcript is pasted into the focused text field.

Voice activation:

In Settings → Hands-free, toggle Voice activation on. Echo then listens continuously and transcribes each utterance as you speak. The mic stays live; the hotkey is disabled while this is on.

Hands-free paste into a specific window:

In Settings → Hands-free, pick a Target window. Every transcript after that goes to that window — Echo focuses it, pastes, and returns focus to whatever you were actually on. Minimized targets are un-minimized for the paste then re-minimized afterward. The pin is keyed by process ID so title changes (Chrome tab switches, Notepad edits) don't break it, and is cleared only when the pinned process actually dies. The pin is intentionally volatile across app restarts — pick it again next session.

Enable Auto-submit alongside it to send Enter after the paste, so voice-driving a chat app is literally hands-free.

Settings

Organised into six tabs in the Settings window (tray → Settings).

General

Setting Default Notes
Push-to-talk hotkey F9 Any key or modifier combo
Exit shortcut Ctrl+Alt+Q Global quit
Microphone System default Pick a specific input device; falls back to default if unplugged
Start at login Off

Model

Setting Default Notes
Whisper model size base tiny / base / small / medium / large-v3-turbo
Language Auto-detect Pin one for a small speedup and to enable the translate-skip optimisation
Compute backend Auto CPU or CUDA; auto-selected based on hardware
Downloaded models List, delete, and re-download cached models

Post-processing

Setting Default Notes
Initial prompt Biases Whisper's style (custom vocabulary, punctuation, tone)
Translate to Off Sends the transcript to DeepL for translation
DeepL API key Only needed when a translation target is set. Free keys end in :fx
Find & Replace Case-insensitive rules applied last; supports \n / \t

Hands-free

Setting Default Notes
Target window None Pin a specific window for all transcripts (by PID, volatile across restarts)
Voice activation Off Always-on mic; disables the push-to-talk hotkey
Auto-paste transcript On Off = copy to clipboard only
Auto-submit Off Press Enter after paste; requires auto-paste

History

Rolling last 50 transcripts, persisted to %APPDATA%\Echo\history.json. Copy each back to the clipboard, delete individually, or clear all. Toggle off to stop saving without wiping existing entries.

About

Current version, platform and GPU badges, Check for updates button, and a "What's new" list of recent releases linking to the GitHub compare view for each version.

Build from source

Requires Node.js 20+ on Windows.

git clone https://github.com/Kenshiin13/echo.git
cd echo/electron
npm install --legacy-peer-deps
npm run dev

Package an installer:

npm run dist:win

Pushing a v* tag runs the release workflow and publishes a GitHub Release with the built artifacts (installer, latest.yml, blockmap — electron-updater needs all three).

Stack

License

This project is licensed under the GNU GPL v3.0 - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors