QVAC-22367 fix[transcription-parakeet]: bound long-audio memory via windowed encoder#3379
Open
Zbig9000 wants to merge 8 commits into
Open
QVAC-22367 fix[transcription-parakeet]: bound long-audio memory via windowed encoder#3379Zbig9000 wants to merge 8 commits into
Zbig9000 wants to merge 8 commits into
Conversation
…indowed encoder Consume parakeet-cpp 2026-07-21#0, which slides the offline conformer encoder over long inputs in overlapping windows instead of running the whole file through a single O(T_enc^2) attention graph. The batch `transcribe` path previously exhausted memory on multi-hour audio (a ~90 min file peaked at ~100 GB and was SIGKILLed); `transcribeStream` was already bounded and is unchanged. No addon code change is needed -- the engine auto-selects the windowed path once the input exceeds one window, so short/typical files keep the identical single-pass output. WIP validation wiring (drop once the registry port merges): - vcpkg-overlays/parakeet-cpp mirrors the registry PR's port verbatim (fork REF + real fork-tarball SHA512); - vcpkg-configuration.json lists the overlay; - vcpkg.json bumps the parakeet-cpp version>= floors to 2026-07-21 and pins the exact version via overrides.
Contributor
Review StatusCurrent Status: ❌ PENDING Pending reviews: Needs 1 Management or Team Lead, and 1 more from Management, Team Lead, or Member. |
GustavoA1604
requested changes
Jul 22, 2026
…G entry Address review: remove the trailing "(QVAC-22367)" from the [Unreleased] entry. The CHANGELOG documents consumer-facing changes only, not tracker ticket ids.
…ur fork registry (CI) Point the addon's default-registry at the Zbig9000 fork of qvac-registry-vcpkg (branch QVAC-22367-bump-parakeet-cpp @ 9838379), whose parakeet-cpp port pins our qvac-ext-lib-whisper.cpp fork branch (engines/parakeet @ e58ff4b0). This is what makes the addon CI actually build and test our long-audio lib changes -- the default tetherto registry (and a local overlay) resolves the unmodified upstream lib, so CI wouldn't exercise our fix. Drops the WIP vcpkg-overlays/parakeet-cpp (the fork registry now provides the port). WIP wiring: on upstream merge of the source + registry PRs, revert default-registry to tetherto and keep the version>= / overrides pin.
Zbig9000
force-pushed
the
QVAC-22367-parakeet-long-audio
branch
from
July 22, 2026 15:01
8251070 to
967485f
Compare
…n Bare-safe The teardown used `delete process.env[key]`, which throws on Bare's process.env proxy (deleteProperty trap returns false) and aborts the whole integration process (exit 134) whenever QVAC_TEST_GGUF_SORTFORMERSTREAMING isn't already set in the environment. Wrap the unset in try/catch so cleanup is best-effort; the test assertions are unchanged.
…e at merged-upstream port Follow the registry PR after it was repointed to the merged upstream commit (tetherto/qvac-ext-lib-whisper.cpp#101, engines/parakeet). default-registry baseline -> 5a4aa57, whose parakeet-cpp 2026-07-21#0 port now builds from the merged upstream master (88b690c0) instead of the fork branch. Still resolving from the fork registry until the registry PR merges; once it does, switch default-registry back to tetherto and keep the version>= / overrides pin.
…7-21#0 from tetherto registry Registry PR tetherto#254 merged, so drop the WIP fork registry and go back to the canonical tetherto registry: - default-registry -> tetherto/qvac-registry-vcpkg @ 7c3dde3 (the tetherto#254 merge commit; minimal baseline that carries parakeet-cpp 2026-07-21#0). - pin qvac-lib-inference-addon-cpp to 1.2.4 via overrides so the baseline bump (needed only to expose the new parakeet-cpp) does not incidentally pull the 1.3.0 that tetherto#256 made the new default; keeps this PR's dep set equal to main plus the parakeet fix. parakeet-cpp resolves to 2026-07-21#0 (version>= + override), which builds from the merged upstream engines/parakeet (tetherto whisper tetherto#101).
GustavoA1604
requested changes
Jul 22, 2026
| bundled `parakeet-cpp` (bumped to `2026-07-21#0`) now slides the encoder over | ||
| long inputs in overlapping windows with bounded memory; short inputs keep the | ||
| identical single-pass path. `transcribeStream` was already bounded and is | ||
| unchanged. |
Contributor
There was a problem hiding this comment.
It is wrongly removing 0.10.1. Should sit above it
| !CMakeLists.txt | ||
| !cmake/*.cmake | ||
| !vcpkg/**/*.cmake | ||
| !vcpkg-overlays/**/*.cmake |
| "name": "qvac-lib-inference-addon-cpp", | ||
| "version": "1.2.4" | ||
| } | ||
| ], |
Contributor
There was a problem hiding this comment.
No need to add these overrides
| "default-registry": { | ||
| "kind": "git", | ||
| "baseline": "74d2dfd03d1c2c0767bac6d892ec43a2a0e29c10", | ||
| "baseline": "7c3dde3bb2d5707b6c3bb1faa3717749194f5671", |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
QVAC-22367 — fix Parakeet crash / high memory on long audio
Problem
The batch
transcribe()API (parakeet-tdt-filesystem.tsand anytranscribeconsumer) flows through the addon's offline path, which runs the Parakeet encoder
over the entire input at once. Self-attention is O(T_enc²), so multi-hour audio
exhausts memory — a ~90 min file peaked at ~100 GB and the Bare worker was
SIGKILLed (WORKER_CRASHED).
transcribeStreamwas already bounded.Fix
Consume
parakeet-cpp2026-07-21#0, which slides the offline conformer encoderover long inputs in overlapping windows with the shared context trimmed at the
seams — bounded memory, no mid-word cuts. No addon code change is needed: the
engine auto-selects the windowed path once the input exceeds one window, so
short/typical files keep the identical single-pass output.
Changes
vcpkg.json—parakeet-cppversion>=floors →2026-07-21, exact pin viaoverrides.vcpkg-configuration.json+vcpkg-overlays/parakeet-cpp/— WIP overlay thatmirrors the registry port so CI validates the fix before the registry merges.
CHANGELOG.md—[Unreleased]entry.Test plan
arm64/x64, iOS variants, Windows x64).
transcription-parakeetintegration suite green.bun run examples/transcription/parakeet-tdt-filesystem.ts <long.wav>completes on a >30-min file without the WORKER_CRASHED / SIGKILL.
parakeet-cppaddstest-long-form-windows(planner unit test) andtest-long-form(windowed-vs-single-pass parity).Merge order (WIP)
Overlay must stay byte-identical to the registry port. Land the source PR, then
the registry PR, then drop the overlay here and switch to the plain
overrides+version>=pin.Companion PRs
qvac-ext-lib-whisper.cpp): QVAC-22367 fix(parakeet): window the offline encoder for long audio qvac-ext-lib-whisper.cpp#101qvac-registry-vcpkg): QVAC-22367 bump[parakeet-cpp]: 2026-07-21#0 (long-audio windowed encoder) qvac-registry-vcpkg#254