This guide is for development, local testing, packaging, and debugging.
Key files:
main.py- app entry point and runtime wiringsettings_dialog.py- main settings windowtray.py- tray UI and tray menusoverlay.py- recording / loading / transcribing overlaytranscriber.py- backend orchestration and model lifecyclemodel_store.py- model download, validation, and install trackingcuda_downloader.py- on-demand CUDA runtime downloadinstaller.iss- Inno Setup installerrelease.ps1- preferred build entry point
Create a virtual environment:
py -m venv .venvInstall base dependencies:
.venv\Scripts\python.exe -m pip install -r requirements.txtInstall CUDA-related dependencies:
.venv\Scripts\python.exe -m pip install -r requirements-cuda.txtOptional dependencies:
.venv\Scripts\python.exe -m pip install -r requirements-openvino.txt
.venv\Scripts\python.exe -m pip install -r requirements-optional.txt.venv\Scripts\python.exe main.pyDefault hotkey:
win+ctrl
Supported input modes:
- hold to speak
- press to speak
- Hotkey starts recording.
- Audio is captured from the selected input device.
- VAD precheck can reject silence.
- Model is loaded if needed.
- Audio is transcribed locally.
- Result is inserted via clipboard paste.
- Optional rescue memory keeps the last dictation available for manual copy.
%APPDATA%\Whisply\config.yaml
%LOCALAPPDATA%\Whisply\models
%LOCALAPPDATA%\Whisply\cuda_runtime
%LOCALAPPDATA%\Whisply\logs
Typical log files:
whisply-YYYYMMDD.logwhisply-fault.log
Important config areas:
combinationmodedebounce_msdebug_tracedebug_global
devicesample_ratechannelsvad_enabledvad_thresholdvad_min_speech_ms
modellanguagebackendcompute_typebeam_sizeunload_after_idle_secdownload_root
widthheightmonitor_indexopacitybottom_offsetwaveform_stylewaveform_gradient_startwaveform_gradient_endtranscribing_delay_mstranscription_timeout_ms
restore_clipboardpaste_delay_msappend_trailing_spacerescue_enabledrescue_timeout_secrescue_never_expire
autostartlanguage_uidebug_logginglog_to_filelog_dirlog_retention_days
Supported product models:
smallmediumlarge-v3large-v3-turbo
Models can be installed:
- during first-run setup
- from the tray
- by selecting an uninstalled model in settings
- via CLI prefetch
Whisply does not bundle all CUDA runtime DLLs in the main installer.
Instead:
- NVIDIA hardware is detected
- CUDA availability is checked
- if required runtime DLLs are missing, Whisply can offer a download
- runtime files are stored in the app-owned
cuda_runtimefolder
This keeps the main installer smaller while still allowing GPU acceleration.
Standard mode:
- normal operational logging at
INFO
Debug toggle in settings:
- enables broader
DEBUGlogging for troubleshooting - intended for temporary use while diagnosing issues
Logs are technical and should stay relatively compact in normal use.
Use release.ps1.
Installer build:
powershell -ExecutionPolicy Bypass -File .\release.ps1 -Target installerFull release build:
powershell -ExecutionPolicy Bypass -File .\release.ps1 -Target all -Clean- compile-check runs first
- PyInstaller builds
Whisply.exe - Inno Setup builds
Whisply-Installer.exe release.ps1now includes an automatic fallback viadist_installerif Inno cannot write directly todist
Recommended GitHub release assets:
Whisply-Installer.exeas the main download
Before publishing a release:
- verify
cuda_manifest.jsoncontains the real runtime asset URL - test installer on a clean Windows machine
- test CPU path
- test CUDA path if NVIDIA hardware is available
- confirm first-run setup still behaves correctly
Current product-facing backend support:
cpucudaauto
OpenVINO code remains in the repository for future work but is currently not presented as a primary product path.