diff --git a/packages/transcription-parakeet/CHANGELOG.md b/packages/transcription-parakeet/CHANGELOG.md index 64238d2330..9014219f34 100644 --- a/packages/transcription-parakeet/CHANGELOG.md +++ b/packages/transcription-parakeet/CHANGELOG.md @@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Fixed + +- Long audio no longer crashes or exhausts memory during offline transcription. + The batch `transcribe` path ran the Parakeet encoder over the entire input in + one pass, whose self-attention grows with the square of the audio length, so + multi-hour files were killed by the OS (a ~90 min file peaked at ~100 GB). The + 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. + ## [0.10.1] - 2026-07-20 ### Changed diff --git a/packages/transcription-parakeet/test/integration/sortformer-streaming-alias.test.js b/packages/transcription-parakeet/test/integration/sortformer-streaming-alias.test.js index fe51c844b3..d6c6163dd3 100644 --- a/packages/transcription-parakeet/test/integration/sortformer-streaming-alias.test.js +++ b/packages/transcription-parakeet/test/integration/sortformer-streaming-alias.test.js @@ -62,8 +62,15 @@ test('ensureGgufForType(sortformer-streaming) resolves via the canonical env-key process.env[envKey] = sentinel t.teardown(() => { - if (previous === undefined) delete process.env[envKey] - else process.env[envKey] = previous + // Bare's process.env proxy rejects `delete` (deleteProperty returns false), + // which would abort the whole test process; best-effort unset instead. + if (previous === undefined) { + try { + delete process.env[envKey] + } catch (_) {} + } else { + process.env[envKey] = previous + } try { fs.unlinkSync(sentinel) } catch (_) {} diff --git a/packages/transcription-parakeet/vcpkg.json b/packages/transcription-parakeet/vcpkg.json index 7bb3e2d0aa..475e856077 100644 --- a/packages/transcription-parakeet/vcpkg.json +++ b/packages/transcription-parakeet/vcpkg.json @@ -4,19 +4,19 @@ "dependencies": [ { "name": "parakeet-cpp", - "version>=": "2026-07-13#2", + "version>=": "2026-07-21", "features": ["metal"], "platform": "osx | ios" }, { "name": "parakeet-cpp", - "version>=": "2026-07-13#2", + "version>=": "2026-07-21", "features": ["vulkan", "opencl"], "platform": "android" }, { "name": "parakeet-cpp", - "version>=": "2026-07-13#2", + "version>=": "2026-07-21", "features": ["vulkan"], "platform": "!(osx | ios | android)" },