Skip to content

whisper-cpp + parakeet-cpp + tts-cpp: bump trio to qvac-ext-lib-whisper.cpp@master 128dae42 (PR #31)#184

Merged
gianni-cor merged 1 commit into
mainfrom
QVAC-19254-tts-cpp-port-bump
Jun 5, 2026
Merged

whisper-cpp + parakeet-cpp + tts-cpp: bump trio to qvac-ext-lib-whisper.cpp@master 128dae42 (PR #31)#184
gianni-cor merged 1 commit into
mainfrom
QVAC-19254-tts-cpp-port-bump

Conversation

@ogad-tether

@ogad-tether ogad-tether commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Summary

Bumps the three ports that source tetherto/qvac-ext-lib-whisper.cpp (whisper root, parakeet-cpp/, tts-cpp/) to the same master HEAD 128dae4284fae3636ef5b6272ef123401d67eab7 (the merge of PR #31 — supertonic_optimizations into master). All three now share the same REF + the same archive SHA512, keeping the registry self-consistent.

  • whisper-cpp 1.8.5#2 → 1.8.5#3 — whisper-root tree unchanged since Updated port qvac-lib-inference-addon-cpp to v0.1.1 #2 (a34cb6da was PR QVAC-5810: Update espeak-ng to 1.52.0#2 #34 KV-cache CPU-buffer fallback); SHA512 alignment with the trio.
  • parakeet-cpp 2026-06-04#0 → 2026-06-04#1 — parakeet-cpp/ tree unchanged since #0 (a34cb6da was PR QVAC-6293: Updated llama-cpp and qvac-lib-inference-addon-cpp ports #38 Adreno-generation regex); SHA512 alignment with the trio.
  • tts-cpp 2026-06-03#1 → 2026-06-05#0 — picks up PR QVAC-5558: Disabled parallel configure in whisper-cpp and llama-cpp #31:
    • QVAC-18605 Supertonic Vulkan/Metal optimisations (rounds 1-13, ~34× realtime on Apple M-series Metal)
    • QVAC-19254 sched + cpu_backend refactor for Adreno OpenCL routing
    • QVAC-19213 Adreno-generation regex parse fix (already present in master at a34cb6da; reaffirmed)
    • EngineOptions gains six tuning fields: precision, f16_attn, vulkan_device, f16_weights, f16_weights_deny_list, kv_attn_type. Downstream tts-ggml addon exposure lands in a follow-up qvac PR.
  • tts-cpp ggml-speech floor: version>= 2026-06-022026-06-04, harmonising with whisper-cpp + parakeet-cpp (the QVAC-19254 Adreno OpenCL elementwise kernels live in ggml-speech 2026-06-04).

Validation

  • Local rebuild on macOS / Metal: 38/38 supertonic ctests pass on the merged tts-cpp HEAD.
  • Bench (n=10 timed runs, --text "The quick brown fox jumps over the lazy dog." --voice F1):
    • C++ Metal native: 92 ms / 0.029 RTF / 34.07× realtime
    • C++ Vulkan via MoltenVK: 295 ms / 0.085 RTF (rises to 33.94× on 11s audio)
    • C++ CPU: 231 ms / 0.074 RTF / 13.57×
    • ONNX CPU (CPUExecutionProvider): 139 ms / 0.045 RTF / 22.40×
  • TTS GGML overlay CI on tetherto/qvac (actions/runs/27006424023): 26/27 jobs pass; the one failure is the structural merge-guard / validate-pr "needs 'verified' label" check that fires on every workflow_dispatch run and was already failing on the pre-merge baseline (actions/runs/26878322979).
  • Adversarial subagent review: SAFE on all 11 invariants (tarball SHA512 independently recomputed, REF parity across the three ports, git-tree hashes match subtree contents, baseline aligns with versions/*.json tops, JSON valid, convention-compliant with prior trio bump 75bc60c and tts-cpp bumps 9eb53a4 / 8866362).

Test plan

  • git diff master -- versions/baseline.json shows only the three expected lines
  • Each of versions/{t-/tts-cpp,p-/parakeet-cpp,w-/whisper-cpp}.json parses as JSON
  • Tarball SHA512 independently verified (curl … | shasum -a 512)
  • CI green on this PR
  • Downstream tetherto/qvac/packages/tts-ggml vcpkg.json bump to the new tts-cpp version (follow-up PR)

🤖 Generated with Claude Code

…whisper.cpp@master 128dae42 (PR #31 supertonic_optimizations merge)

All three ports source the same `tetherto/qvac-ext-lib-whisper.cpp` repo
(whisper root / parakeet-cpp/ subfolder / tts-cpp/ subfolder), so this
moves the trio to the same master HEAD and the same archive SHA512 to
keep the registry self-consistent.

- whisper-cpp 1.8.5#2 -> 1.8.5#3: no whisper-root change since #2
  (a34cb6da was just PR #34 KV-cache CPU-buffer fallback); this bump
  keeps the source archive aligned with parakeet-cpp and tts-cpp.
- parakeet-cpp 2026-06-04#0 -> 2026-06-04#1: no parakeet-cpp/ change
  since #0 (a34cb6da was already PR #38 Adreno regex); SHA512 alignment.
- tts-cpp 2026-06-03#1 -> 2026-06-05#0: picks up PR #31 -- QVAC-18605
  Supertonic Vulkan/Metal optimisations (rounds 1-13, ~34x realtime on
  Apple M-series Metal), QVAC-19254 sched + cpu_backend refactor for
  Adreno OpenCL, and QVAC-19213 Adreno-generation regex parse fix.
  EngineOptions gains six tuning fields the downstream tts-ggml addon
  will start exposing in a follow-up PR (precision, f16_attn,
  vulkan_device, f16_weights, f16_weights_deny_list, kv_attn_type).
- tts-cpp ggml-speech floor: 2026-06-02 -> 2026-06-04 (harmonises with
  whisper-cpp and parakeet-cpp; the QVAC-19254 Adreno OpenCL elementwise
  kernels live in ggml-speech 2026-06-04).

Validation:
- Local Metal bench post-merge: F1 92 ms / 34.07x RT, M1 95 ms / 33.63x.
- TTS GGML overlay CI on tetherto/qvac (runs/26983833143 + 27006424023):
  26/27 jobs passing; the one failure is the structural merge-guard
  "needs 'verified' label" check that fires on every workflow_dispatch
  run regardless of code (same failure on the pre-merge baseline run).
- All 38 supertonic ctests pass post-merge.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@gianni-cor gianni-cor merged commit bb70225 into main Jun 5, 2026
2 checks passed
freddy311082 added a commit to tetherto/qvac that referenced this pull request Jun 5, 2026
)

Companion to tetherto/qvac-registry-vcpkg#184 (the trio registry bump
that ships tts-cpp@2026-06-05#0). tts-cpp@2026-06-05 brings the
QVAC-18605 Supertonic Vulkan/Metal optimisations (rounds 1-13, ~34x
realtime on Apple M-series Metal) and the QVAC-19254 sched/cpu_backend
refactor for Adreno OpenCL, lifting the previous "Supertonic is
CPU-only today" engine-boundary limitation. This PR removes the now-
stale rejection gates on the downstream tts-ggml addon and lets caller
GPU intent flow through to the merged tts-cpp tier policy
(init_gpu_backend: Adreno 700+ -> OpenCL, otherwise Vulkan/Metal/CUDA
via registry walk, otherwise CPU).

C++ addon (addon/src/model-interface/supertonic/):
- SupertonicModel.cpp::validateConfig: removed the `if (wantsGpu) {
  throw StatusError(... "CPU only today" ...) }` block. The conflicting-
  pair check (useGPU=true + nGpuLayers=0 or vice versa) is preserved
  so callers can't silently get the opposite backend they asked for.
- SupertonicModel.cpp::loadLocked: removed the `#ifdef __ANDROID__`
  force-off block. Android GPU routing is now delegated to tts-cpp's
  init_gpu_backend, which already allowlists Qualcomm Adreno and skips
  Mali / non-Adreno GPUs that would abort ggml_backend_graph_compute.
- SupertonicConfig.hpp: updated the useGpu docstring.

JS addon (index.js):
- Removed the parallel `wantsGpu` rejection for Supertonic. The default
  precondition for `useGPU = false` now also requires `nGpuLayers ==
  null` so a caller passing `nGpuLayers: 99` alone doesn't get a
  silent conflict with the JS-side default.
- The cross-field conflict check (useGPU=true + nGpuLayers=0 or vice
  versa) lives outside the ENGINE_SUPERTONIC branch and is preserved.

Tests:
- addon/tests/test_supertonic_config.cpp: flipped
  UseGpuTrueRejectedWithExplanation -> UseGpuTrueAcceptedAtConstruction,
  NGpuLayersGreaterThanZeroRejected -> NGpuLayersGreaterThanZeroAccepted.
  Added UseGpuNGpuLayersConflictStillRejected to lock in the kept
  conflict check. Simplified NGpuLayersZeroAcceptedAndDeferredLoad.
- test/integration/gpu-smoke.test.js: flipped the Supertonic entry
  from "useGPU=true is rejected at constructor" to "useGPU=true must
  engage the GPU backend on GPU-capable platforms", mirroring the
  existing Chatterbox smoke contract (assertGpuBackend, NO_GPU skip,
  same loadSupertonicTTS / runSupertonicTTS plumbing).
- test/unit/supertonic{,-mtl}.inference.test.js: updated stale
  assertion text ("nGpuLayers=0 is the only allowed GPU value..." and
  "supertonic stays CPU-only on the JS side").

Docs:
- README.md: useGPU row now describes the engine-agnostic tier policy.
- index.d.ts: useGPU + nGpuLayers JSDoc no longer claim Supertonic
  rejects GPU intent.
- examples/supertonic{,-mtl,-mtl-sweep,-sentence-stream}-tts.js: NOTE
  blocks rewritten to point at the tts-cpp@2026-06-05 GPU support and
  the GPU opt-in pattern. The examples themselves keep useGPU=false
  so they run identically everywhere.

Version + dependency:
- vcpkg.json: `tts-cpp` version>= bumped from `2026-06-03#1` to
  `2026-06-05` (the registry baseline after #184).
- package.json: 0.2.0 -> 0.2.1.
- CHANGELOG.md: new [0.2.1] entry under "Added" + "Changed".

Validation (upstream tts-cpp, prior to bump):
- 38/38 supertonic ctests pass on the merged tts-cpp@128dae42.
- Local Metal n=10 bench: F1 92 ms / 0.029 RTF / 34.07x realtime, M1
  95 ms / 0.030 RTF / 33.63x. CPU 13.6x, ONNX-CPU 22.4x for contrast.
- TTS GGML overlay CI on tetherto/qvac (actions/runs/27006424023):
  26/27 jobs pass; the merge-guard / validate-pr failure is a
  structural "needs verified label" check that fires on every
  workflow_dispatch run regardless of code (same on pre-merge baseline
  actions/runs/26878322979).
- Adversarial subagent review on this diff: SAFE on all 13 invariants
  (rejection paths cleanly removed, conflict check preserved,
  Chatterbox untouched, tests correctly inverted, no dangling refs to
  the old "CPU only today" claim outside historical CHANGELOG entries).

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Freddy Martinez Garcia <freddy311082@gmail.com>
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.

2 participants