Echo — How it works (runtime flow)

Echo — How it works (runtime flow)

Echo is a local Windows dictation tool. Everything runs on-device: audio never leaves the machine, transcription is local (faster-whisper, CPU or GPU). Bilingual FR/EN, with dictation modes, custom vocabulary, history, and a tray UI. Python 3.13/3.14.

Runtime flow

[Global hotkey] → [Record audio] → [faster-whisper transcribe] → [optional LLM rewrite] → [auto-paste]
   Ctrl+Space        VAD + highpass        local, %APPDATA%\Echo\models      mode-dependent       into active app
  1. Hotkey capture. A global hotkey (default Ctrl+Space) starts/stops capture from anywhere. Per-mode hotkeys map different key combos to different dictation modes.
  2. Audio record. Microphone capture with voice-activity detection (VAD) and a highpass filter to reduce low-frequency noise before transcription.
  3. Transcription. faster-whisper runs locally against a model stored in %APPDATA%\Echo\models (CPU or GPU). Custom vocabulary biases recognition toward domain terms.
  4. Optional LLM rewrite. Depending on the active mode, the raw transcript can be passed through an LLM rewrite step (e.g. cleanup/formatting) before output.
  5. Auto-paste. The final text is pasted into the currently active application.
  6. History. Transcriptions are retained in history for reuse.

Modes & hotkeys

  • Multiple dictation modes (e.g. raw transcription vs. rewritten/formatted output), each selectable via its own per-mode hotkey.
  • Default global hotkey: Ctrl+Space.
  • Custom vocabulary improves accuracy on names/jargon.

Key modules

Module Responsibility
main.py App entry point; wires components and runs the tray app loop
recorder.py Microphone capture with VAD + highpass filtering
transcriber.py faster-whisper transcription against the local model
hotkey.py Global + per-mode hotkey registration and dispatch
paster.py Auto-paste of final text into the active application
tray.py System tray UI (menu, status, settings entry)
indicator.py Visual recording/processing indicator
migrate.py One-time %APPDATA%\Chuchoteur%APPDATA%\Echo data migration

Data locations

  • Models, history, and config live under %APPDATA%\Echo.
  • On first run after the rebrand, migrate.py moves data from the old %APPDATA%\Chuchoteur folder (preserving models + history) so existing users lose nothing.