4.3 Install An Omnivox Windows Release Under WSL2

This is the recommended WSL2 route for ordinary use on x86-64 Windows. It needs curl, unzip, sha256sum, working powershell.exe and wslpath interoperation, and the Emacsvox checkout. It does not need the Omnivox source checkout, Docker, Rust, MinGW, Visual Studio, or Windows .NET Framework.

Download the Windows x64 archive and the release checksum file in WSL:

mkdir -p "$HOME/Downloads/omnivox-1.4.1"
cd "$HOME/Downloads/omnivox-1.4.1"
omnivox_version=1.4.1
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 final command must name the archive and report OK. If it does not, remove the download and do not run it. Install the complete archive in a versioned directory 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"
mkdir -p "$install_dir"
unzip -q -o "$archive" -d "$install_dir"
chmod 755 "$install_dir/omnivox.exe"
export OMNIVOX_PROGRAM="$install_dir/omnivox.exe"

Keep omnivox.exe, espeak-ng-data, and third-party-licenses together in that directory. Do not copy or load the archive’s omnivox-voices.el; Emacsvox uses its bundled adapter. Add the OMNIVOX_PROGRAM assignment, with the resulting absolute WSL path, to the shell startup file used to launch Emacs. An explicit OMNIVOX_PROGRAM takes precedence over an older source-built runtime beneath servers/omnivox-bin.

From the Emacsvox checkout, verify the selected release and listen to its physical audio check:

./servers/omnivox --version
./servers/omnivox --list-voices
./servers/omnivox --check

The version must report 1.4.1. The check must produce both its tone and spoken confirmation. Release CI verifies the downloaded archive, Windows x64 architecture, adjacent eSpeak data, voice discovery, and headless synthesis through both WinRT and eSpeak, but only this audible check proves the local audio path. The Windows archive is not code-signed. If Windows security or local policy refuses it, do not weaken that policy to complete the install.

The published archive does not contain the optional Piper, Eloquence, or DECtalk helpers or their runtimes. They are not needed for normal WinRT speech. Use the source-build route below when maintaining Emacsvox’s pinned, content-addressed Windows bundle or its Eloquence and DECtalk bridges. Piper has a separate optional build workflow in the Omnivox repository.