Say out loud that Windows on ARM gets an emulated whisper

Checked against the release listings rather than guessed: whisper.cpp publishes
Win32 and x64 for Windows and nothing else, while llama.cpp does publish
bin-win-cpu-arm64.zip. So a Snapdragon machine gets a native cleanup model and
an emulated transcriber, which is slow enough that the cloud is the better
answer there, and neither the code nor the README said so.

The test pins it, so that a whisper.cpp release which does start publishing an
arm64 build turns the choice red rather than being quietly ignored.
This commit is contained in:
2026-08-16 11:12:36 +03:00
parent 0419c88ac2
commit 93f3db889d
3 changed files with 16 additions and 1 deletions
+3 -1
View File
@@ -54,7 +54,9 @@ python dikte.py
- 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.
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
+4
View File
@@ -251,6 +251,10 @@ def _wanted_assets(program):
# as fast as the stock one, and it carries everything it needs.
# Full names, because "bin-x64.zip" alone would also match the
# CUDA archives, whichever the release happened to list first.
#
# x64 whatever this machine is, because whisper.cpp publishes no
# arm64 build for Windows: a Snapdragon runs this one emulated,
# which is slow but is the only local option there is.
return ("whisper-blas-bin-x64.zip", "whisper-bin-x64.zip")
if _has_vulkan() and arch == "x64":
return ("bin-win-vulkan-x64.zip", f"bin-win-cpu-{arch}.zip")
+9
View File
@@ -725,6 +725,15 @@ class WindowsAssets(Local):
self.assertEqual(ggml._wanted_assets(ggml.LLAMA),
("bin-win-cpu-arm64.zip",))
def test_an_arm_machine_is_handed_the_x64_whisper_anyway(self):
"""whisper.cpp publishes no arm64 build for Windows: the release has
Win32 and x64 and nothing else, so emulated is the only local option
a Snapdragon has. Pinned here so that a release which does start
publishing one is noticed rather than quietly ignored."""
self.patch_attr(ggml, "_arch", lambda: "arm64")
self.assertEqual(ggml._wanted_assets(ggml.WHISPER),
("whisper-blas-bin-x64.zip", "whisper-bin-x64.zip"))
class InstallOnWindows(Local):
"""The Windows releases are zips, and the binary carries .exe."""