mirror of
https://github.com/yusufipk/dikte.git
synced 2026-09-11 19:06:11 +00:00
Every file this branch touches moved into dikte/, so the merge is mostly the rename following the edits. What needed a hand: hotkey.py: master replaced the _macos()/_gnome() pair with one backend() chooser, and this branch had added _windows() to the pair. Windows is a fifth value of the chooser now, and everything that used to ask "macOS or Windows?" asks backend() instead. The key is held by the running process there, so installs_shortcuts() and shortcut_needs_restart() are both false for it, and desktop_name() says Windows. install.ps1 and the Windows README name dikte/__main__.py, the entry point the Linux and macOS installers were pointed at in the same commit. The Start Menu entry, the autostart entry and the dikte.cmd shim all come off one $entry variable. settings_ui.py: the shortcut tab now has a Windows sentence of its own, with the Turkish for it. Falling through to the branch master wrote for a desktop with no registry would have told a Windows user to check /dev/input. Nothing covers that branch: there is no Windows Settings test class, the way there is one for macOS. CONTRIBUTING: the chooser it names is backend() now, and the test count is the merged one, 1067 of 1110 running anywhere.
76 lines
3.1 KiB
Markdown
76 lines
3.1 KiB
Markdown
# Dikte on Windows
|
|
|
|
Press `Ctrl+Space`, talk, press again: what you said is transcribed, cleaned
|
|
up and pasted where your cursor is.
|
|
|
|
## Requirements
|
|
|
|
- **Windows 10/11**
|
|
- **Python 3.11+** with **PyQt6** (`pip install PyQt6`; install.ps1 installs
|
|
it when it is missing)
|
|
- **ffmpeg** for microphone capture: `winget install Gyan.FFmpeg`
|
|
|
|
## Installing
|
|
|
|
```powershell
|
|
powershell -ExecutionPolicy Bypass -File install.ps1
|
|
```
|
|
|
|
This adds a **Dikte** entry to the Start Menu and a **`dikte`** command to the
|
|
terminal. Add `-Autostart` to also start it at sign-in; `-Uninstall` removes
|
|
all of it and leaves the repository and your settings alone.
|
|
|
|
To try it without installing anything:
|
|
|
|
```sh
|
|
python -m dikte
|
|
```
|
|
|
|
## First run
|
|
|
|
1. The tray icon appears and the Settings window opens.
|
|
2. Under **API and models**, download a local whisper model (the whisper.cpp
|
|
Windows build is fetched automatically) or enter an OpenAI, Groq or
|
|
OpenRouter key.
|
|
3. The shortcut defaults to `Ctrl+Space` and is changed under Shortcuts.
|
|
While Dikte runs, Windows' own hotkey service (RegisterHotKey) listens for
|
|
it: nothing to install and no permission to grant.
|
|
|
|
## What is different from Linux and macOS
|
|
|
|
- **Meeting recording (microphone + speakers) is not supported yet.** Windows
|
|
does not offer what the speakers are playing as a capture device, so there
|
|
is nothing to record the far side from. Everything else works, including
|
|
transcribing audio and video files.
|
|
- **The shortcut is swallowed**: while Dikte holds `Ctrl+Space`, the focused
|
|
application does not see it. This is how macOS behaves too, and unlike the
|
|
Linux listener, which shares the key.
|
|
- No external tools for the clipboard or the key press: both go straight
|
|
through the Windows API (the clipboard, SendInput).
|
|
- Settings live under `%APPDATA%\Dikte`, models and recordings under
|
|
`%LOCALAPPDATA%\Dikte`.
|
|
|
|
## Performance
|
|
|
|
- The local install fetches whisper.cpp's **OpenBLAS build**, which
|
|
transcribes about twice as fast as the stock one on a plain CPU. There is
|
|
no GPU build to fetch for machines without an NVIDIA card, and none for
|
|
Windows on ARM either: whisper.cpp publishes x64 only, so a Snapdragon
|
|
machine runs it under emulation and the cloud is the faster option there.
|
|
- Setting Settings → API and models → **Threads** near your physical core
|
|
count helps noticeably; the server's own default is 4.
|
|
- If speed matters more than accuracy, `ggml-small` and `ggml-base` are much
|
|
faster; `ggml-large-v3-turbo-q5_0` transcribes best.
|
|
|
|
## Troubleshooting
|
|
|
|
- **Recording does not start:** does `dikte doctor` find ffmpeg, and does
|
|
`dikte devices` list your microphone? `devices` also takes a fresh listing,
|
|
which is what to run after plugging one in.
|
|
- **Nothing is pasted:** a normal-privilege process cannot type into an
|
|
elevated (administrator) window; run Dikte elevated too, or paste by hand.
|
|
The text lands on the clipboard either way.
|
|
- **The shortcut does nothing:** another application already holds the
|
|
combination. Dikte says so in a tray notification when it asks for the key;
|
|
pick a different one under Settings → Shortcuts.
|