Skip to content

chore: update whisper.cpp pin to 1.9.4-dev (stream-pcm de8fb5fd) - #13

Merged
rmorse merged 3 commits into
developfrom
chore/whisper-cpp-1.9
Sep 24, 2026
Merged

rmorse merged 3 commits into
developfrom
chore/whisper-cpp-1.9

Conversation

@rmorse

@rmorse rmorse commented Sep 24, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Move the pinned rmorse/whisper.cpp stream-pcm fork from ddfe1196 (v1.8.6) to de8fb5fd (tag v1.9.4-dev-stream-pcm), based on upstream master after v1.9.3 (ggml 0.25.1).
  • Update the pin in the submodule, the build.rs tarball fallback, the workspace Cargo.toml comment, and all three README headers.
  • Add [Unreleased] CHANGELOG entries, including user-visible upstream behaviour changes in this range.

Notes

  • whisper.h changes in this range are additive only (VAD-mapped token timestamps, internal VAD segment accessors), so no binding or Rust API changes were needed for the pin itself.
  • The new VAD accessors are intentionally not exposed: upstream only populates them from the built-in VAD in whisper_full/whisper_full_parallel, which never runs for whisper_full_with_state (the path this crate uses). Tracked upstream in Fixed VAD to work when using whisper_full_with_state ggml-org/whisper.cpp#3423.
  • Upstream now builds a separate parakeet library and header. It is not bound or linked yet; Parakeet is planned for a follow-up feat/ branch.
  • Picks up whisper : fix int overflow in whisper_full_parallel chunk offsets ggml-org/whisper.cpp#4044 (whisper_full_parallel timestamps): removed from the CHANGELOG. WhisperState::full_parallel reads results from its own state while upstream writes them to the context's default state, so that fix never reached crate users. This and other existing bugs found during review (segment times are centiseconds labelled as ms, dangling suppress_regex/prompt_tokens pointers, unchecked getter indices) will be fixed in a separate fix/ PR.
  • The docs.rs stub bindings in build.rs were already out of date before this pin (not caused by it); they will be replaced separately.
  • Reviewed open upstream issues for this range: nothing blocking. The open model-loading overflows (#4059, #3944) are pre-existing and only reachable with untrusted model files; #4018 (non-ASCII path crash on MSVC) is not reachable through this crate because paths are converted with Path::to_str().
  • The pinned commit is the head of an open upstream PR branch; the tag keeps it reachable if that branch is later rewritten.

Validation

Windows / MSVC, with test models from cargo xtask test-setup:

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo clippy -p whisper-cpp-plus --all-targets --features async -- -D warnings
  • cargo test --workspace -- --test-threads=1: 118 passed, none skipped
  • cargo test -p whisper-cpp-plus --features async -- --test-threads=1: 106 passed, none skipped

macOS / Metal validation is left to the PR CI job. The follow-up commit only changes CHANGELOG.md.

Moves the pinned rmorse/whisper.cpp stream-pcm fork from ddfe1196
(v1.8.6) to de8fb5fd (tag v1.9.4-dev-stream-pcm), based on upstream
master after v1.9.3. whisper.h changes in this range are additive only,
so no binding or API changes are needed. Parakeet and the new VAD
timestamp/segment accessors are left for a follow-up feature branch.

Picks up the upstream whisper_full_parallel timestamp overflow fix
(ggml-org/whisper.cpp#4044).
Drop the whisper_full_parallel fix entry: WhisperState::full_parallel reads results from its own state while upstream writes them to the context's default state, so the upstream fix never reached crate users (to be fixed separately). Document user-visible upstream behaviour changes in the pinned range and why the new VAD accessors are not exposed.
whisper.cpp's built-in whisper_full VAD does not run for whisper_full_with_state, which the crate uses for all transcription (ggml-org/whisper.cpp#3423). Point users at WhisperVadProcessor, EnhancedWhisperVadProcessor and WhisperStreamPcm::with_vad instead.
@rmorse
rmorse merged commit 37d5ae2 into develop Sep 24, 2026
2 checks passed
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.

1 participant