Prebuilt local-inference libraries for xp_wellys_vfr_atc and xp_welly_llm_atc.
Three bundles, compiled once per pin bump and published as versioned
binary bundles the plugins download in make setup (instead of compiling from
source — turning their ~50 min cold release build into a deterministic ~5–8 min
one):
arm64-macos(full) — whisper.cpp + llama.cpp + ggml (Metal) + Piper + espeak-ng. The Apple-Silicon local-inference slice.linux-x64(full) — the same, with plain-CPU ggml (no Metal/Accelerate). Built onubuntu-22.04for a glibc-2.35 floor, withGGML_NATIVE=OFFso the archives carry a portable ISA baseline rather than the runner's — see DESIGN.md.win-x64(full) — the same, with Vulkan as the GPU backend (never CUDA: no redist DLLs,vulkan-1.dllcomes from the graphics driver). Its static archives are built with the static MSVC runtime (/MT), so the consumer must set-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded— see DESIGN.md. The x86_64-macOS variant was dropped — GitHub retired the Intel CI runners (see DESIGN.md); Intel Macs keep cloud TTS, no regression.
This repo must stay public. The plugins ship espeak-ng (GPL-3.0-or-later)
as a binary, and their THIRD_PARTY.md points here for the corresponding
source. Release assets must likewise not be deleted while a plugin version
still pins them.
See DESIGN.md for the full rationale, bundle layout, link-order handling, toolchain pinning, and the plugin-side consumption flow.
make setup # init the whisper.cpp / llama.cpp / piper1-gpl submodules
# Full bundle for the host platform (arm64-macos or linux-x64):
make bundle # stage build/bundle/ (libs + headers + espeak-ng-data)
make tarball # -> xp_wellys_libs-<platform>-<version>.tar.gz
# Piper-only bundle (XPWELLYS_LIBS_TTS_ONLY):
make bundle-tts-arm64 # local fast sanity of the TTS-only path (no whisper/llama)The platform label is derived from uname -s and must match the one CMake
writes into manifest.txt — the consumer builds its download URL from exactly
these strings. Linux additionally needs patchelf installed (it rewrites
libpiper.so's RUNPATH during staging and is a hard find_program requirement).
The Windows bundle has no local path — it is built in CI only (MSVC on
windows-latest, with the Vulkan SDK installed there for glslc and the SPIR-V
headers).
CI (.github/workflows/release.yml) builds all three full bundles — macos-15
(arm64/Metal), ubuntu-22.04 (CPU), windows-latest (CPU + Vulkan) —
link-smoke-tests each exactly as the plugin will consume it, and on a v* tag
publishes the tarballs as a GitHub release.
- Bump submodule pins if needed; set
VERSION.txt. git tag v<x.y.z> && git push --tags→ CI builds + publishes the bundle.- In the plugin repo bump
PREBUILT_LIBS_VERSIONto<x.y.z>.
| Submodule | Pin |
|---|---|
| whisper.cpp | f049fff95a089aa9969deb009cdd4892b3e74916 |
| llama.cpp | f449e0553708b895adbd94a301431cef691f632d |
| piper1-gpl | d6975e21a440c0d8b6e5fb7c41027409af13d44d |
| onnxruntime | 1.22.0 (prebuilt, fetched by Piper) |
GPL-3.0-or-later — inherited from espeak-ng, statically linked into
libpiper.dylib. See LICENSE.