feat(vinput): drop NPU/OpenVINO support (#384)

Vinput's streaming Zipformer models have unbounded dynamic shapes, so
OpenVINO cannot compile them for the GPU or the NPU; the `openvino`
provider and ai's Intel NPU enablement could never run on the NPU (noted
as unverified in WORKAROUNDS WA-017). Remove the backend option, the
daemon's OpenVINO library path, and the intel-npu module enable, and
update the eval test, README and WORKAROUNDS (drop WA-016 and WA-017).

Keep Vinput's stock package and its bundled sherpa-onnx (1.13.4): the
fork-based and nixpkgs-master sherpa overrides existed only to provide the
`openvino` provider, so drop package.nix with them.

Assisted-by: opencode (DeepSeek V4.1 Flash)
This commit is contained in:
ryan4yin | 二花 authored and GitHub committed 2026-10-05 15:42:48 +08:00
1 parent 50a4182898
commit 6b8c5bfae4
9 files changed
+14 -111

No files matched your search

+1 -22
View File
@@ -17,20 +17,6 @@ systemctl --user restart vinput-daemon
`vinput model list -a` lists the available registry models.
## Backends
- `shoukei` uses CPU. Leave the model's provider at its default.
- `ai` uses OpenVINO when the model's `vinput-model.json` sets `"provider": "openvino"`; restart
`vinput-daemon` after changing it. One-shot enable:
```sh
f=~/.local/share/vinput/models/sherpa-onnx/x-asr-960ms-streaming-zipformer-transducer-zh-en-punct-int8/vinput-model.json
jq '.model.provider = "openvino"' "$f" | tee "$f.tmp" && mv "$f.tmp" "$f"
systemctl --user restart vinput-daemon
```
The user needs the `render` group and a new login after deployment.
## Persistence
Models are stored in `~/.local/share/vinput/models/sherpa-onnx/` and the core config lives in
@@ -39,17 +25,10 @@ tmpfs-root hosts (see `hosts/idols-ai/preservation.nix`); without that they are
reboot and the daemon logs `Local ASR provider model is not configured`. Review model source and
license before installing.
**NPU execution status: unverified.** On `ai`, the OpenVINO runtime and NPU plugin load, the daemon
opens `/dev/accel/accel0`, and the bundled WAV sample transcribes. However, the NPU busy-time
counter did not increase, and no NPU profiling data has been collected. These observations do not
confirm that model computation ran on the NPU; CPU fallback or partial fallback remains possible.
## Diagnostics
```sh
journalctl --user -b -u vinput-daemon
```
Check the Sherpa/OpenVINO logs for the selected device. A definitive check needs NPU profiling
enabled for inference and non-zero per-layer NPU timings; a loaded plugin or device busy-time
counter alone is not conclusive.
Check the daemon logs for the selected provider, model load, and transcription errors.