Skip to content

feat: whisper-cpp 1.8.5 + ggml-speech 2026-05-27 + tts-cpp/parakeet-cpp re-validation (QVAC-19236, QVAC-18992, QVAC-19071)#169

Merged
jpgaribotti merged 6 commits into
tetherto:mainfrom
Zbig9000:QVAC-19236-QVAC-18992-whisper-cpp-0.9.0
May 27, 2026
Merged

feat: whisper-cpp 1.8.5 + ggml-speech 2026-05-27 + tts-cpp/parakeet-cpp re-validation (QVAC-19236, QVAC-18992, QVAC-19071)#169
jpgaribotti merged 6 commits into
tetherto:mainfrom
Zbig9000:QVAC-19236-QVAC-18992-whisper-cpp-0.9.0

Conversation

@Zbig9000

@Zbig9000 Zbig9000 commented May 26, 2026

Copy link
Copy Markdown
Contributor

Summary

Four-port bump that pairs with the transcription-whispercpp@0.9.0 addon release on tetherto/qvac#2270.

Port From To Reason
whisper-cpp 1.8.4.3#1 1.8.5#0 Upstream sync + migration to system ggml-speech
ggml-speech 2026-04-09#4 2026-05-27#0 Pick up the merge of qvac-ext-ggml PR #13 (v0.10.2 sync + Mac M2 PAD fix + Apple-Metal typedef fix + GustavoA1604 Android per-arch CPU fallback); pin spirv-headers version>=1.4.341.0 (matches qvac-fabric convention)
tts-cpp 2026-05-20#2 2026-05-20#3 Re-validate against new ggml-speech (on top of #173's BLAS-only-on-mac refactor)
parakeet-cpp 2026-05-26#0 2026-05-26#1 Re-validate against new ggml-speech (on top of #171 REF bump to 9cf4571f)

All four port bumps belong together: the new whisper-cpp@1.8.5 depends on the system ggml-speech port (no more bundled ggml), whisper-cpp@1.8.5's vendored sources are tightly coupled to the ggml-org v0.10.2 baseline shipped in the new ggml-speech@2026-05-27, and the two sibling speech ports (tts-cpp, parakeet-cpp) get the new baseline ggml automatically — so they need a port-version bump declaring they have been re-validated against it (keeps the registry self-consistent and lets downstream consumers express "I want a tts-cpp/parakeet-cpp known to work against ggml-speech v0.10.2").

