Production Lines
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
- Hotkey capture. A global hotkey (default Ctrl+Space) starts/stops capture from anywhere. Per-mode hotkeys map different key combos to different dictation modes.
- Audio record. Microphone capture with voice-activity detection (VAD) and a highpass filter to reduce low-frequency noise before transcription.
- Transcription. faster-whisper runs locally against a model stored in
%APPDATA%\Echo\models(CPU or GPU). Custom vocabulary biases recognition toward domain terms. - 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.
- Auto-paste. The final text is pasted into the currently active application.
- 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.pymoves data from the old%APPDATA%\Chuchoteurfolder (preserving models + history) so existing users lose nothing.