This is the ordinary WSL2 route for x86-64 Windows and Windows on ARM. From the Emacsvox checkout, first inspect without changing anything:
./bin/emacsvox-wsl-install --check
The doctor detects Windows architecture, selects its Omnivox 1.18.0 archive,
and reports Emacs and per-user paths. Missing Linux packages are reported with
an apt command for you to review and run. Working powershell.exe and
wslpath interoperation are required. Resolve prerequisites, then run:
./bin/emacsvox-wsl-install
etc/wsl-install.conf pins the Omnivox version, release URL, x64/ARM64 archive
names, and both SHA-256 hashes. The installer queries Windows architecture and
verifies the matching published archive; it does not build Omnivox.
The full payload is installed below the Windows user’s LocalAppData. Its
absolute WSL executable path is recorded in
$XDG_CONFIG_HOME/emacsvox/omnivox-program, normally
~/.config/emacsvox/omnivox-program. The installer does not invoke sudo or
edit shell startup. It compiles Emacsvox, runs a non-audible launcher diagnostic,
and finishes with the audible server check. Confirm both tone and speech.
No Omnivox checkout, Docker, Rust, MinGW, Visual Studio, Windows .NET Framework,
or optional/proprietary runtime is needed. WinRT speech is included in Windows.
Use ./bin/emacsvox-wsl-install --no-audio-check only for controlled/headless
installation with a separate audible check later.
Use this equivalent manual procedure to inspect installer actions, work around
a restriction, or repair one layer. It needs curl, unzip, sha256sum,
powershell.exe, and wslpath. The example uses Windows x64. On Windows on
ARM, use windows-arm64 in the archive and installation directory and verify
that archive’s checksum.
Download from WSL:
mkdir -p "$HOME/Downloads/omnivox-1.18.0"
cd "$HOME/Downloads/omnivox-1.18.0"
omnivox_version=1.18.0
archive="omnivox-${omnivox_version}-windows-x64.zip"
release_url="https://github.com/bartbunting/omnivox/releases/download/v${omnivox_version}"
curl -fLO "$release_url/$archive"
curl -fLO "$release_url/sha256sums.txt"
grep " $archive$" sha256sums.txt | sha256sum --check -
The last command must name the archive and report OK. Otherwise remove it
and do not run it. Install all files on the Windows filesystem:
windows_local_app_data="$(powershell.exe -NoProfile -NonInteractive \
-Command '[Environment]::GetFolderPath("LocalApplicationData")' | tr -d '\r')"
install_dir="$(wslpath -u "$windows_local_app_data")/Emacsvox/Omnivox/releases/$omnivox_version-windows-x64"
mkdir -p "$install_dir"
unzip -q -o "$archive" -d "$install_dir"
chmod 755 "$install_dir/omnivox.exe"
config_home=${XDG_CONFIG_HOME:-"$HOME/.config"}
mkdir -p "$config_home/emacsvox"
printf '%s\n' "$install_dir/omnivox.exe" > \
"$config_home/emacsvox/omnivox-program"
Keep omnivox.exe, espeak-ng-data, and third-party-licenses together.
Do not load the archive’s omnivox-voices.el; Emacsvox supplies its adapter.
This data-only file persists selection without shell initialisation. Respect
XDG_CONFIG_HOME when set. OMNIVOX_PROGRAM remains an explicit temporary
override with precedence over the file.
Verify through the checkout’s launcher:
./servers/omnivox --version ./servers/omnivox --list-voices ./servers/omnivox --check
Confirm version 1.18.0 or newer, tone, and speech. Release CI verifies archive, x64 architecture, adjacent eSpeak data, discovery, and headless WinRT/eSpeak synthesis; only listening checks your audio path. The Windows archive is not code-signed. Do not weaken Windows security or local policy to install it.
The generic 1.18.0 archive includes TGSpeechBox profiles/language data and a portable RHVoice helper. RHVoice’s runtime and voice/language packages are separate. Optional Piper, Flite, and RuTTS companions are not required for WinRT; matching 1.18.0 companions are published separately.
The clean source-build route verifies/stages the official Piper companion and builds RHVoice, Flite, and RuTTS from matching source. Piper models and the RHVoice runtime/data are not bundled by that build. A compatible local voice management service can separately download the reviewed voice packages below; this does not acquire the RHVoice runtime. Flite/RuTTS need no external runtime in the source-built bundle. Eloquence/DECtalk runtimes remain separately licensed and supplied.