Feature npu #10

Merged
iamdoubz merged 16 commits from feature_npu into main 2026-07-02 19:59:19 -05:00
16 Commits
Author SHA1 Message Date
iamdoubz 9c0b0c1d02 mod file 2026-07-02 19:57:59 -05:00
iamdoubz 60fed63bc3 feat(ui): NPU detection + download indicator in Settings hardware (T3.4) 2026-07-02 17:16:51 -05:00
iamdoubz b23b00490a feat(ui): NPU package download API + npu://download events (T3.4) 2026-07-02 17:16:44 -05:00
iamdoubz 2b435f3629 feat(hardware): register NPU package command + background model fetch (T3.4) 2026-07-02 17:16:44 -05:00
iamdoubz 69ed6256db feat(transcription): dispatch NPU backend + NPU package download command (T3.4) 2026-07-02 17:16:43 -05:00
iamdoubz 92752698c5 refactor(transcription): let streaming worker take &dyn Transcriber (T3.4) 2026-07-02 17:16:43 -05:00
iamdoubz a9335f487d feat(transcription): expose onnx model_dir for the dispatcher (T3.4) 2026-07-02 17:16:43 -05:00
iamdoubz f58c0f2d6c feat(transcription): wire OnnxNpuTranscriber behind npu feature (T3.4) 2026-07-02 16:14:16 -05:00
iamdoubz f8731adae3 feat(transcription): OnnxNpuTranscriber — NPU encoder + CPU greedy decode (T3.4) 2026-07-02 16:14:15 -05:00
iamdoubz 8fe6b5ceb1 feat(transcription): Whisper ONNX model catalog + downloader (T3.4) 2026-07-02 16:14:15 -05:00
iamdoubz e875c5de9a feat(transcription): Whisper log-mel front-end for NPU path (T3.4) 2026-07-02 16:14:15 -05:00
iamdoubz d7b98b06cd build(transcription): add npu feature (ort + OpenVINO EP, rustfft) (T3.4) 2026-07-02 16:14:14 -05:00
iamdoubz b97e5ebe85 feat(hardware): detect Intel NPU via ComputeAccelerator class (T3.4, FR-HW-1) 2026-07-02 15:55:00 -05:00
iamdoubz 0ffcd704b3 build(hardware): enable SetupAPI feature for NPU detection (T3.4) 2026-07-02 15:55:00 -05:00
iamdoubz d5f7b1ac95 feat(hardware): on-demand NPU runtime paths + readiness probe (T3.4) 2026-07-02 15:54:54 -05:00
iamdoubz 8530a22899 fix(transcription): reduce whisper.cpp encoder cost per streaming window
whisper.cpp's encoder always runs over a full, padded 30s mel window
(1500 encoder positions) unless audio_ctx is explicitly reduced. The
~4s live-transcription streaming windows were never setting it, so
every window paid the full 30s-equivalent encode cost on one serial
worker thread -- the actual cause of the reported 30-65s lag between
speaking and a segment appearing, not "CPU is just slow".

Scales audio_ctx proportionally to the window's real sample count
instead (audio_ctx_for_window), floored and capped to whisper.cpp's
own valid range. Verified with a controlled A/B against the real
base.en-q5_1 model: ~30% faster even under heavy concurrent CPU
contention on this machine, which is masking most of the improvement
--the fix targets the encoder's O(n^2)-ish attention cost specifically
(1500 -> ~201 positions for a 4s window), so the gain on an otherwise-
idle machine should be substantially larger.
2026-07-02 15:02:02 -05:00