This branch carries a merge of the latest main (which includes #170, #171, #172 and #173) so the tts-cpp and parakeet-cpp bumps cleanly stack on Freddy's parakeet REF bump and Gianni's BLAS refactors. The ggml-speech / whisper-cpp / parakeet-cpp git-trees are unchanged by the merge — only tts-cpp was rebumped (#2 → #3) to sit on top of #173.

QVAC-18992 — Migrate whisper-cpp to consume the ggml-speech system port

whisper-cpp now consumes the system-installed ggml provided by the ggml-speech port (same shape as parakeet-cpp and tts-cpp) instead of building the bundled qvac-ext-lib-whisper.cpp/ggml/ subdirectory. Driven by -DWHISPER_USE_SYSTEM_GGML=ON; whisper.cpp's top-level CMake then calls find_package(ggml CONFIG REQUIRED).

All backend wiring is delegated to ggml-speech:

  • GGML_METAL / GGML_VULKAN / GGML_OPENCL / GGML_CUDA
  • GGML_BACKEND_DL=ON on Android (dynamic-backend mode)
  • GGML_CPU_ALL_VARIANTS=ON / GGML_CPU_REPACK=ON on Android (per-arch CPU MODULE .so files)
  • GGML_VULKAN_DISABLE_COOPMAT[2]=ON on Android (Adreno NDK)
  • spirv-headers -isystem shim for Vulkan
  • Android NDK Vulkan-Headers download
  • libqvac-speech-ggml-* output filename prefix

This removes ~95 lines from the whisper-cpp portfile and one whole companion file (android-vulkan-version.cmake). whisper-cpp + parakeet-cpp + tts-cpp now share the same backend binary set on every triplet (was: whisper brought a separate libqvac-ggml-* set, parakeet/tts brought libqvac-speech-ggml-*).

whisper-cpp's version>=ggml-speech constraint is bumped to 2026-05-27 so consumers with a stale baseline cannot combine whisper-cpp@1.8.5 with the old ggml-speech.

QVAC-19236 — Expose backend selection as features on whisper-cpp

Adds the metal feature (was unconditionally ON for macOS / OFF for iOS in the portfile) so all 3 GPU backends are now declarative:

whisper-cpp[metal]  -> ggml-speech[metal]   (osx | ios)
whisper-cpp[vulkan] -> ggml-speech[vulkan]  (linux | windows | android)
whisper-cpp[opencl] -> ggml-speech[opencl]  (android)

Each whisper-cpp feature simply propagates into the matching ggml-speech feature (with the platform guard kept). Consumers can express the full GPU matrix declaratively in their own vcpkg.json (the transcription-whispercpp addon does exactly this in the companion PR — selecting [metal] for osx only).

QVAC-19071 — ggml-speech bump to 2026-05-27#0 (qvac-ext-ggml PR #13 merged)

Picks up tetherto/qvac-ext-ggml@speech HEAD c9126afc — the merge commit of qvac-ext-ggml PR #13 ("QVAC-18992: merge ggml-org @ 19eac6f0 (v0.10.2) into speech"):

c9126afc  Merge pull request #13 from Zbig9000/QVAC-18992-merge-ggml-from-whisper-cpp
e31785e4  fix(metal): restore lost 'typedef struct {' before
          ggml_metal_kargs_supertonic_depthwise_1d (the ggml-org v0.10.2
          sync in 166c4e12 dropped the typedef header; caught by qvac CI
          Apple prebuild matrix via an overlay on tetherto/qvac#2270)
d39c0d29  metal: stride-aware src indexing in kernel_pad_f32 /
          kernel_pad_reflect_1d_f32 (fixes Mac M2 PAD test failure)
166c4e12  Merge ggml-org @ 19eac6f0 into speech (sync to v0.10.2)

PR #13 also brings in PR #11 (GustavoA1604 Android per-arch CPU dlopen fallback), already wired through port-version 4 via the GGML_CPU_ALL_VARIANTS=ON + GGML_CPU_REPACK=ON shape — no port-side change needed for that.

Build-side changes vs port-version 4:

  • New patches/0001-ggml-vulkan-find-spirv-headers.patch wiring SPIRV-Headers into ggml-vulkan. The v0.10.2 sync added an unconditional #include <spirv/unified1/spirv.hpp> in src/ggml-vulkan/ggml-vulkan.cpp, but the upstream ggml-vulkan CMakeLists.txt never finds spirv-headers nor wires its include dir into the ggml-vulkan target. Patch does the find + link, gated on the vulkan feature.
  • spirv-headers added as a dependency of the vulkan feature, pinned to version>=1.4.341.0 (matches the existing convention in ports/qvac-fabric/vcpkg.json so both speech-stack vulkan ports resolve from the same SPIRV-Headers version when they coexist in a consumer manifest).

tts-cpp + parakeet-cpp re-validation bumps

Pure metadata bumps — no portfile.cmake change, no REF change, no patch change. The ggml-speech baseline jump from 2026-04-09#4 to 2026-05-27#0 will automatically propagate into every consumer that has version>=ggml-speech (which both tts-cpp and parakeet-cpp do). Each port bump records that the combination "current tts-cpp/parakeet-cpp REF + new ggml-speech v0.10.2 baseline" has been validated.

Port vcpkg.json change
tts-cpp port-version: 2 → 3; version>=ggml-speech constraint bumped 2026-04-09#4 → 2026-05-27 (sits on top of #173's BLAS-only-on-mac refactor at 2026-05-20#2)
parakeet-cpp port-version: 0 → 1; version>=ggml-speech constraint bumped 2026-04-09#3 → 2026-05-27 (sits on top of #171's REF bump to 9cf4571f, which introduced version-date 2026-05-26#0)

Local validation on linux-x64 (vulkan feature) against this registry tree (the merged state — i.e. with #171's new parakeet REF, #172's initial BLAS-off, and #173's BLAS-only-on-mac refactor on top):

  • tts-ggml addon (consumes tts-cpp): bare-make generate resolves ggml-speech[core,vulkan]@2026-05-27 + tts-cpp[core,vulkan]@2026-05-20#3 + spirv-headers@1.4.341.0 from the registry tree, fetches qvac-ext-ggml@c9126afc, builds clean (BLAS-off path honored on linux; macOS would now keep BLAS on, per tts-cpp: enable BLAS only on macOS #173). npm run test:cpp35/35 C++ unit tests pass. npm run test:unit61/61 JS unit tests pass.
  • transcription-parakeet addon (consumes parakeet-cpp): bare-make generate resolves ggml-speech[core,vulkan]@2026-05-27 + parakeet-cpp[core,vulkan]@2026-05-26#1, fetches tetherto/qvac-ext-lib-whisper.cpp@9cf4571f (the new parakeet REF from fix: update parakeet-cpp to port version 3 and adjust dependencies #171), builds clean against the new ggml-speech. npm run test:cpp32/32 C++ unit tests pass. npm run test:unit17/17 JS unit tests pass.

whisper-cpp REF

Bumped to v1.8.5 = 738d2e9e (tetherto/qvac-ext-lib-whisper.cpp@master), which is the merge of whisper.cpp #33 ("update to v1.8.5 and sync vendored whisper.cpp + ggml to ggml-org upstream"). Pure upstream sync — no tetherto-specific behavior change at the consumer level beyond the ggml-source switch above.

whisper-cpp GNUInstallDirs bug-fix patch

patches/0001-move-gnuinstalldirs-before-add-subdirectory-src.patch fixes an install-tree bug in upstream whisper.cpp (present since at least 1.8.x, also in ggml-org/whisper.cpp@master): src/CMakeLists.txt uses $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/whisper> to populate the imported target's include dirs, but include(GNUInstallDirs) runs after add_subdirectory(src). The variable is empty at the point the generator-expression is captured, so whisper-targets.cmake ends up with INTERFACE_INCLUDE_DIRECTORIES "/whisper" and downstream find_package(whisper) consumers fail with:

CMake Error in CMakeLists.txt:
Imported target "whisper::whisper" includes non-existent path "/whisper" in its INTERFACE_INCLUDE_DIRECTORIES.

This never bit anything before because WHISPER_USE_SYSTEM_GGML=OFF consumers never exercise the install-tree branch. Now that this port flips to system-ggml mode, the bug surfaces immediately. The patch moves include(GNUInstallDirs) above add_subdirectory(src). A follow-up will submit the same fix upstream to tetherto/qvac-ext-lib-whisper.cpp so we can drop the vcpkg-side patch on the next REF bump.

Result

File Change
ports/whisper-cpp/portfile.cmake 150 → 65 lines (-85)
ports/whisper-cpp/vcpkg.json +40 lines (3 features now, was 2; ggml-speech dep added; version>=ggml-speech: 2026-05-27)
ports/whisper-cpp/android-vulkan-version.cmake deleted (-36)
ports/whisper-cpp/patches/0001-…patch new (+50)
ports/ggml-speech/portfile.cmake header/REF/SHA512 bump (-9, +7)
ports/ggml-speech/vcpkg.json version + description update + spirv-headers vulkan dep pinned to version>=1.4.341.0 (+8, -2)
ports/ggml-speech/patches/0001-ggml-vulkan-find-spirv-headers.patch new (+18)
ports/tts-cpp/vcpkg.json port-version: 2 → 3 + version>=ggml-speech: 2026-05-27 (+2, -2)
ports/parakeet-cpp/vcpkg.json port-version: 0 → 1 + version>=ggml-speech: 2026-05-27 (+2, -2)
versions/baseline.json 4-port baseline update
versions/w-/whisper-cpp.json new 1.8.5#0 entry on top
versions/g-/ggml-speech.json new 2026-05-27#0 entry on top
versions/t-/tts-cpp.json new 2026-05-20#3 entry on top
versions/p-/parakeet-cpp.json new 2026-05-26#1 entry on top

Test plan

Validated end-to-end on linux-x64 and the full qvac CI matrix via the companion qvac monorepo branch QVAC-19236-QVAC-18992-transcription-whispercpp-0.9.0:

  • Overlay-port phase (proof both whisper-cpp + ggml-speech work BEFORE registry merge) — qvac PR #2270 with vcpkg-overlays/{whisper-cpp,ggml-speech}/ containing this PR's exact port contents (overlays kept in lock-step with the registry tree).
  • Registry-resolved phase (proof the addon works WITHOUT overlays when ports come straight from this registry branch) — local file:// simulation:
    • bare-make generate on the transcription-whispercpp addon resolves whisper-cpp[core,vulkan]:x64-linux@1.8.5 + ggml-speech[core,vulkan]:x64-linux@2026-05-27 + spirv-headers@1.4.341.0 from the registry tree, downloads tetherto/qvac-ext-ggml@c9126afc (the new ggml-speech REF), builds clean
    • npm run test:cpp107/107 pass
    • npm run test:unit + test:integration + test:integration:accuracy + test:integration:chunking — all pass
  • tts-cpp re-validation against new ggml-speech (on top of tts-cpp: enable BLAS only on macOS #173 BLAS-only-on-mac) — local file:// simulation on the tts-ggml addon: resolves tts-cpp[core,vulkan]@2026-05-20#3 + ggml-speech[core,vulkan]@2026-05-27, builds clean. test:cpp 35/35 pass, test:unit 61/61 pass.
  • parakeet-cpp re-validation against new ggml-speech (on top of fix: update parakeet-cpp to port version 3 and adjust dependencies #171 REF bump) — local file:// simulation on the transcription-parakeet addon: resolves parakeet-cpp[core,vulkan]@2026-05-26#1 + ggml-speech[core,vulkan]@2026-05-27, fetches new REF 9cf4571f, builds clean. test:cpp 32/32 pass, test:unit 17/17 pass.

The qvac PR will get a follow-up commit removing both overlays + bumping its default-registry.baseline to this PR's merge SHA, then one more full CI run, then merge.

Made with Cursor

pratiknarola-t
pratiknarola-t previously approved these changes May 27, 2026
freddy311082
freddy311082 previously approved these changes May 27, 2026
@Zbig9000 Zbig9000 dismissed stale reviews from freddy311082 and pratiknarola-t via 4268c1d May 27, 2026 12:24
@Zbig9000 Zbig9000 changed the title feat: whisper-cpp 1.8.5 — migrate to ggml-speech + expose metal feature (QVAC-19236, QVAC-18992) feat: whisper-cpp 1.8.5 + ggml-speech 2026-05-27 (QVAC-19236, QVAC-18992, QVAC-19071) May 27, 2026
ishanvohra2
ishanvohra2 previously approved these changes May 27, 2026
@Zbig9000 Zbig9000 changed the title feat: whisper-cpp 1.8.5 + ggml-speech 2026-05-27 (QVAC-19236, QVAC-18992, QVAC-19071) feat: whisper-cpp 1.8.5 + ggml-speech 2026-05-27 + tts-cpp/parakeet-cpp re-validation (QVAC-19236, QVAC-18992, QVAC-19071) May 27, 2026
Zbig9000 and others added 3 commits May 27, 2026 15:16
  Two ticket deliverables combined into one consistent port rewrite:

  QVAC-18992 — Migrate to use ggml speech branch
  ----------------------------------------------
  whisper-cpp now consumes the system-installed ggml provided by the
  `ggml-speech` port (same shape as parakeet-cpp and tts-cpp), instead of
  building the bundled `qvac-ext-lib-whisper.cpp/ggml/` subdirectory.

  Driven by -DWHISPER_USE_SYSTEM_GGML=ON; whisper.cpp's top-level CMake
  then calls `find_package(ggml CONFIG REQUIRED)` and aliases the
  `ggml::ggml` target to its internal `ggml` target. The bundled ggml
  source tree still exists in the upstream tarball but is no longer
  walked at configure time.

  All backend wiring is delegated to ggml-speech:
    - GGML_METAL / GGML_VULKAN / GGML_OPENCL / GGML_CUDA
    - GGML_BACKEND_DL=ON on Android (dynamic-backend mode)
    - GGML_CPU_ALL_VARIANTS=ON / GGML_CPU_REPACK=ON on Android
      (per-arch CPU MODULE .so files)
    - GGML_VULKAN_DISABLE_COOPMAT[2]=ON on Android (Adreno NDK)
    - spirv-headers `-isystem` shim for Vulkan
    - Android NDK Vulkan-Headers download
    - libqvac-speech-ggml-* output filename prefix

  Side effects:
    - The Vulkan-Headers download block is gone from this portfile;
      ggml-speech handles it. android-vulkan-version.cmake deleted.
    - The MSVC `/I` vs GCC/Clang `-isystem` spirv-headers shim is gone
      from this portfile; ggml-speech handles it.
    - The DL_BACKENDS install-tree fiddling is gone; the
      libqvac-speech-ggml-*.so files are installed by ggml-speech into
      ${VCPKG_INSTALLED_DIR}/<triplet>/lib/, which the
      transcription-whispercpp addon already picks up via
      get_target_property(... LOCATION) on the ggml::<backend> imported
      targets.
    - whisper-cpp + parakeet-cpp + tts-cpp now share the same backend
      binary set on every triplet (was: whisper-cpp brought a separate
      libqvac-ggml-* set, parakeet/tts brought libqvac-speech-ggml-*).
      Single source of truth.

  QVAC-19236 — Expose backend selection as features
  -------------------------------------------------
  Add the `metal` feature (was unconditionally ON for macOS / OFF for
  iOS in the portfile) so all 3 GPU backends are now declarative:

    whisper-cpp[metal]  -> ggml-speech[metal]   (osx | ios)
    whisper-cpp[vulkan] -> ggml-speech[vulkan]  (linux | windows | android)
    whisper-cpp[opencl] -> ggml-speech[opencl]  (android)

  Each whisper-cpp feature simply propagates into the matching
  ggml-speech feature (with the platform guard kept). Consumers can
  express the full GPU matrix declaratively in their own vcpkg.json
  (the transcription-whispercpp addon does exactly this in a companion
  PR — selecting [metal] for osx only, since iOS Metal still has a
  separate XPC/MTLCompiler runtime crash being investigated; the iOS
  binary stays on the CPU backend by simply not selecting [metal]).

  Whisper-cpp REF
  ---------------
  Bumped to v1.8.5 = 738d2e9e (tetherto/qvac-ext-lib-whisper.cpp@master),
  which is the merge of tetherto#33 ("update to v1.8.5 and sync vendored
  whisper.cpp + ggml to ggml-org upstream"). Pure upstream sync — no
  tetherto-specific behavior change at the consumer level beyond the
  ggml-source switch above.

  Result
  ------
  portfile.cmake: 150 -> ~55 lines (much closer to parakeet-cpp /
  tts-cpp shape). Total diff: -174 / +56.

  Version bump: 1.8.4.3#1 -> 1.8.5#0 (treating the version-string
  change + the ggml-source switch as a fresh baseline rather than a
  port-revision bump).

  Co-authored-by: Cursor <cursoragent@cursor.com>

Co-authored-by: Cursor <cursoragent@cursor.com>
Picks up tetherto/qvac-ext-ggml@speech HEAD c9126afc (merge commit
of qvac-ext-ggml PR tetherto#13: "QVAC-18992: merge ggml-org @ 19eac6f0
(v0.10.2) into speech"). The merge brings in:

  c9126afc  Merge pull request tetherto#13 from Zbig9000/QVAC-18992-merge-ggml-from-whisper-cpp
  e31785e4  fix(metal): restore lost 'typedef struct {' before
            ggml_metal_kargs_supertonic_depthwise_1d (caught by qvac
            CI Apple prebuild matrix via an overlay on tetherto/qvac#2270)
  d39c0d29  metal: stride-aware src indexing in kernel_pad_f32 /
            kernel_pad_reflect_1d_f32 (fixes Mac M2 PAD test failure)
  166c4e12  Merge ggml-org @ 19eac6f0 into speech (sync to v0.10.2)

PR tetherto#13 also brings in PR tetherto#11 (GustavoA1604 Android per-arch CPU dlopen
fallback), which was already wired through port-version 4 via the
GGML_CPU_ALL_VARIANTS=ON + GGML_CPU_REPACK=ON shape introduced in
port-version 3 -- no port-side change needed for that.

Build changes vs port-version 4:

* Add patches/0001-ggml-vulkan-find-spirv-headers.patch wiring
  SPIRV-Headers into ggml-vulkan. The v0.10.2 sync added an
  unconditional #include <spirv/unified1/spirv.hpp> in
  src/ggml-vulkan/ggml-vulkan.cpp, but the upstream ggml-vulkan
  CMakeLists.txt never finds spirv-headers nor wires its include dir
  into the ggml-vulkan target. Patch finds the package and links it
  when available, gated on the "vulkan" feature.

* Add spirv-headers as a dependency of the "vulkan" feature so the
  patched find_package(SPIRV-Headers QUIET) actually resolves to a
  vcpkg-installed package.

Validated end-to-end through tetherto/qvac#2270's full CI matrix:
- 9/9 prebuild triplets (linux-x64/arm64, win32-x64, darwin-arm64/x64,
  android-arm64, ios-arm64 + 2 simulators)
- 107/107 C++ addon tests on linux-x64
- 5/5 platform integration test suites
- iOS + Android E2E on AWS Device Farm

Co-authored-by: Cursor <cursoragent@cursor.com>
ggml-speech bumped to 2026-05-27#0 in this PR will auto-apply via baseline
to every consumer port that has version>= on it. tts-cpp and parakeet-cpp
must declare they have been validated against the new ggml-speech to keep
the registry self-consistent.

tts-cpp: 2026-05-20 -> 2026-05-20#1
  - version>=ggml-speech bumped to 2026-05-27 (was 2026-04-09#4)

parakeet-cpp: 2026-05-20#2 -> 2026-05-20#3
  - version>=ggml-speech bumped to 2026-05-27 (was 2026-04-09#3)

Local validation (x64-linux, vulkan feature) against this registry tree:
  - tts-ggml addon: vcpkg resolves clean, build links clean,
    35 C++ unit tests pass, 61 JS unit tests pass
  - transcription-parakeet addon: vcpkg resolves clean, build links clean,
    32 C++ unit tests pass, 17 JS unit tests pass

Co-authored-by: Cursor <cursoragent@cursor.com>
@Zbig9000 Zbig9000 force-pushed the QVAC-19236-QVAC-18992-whisper-cpp-0.9.0 branch from b876a09 to 2af2434 Compare May 27, 2026 13:19
Zbig9000 and others added 3 commits May 27, 2026 15:27
The version>= constraint on ggml-speech was still 2026-04-09#4 (carried
over from before the system-ggml migration). whisper-cpp@1.8.5 only
works against the new ggml-speech@2026-05-27 (v0.10.2 vendored sources,
new symbol set, spirv-headers Vulkan wiring), so the constraint must
reflect that minimum.

In practice the resolver always picked 2026-05-27 because that is the
baseline value, so this is metadata-only and not a behavior change for
either the addon CI run or the local file:// validation. It is the
correct declaration so a future consumer with a stale baseline cannot
combine whisper-cpp@1.8.5 with the old ggml-speech.

Co-authored-by: Cursor <cursoragent@cursor.com>
Without a version>= constraint, the resolved spirv-headers version
depends entirely on the consumer's microsoft/vcpkg baseline. Pin to
1.4.341.0 to match the convention already used by qvac-fabric (the
other speech-stack port that depends on spirv-headers via vulkan),
keep both ports resolvable from the same SPIRV-Headers version when
they coexist in a consumer manifest, and ensure consumers with an
older baseline still pick up a known-good SPIRV-Headers.

Local validation on x64-linux: vcpkg upgrades spirv-headers from the
addon's baseline 1.4.304.1 to the required 1.4.341.0 cleanly, the
ggml-vulkan patch builds against the new headers, the full
transcription-whispercpp addon builds + 107/107 cpp tests + 30/30
unit tests pass.

Co-authored-by: Cursor <cursoragent@cursor.com>
Pulls in tetherto#173 (tts-cpp: enable BLAS only on macOS). That landed
tts-cpp 2026-05-20#2 with a portfile refactor (vcpkg_check_features
+ platform-gated -DGGML_BLAS=OFF / -DCMAKE_DISABLE_FIND_PACKAGE_BLAS=ON).

Conflict resolution:
  - ports/tts-cpp/vcpkg.json: kept tetherto#173's portfile changes, bumped
    port-version 2 -> 3, kept this PR's version>=ggml-speech
    constraint at 2026-05-27 (tetherto#173 still pinned the old 2026-04-09#4).
  - versions/t-/tts-cpp.json: kept tetherto#173's tetherto#2 entry git-tree
    (2b8233f), prepended a fresh tetherto#3 entry for the merged shape
    (git-tree 2980f3f).
  - versions/baseline.json: tts-cpp port-version 2 -> 3.

ggml-speech, whisper-cpp and parakeet-cpp git-trees are untouched
by the merge (c201f77, d18888f, 774279a respectively), as
requested.

Local validation on x64-linux (vulkan): tts-ggml addon resolves
tts-cpp@2026-05-20#3 + ggml-speech@2026-05-27 + spirv-headers@1.4.341.0
from this registry tree, builds clean, 35/35 cpp tests + 61/61
unit tests pass.

Co-authored-by: Cursor <cursoragent@cursor.com>
@Zbig9000 Zbig9000 force-pushed the QVAC-19236-QVAC-18992-whisper-cpp-0.9.0 branch from c9fc9e8 to 625fa1d Compare May 27, 2026 14:23
@jpgaribotti jpgaribotti merged commit b54eb17 into tetherto:main May 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants