# WhispAssist v0.7.3 **Privacy-first, Windows-native meeting assistant — everything on-device, nothing leaves unless you say so.** A performance release: on Intel Core Ultra machines, transcription now leaves the **CPU nearly idle**. The Whisper encoder keeps running on the **NPU**; the decoder — previously the dominant CPU cost — now decodes with a **KV cache** and runs on the **Intel iGPU**. Nothing here changes the privacy posture: the one new download is the upgraded transcription model, fetched from the same source as before. One universal installer (**MSI** and **NSIS**) covers every machine: **Vulkan** for all GPUs (NVIDIA/AMD/Intel), the Intel **NPU** (OpenVINO), a **DirectML** fallback, and **CPU**. --- ## ⚡ Faster, cooler transcription on NPU systems ### KV-cache decoding The NPU engine previously re-processed the entire token sequence for every new token it generated. It now uses the upgraded *merged* Whisper decoder and caches attention state between steps, so each step does a small, constant amount of work. This benefits **every** machine using the NPU/DirectML engine, whatever device the decoder runs on. ### Decoder on the Intel iGPU On NPU systems the decoder now runs on the **Intel iGPU** via the same OpenVINO runtime already installed for the NPU — no new runtime download. Division of labor while transcribing: - **Encoder** → NPU (the short periodic spikes on Task Manager's NPU graph) - **Decoder** → Intel iGPU - **CPU** → audio plumbing only Measured on a Core Ultra 5 135U (base.en): decoding on the iGPU ran **~4.7× faster** than the same KV-cache decode on the CPU (1.29 s vs 6.10 s for a 19 s clip), with identical transcripts — and that work no longer occupies the CPU at all. **Fallbacks:** no usable Intel iGPU → the decoder automatically drops back to the CPU (still with the KV-cache speedup), and the log says so. Machines with an NVIDIA/AMD GPU can keep using the Vulkan backend (Settings ▸ Hardware), which runs the whole model on that GPU. The startup log names both devices: `transcription engine: ONNX base.en (encoder EP: OpenVINO/NPU, decoder EP: OpenVINO/GPU)`. ### Model update (automatic, one-time) The engine's decoder artifact changed to the merged export (`decoder_model_merged.onnx`, ~208 MB, same trusted source). WhispAssist fetches it automatically in the background on first launch after updating; until it arrives, transcription simply uses the whisper.cpp engine, as on a fresh install. The superseded decoder file is cleaned up automatically. --- ## ✨ Small addition **Settings ▸ Calendar** now has a one-click **libpst (readpst)** download button — the same style as the Import dialog's `ffmpeg`/`yt-dlp` buttons — linking to the ezwinports Windows build. `.pst` calendar import shells out to `readpst`, which isn't bundled; the button just opens the download page in your browser. --- ## 📦 Install **Requirements:** Windows 10 or 11 (x64). WhispAssist needs **WebView2** (preinstalled on Windows 11; the installer fetches it on Windows 10). Importing from a file/URL additionally needs **`ffmpeg`** (and **`yt-dlp`** for URLs) on your PATH — the Import dialog links to both. 1. Download **`WhispAssist_0.7.3_x64_en-US.msi`** (or the NSIS **`WhispAssist_0.7.3_x64-setup.exe`**). 2. Run it and accept the UAC prompt. If SmartScreen appears, choose **More info → Run anyway**. 3. Launch **WhispAssist** from the Start menu. On first run WA picks the best transcription backend (**NPU → NVIDIA → AMD → Intel → CPU**). It runs without admin rights, does **not** add itself to startup unless you opt in, and keeps all data under `%LOCALAPPDATA%\WhispAssist`. Deploying to many machines? See [`docs/enterprise-deployment.md`](docs/enterprise-deployment.md). ## 🔐 Checksums (SHA-256) ``` 91a32a17addc31fbc00f38966d52402ca0c5e9e7a581a0431c383ca5a60532bd WhispAssist_0.7.3_x64_en-US.msi 764b758544b075b5aefe9dde37b04e4966df528912fb884ed1be5bd57905ecdb WhispAssist_0.7.3_x64-setup.exe ``` Verify after download: ```powershell Get-FileHash .\WhispAssist_0.7.3_x64_en-US.msi -Algorithm SHA256 ``` --- ## Privacy, unchanged Everything optional is **off by default**. With nothing configured, WhispAssist makes **no content egress at all**. Recording is opt-in; sync/AI credentials live only in the OS credential store; the MCP server is loopback-only and adds no egress; the deployment file never carries secrets. The reachable-host allowlist is derived from your settings and enforced in the core.