Open-source offline Whisper dictation app for Windows desktop voice typing and local speech-to-text.
Dictly is an open-source offline Whisper dictation app for Windows built around Whisper, faster-whisper, WhisperX, and local speech-to-text workflows. Hold a hotkey, speak, release, and Dictly transcribes your voice locally and pastes the text into the active app. No API keys, no cloud dependency, no subscription.
Dictly is a local AI dictation tool for:
- offline voice typing on Windows
- Whisper speech recognition
- faster-whisper transcription
- push-to-talk speech to text
- desktop dictation in any app
If someone is searching for a Whisper dictation app, offline speech-to-text for Windows, open-source voice typing software, or a faster-whisper desktop transcription tool, this repository is for that use case.
Dictly is released under the MIT license in LICENSE.
This repository is the source code. End users do not need to install Python packages if you publish the packaged Windows build from GitHub Releases.
- Offline transcription with Whisper and faster-whisper
- Push-to-talk global hotkey
- Desktop waveform overlay
- Settings UI for backend, model, beam size, language, theme, and device
- Transcription history
- Tray icon and startup option
- CPU fallback when GPU backend is unavailable
- Packaged Windows EXE build for non-technical users
Whisper, faster-whisper, whisperx, speech to text, offline dictation, Windows dictation, voice typing, local transcription, AI dictation, desktop dictation, push-to-talk transcription, offline voice input, open source Whisper app, offline speech recognition, Windows voice typing, local AI transcription, desktop speech-to-text.
Latest release:
- Releases page:
https://github.com/KushalLukhi/dictly-whisper/releases - Latest release:
https://github.com/KushalLukhi/dictly-whisper/releases/latest
GitHub does not run .exe files inside the repository page itself. For Windows users, the correct flow is:
- Open the repo's Releases page.
- Download
Dictly-windows.zip. - Extract the ZIP on your PC.
- Open the extracted
Dictlyfolder. - Run
Dictly.exe.
Do not download only the standalone .exe from inside the folder tree. The app needs the bundled _internal files next to it.
No pip install is required for release users.
python -m venv venv
venv\Scripts\activate
python -m pip install -r requirements.txt
python .\main.pypython -m venv venv
venv\Scripts\activate
python -m pip install -r requirements-build.txt
.\build.batBuild output:
- Folder build:
dist\Dictly\ - Release ZIP:
dist\Dictly-windows.zip
Users can run that packaged build directly without installing Python or project dependencies.
If you want a normal Windows installer instead of opening the packaged EXE folder directly:
- Build the app package first.
- Run:
.\build-installer.batInstaller output:
installer-dist\Dictly-Setup.exe
Default behavior:
- uses Inno Setup if available
- otherwise falls back to a built-in IExpress installer
The installer puts Dictly under the current user's AppData\Local\Programs\Dictly folder and creates Start Menu shortcuts.
If you want users to install Dictly without downloading models on first run, bundle models into the app before building the installer.
Recommended flow:
- Download the models you want to ship:
.\download-models.bat- Build the offline installer:
.\build-offline-installer.batNotes:
- The build includes everything found under
models\ - The installer will contain those bundled model files
- Larger models make the installer much bigger
- For most users, bundling
smallis the best size versus quality tradeoff
Recommended release flow:
- Build the Windows package locally.
- Open GitHub and create a new Release.
- Upload
Dictly-windows.zipas a release asset. - Tell users to download the ZIP from Releases, extract it, and run
Dictly.exe.
auto: prefers the best available supported backendinsanely-fast-whisper: CUDA-onlytransformersbackend tuned for fast chunked Whisper inferencefaster-whisper: reliable CPU path with optional CUDA device selectionwhisperx: experimental live mode without alignment or diarizationwhisper-directml: optional and guarded; falls back to CPU if unsupported
Dictly can now load faster-whisper models from disk instead of downloading them from the Hugging Face Hub.
To download every Dictly model locally into the repo:
.\download-models.batThis downloads:
tinybasesmallmediumlarge-v2large-v3
The files are stored under models\<model-name> and are automatically picked up by the packaged app.
Option 1: pick a local model folder in Settings.
- Open
Settings - Set
Modelto match the local model you downloaded, for examplesmall - Set
Local Model Directoryto the extracted model folder - Save and reload
Option 2: bundle models into the packaged app.
Place the model files under this repo before building:
models/
small/
config.json
model.bin
tokenizer.json
vocabulary.json
...
Then rebuild with:
.\build.batThe packaged app will automatically look for bundled models under models\<model-name> before trying the Hub.
The insanely-fast-whisper backend is intended for NVIDIA CUDA systems with torch + transformers available.
- It is not used by
auto; select it explicitly in Settings. - It falls back to
faster-whisperif CUDA or the required Python deps are unavailable. - It uses OpenAI Whisper checkpoints from Hugging Face such as
openai/whisper-small. - The shared
Local Model Directoryfield must point to a transformers-compatible Whisper model folder for this backend. The bundledmodels/layout produced bydownload_models.pyis for faster-whisper and should not be reused here.
app.py
config_manager.py
dictation_overlay.py
history_manager.py
main.py
recorder.py
settings_window.py
startup_manager.py
transcriber.py
transcription_backends.py
tray.py
typer.py
waveform_widget.py
dictly.spec
build.bat
requirements.txt
requirements-build.txt
- The packaged app still downloads Whisper model weights on first use unless a compatible local or bundled model directory is provided.
- First-run model downloads depend on valid TLS certificates. Packaged Windows builds now try the Windows trust store first, then fall back to
certifi; machines behind SSL inspection still need their root CA installed in Windows. - Global hotkeys, microphone access, and text insertion behavior can vary across operating systems.