Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ users never build Rust.
- Credo enables `Readability.Specs`, so a public function without a `@spec` fails. `Readability.ModuleDoc` is off, but
every public module still gets a `@moduledoc`; no check catches a missing one.
- `whisper-rs` and `whisper-rs-sys` come from a `[patch.crates-io]` pin to the `vendor/whisper-rs-0.16.0-patched`
branch of this repo. It adds the callback and CString-leak fixes and moves whisper.cpp to v1.9.4. On a `whisper-rs`
branch of this repo. It adds the callback and CString-leak fixes and moves whisper.cpp to v1.9.5. On a `whisper-rs`
version bump, check the patch again (issue #26).
- `WHISPER_CPP_FEATURES` picks the cargo feature, and `WHISPER_CPP_BUILD=1` forces a source build. A change to either,
or to `WHISPER_CPP_VARIANT`, recompiles the NIF wrapper. The `build:*` tasks set them only for their own run, so a
Expand Down
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,24 @@ this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
the old NIF file again before it extracts the new one. Version 0.9.0
wrote over the file in place, which can crash a process that has the NIF
loaded.
- Vendored whisper.cpp 1.9.4 -> 1.9.5, with ggml 0.26.0, through the same
vendor branch of this repo. whisper-rs stays at the patched 0.16.0
(issue #26). On Apple Silicon, whisper.cpp 1.9.5 runs the encoder through
ANEForge when the environment sets `ANEFORGE_ENCODER`; without it,
nothing changes.
- The precompiled NIFs are built with Rust 1.99.1 (was 1.98.1), and the
`hipblas` variant with ROCm 7.2.4 (was 7.2.3). CI uses Elixir 1.20.5 and
OTP 29.1.2. Source builds still need Rust 1.98 or later.
- Cargo refresh: `smallvec` 1.16.5 is in the NIF, and `cc` 1.11.1 and `log`
0.4.35 are build only. `mix.lock` has rustler_precompiled 0.10.1.

### Fixed
- An `:abort_handle` now also stops the language auto-detection, which
runs before the transcription (ggml-org/whisper.cpp#4077). Before, an
abort waited for the detection pass to finish.
- `load_model/2` rejects a model file with an invalid tensor type, and a
`:vad_model_path` with an encoder layer count other than 4, instead of
reading out of bounds (ggml-org/whisper.cpp#4091, ggml-org/whisper.cpp#4064).
- `transcribe/3` with `:offset_ms` or `:duration_ms` and no
`:vad_model_path` detects the language on the window. Before, whisper.cpp
detected it on the first 30 s of the whole buffer, so the window could
Expand Down
4 changes: 2 additions & 2 deletions native/whisper_cpp_native/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions native/whisper_cpp_native/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,11 @@ opt-level = 2
# (codeberg.org/tazz4843/whisper-rs issues 277/271, fix PR 278) and
# vendors whisper.cpp 1.8.3. The `vendor/whisper-rs-0.16.0-patched`
# branch of this repo carries the published 0.16.0 with the callback
# and CString-leak fixes plus the whisper.cpp submodule at v1.9.4. Drop
# and CString-leak fixes plus the whisper.cpp submodule at v1.9.5. Drop
# both patches once a whisper-rs release lands the fixes and re-vendors
# (issue #26). Known upstream design holes left untouched (unreachable
# from this crate, which never clones FullParams): cloning a FullParams
# shares the installed closures and grammar pointers across clones.
[patch.crates-io]
whisper-rs = { git = "https://github.com/rubas/whisper_cpp.git", rev = "9a4232f1e2f1fc93987746cb080c074229673fc7" }
whisper-rs-sys = { git = "https://github.com/rubas/whisper_cpp.git", rev = "9a4232f1e2f1fc93987746cb080c074229673fc7" }
whisper-rs = { git = "https://github.com/rubas/whisper_cpp.git", rev = "1f3c84e887d9811463ba8fed6459d21a19e000a3" }
whisper-rs-sys = { git = "https://github.com/rubas/whisper_cpp.git", rev = "1f3c84e887d9811463ba8fed6459d21a19e000a3" }
Loading