All notable changes to whisper_cpp will be documented in this file. The
format follows Keep a Changelog;
this project adheres to Semantic Versioning.
[0.2.0] - 2026-05-20
Added
WhisperCpp.load_model/2: GGML/GGUF model loading with:cpu,:cuda,:hipblas,:vulkan,:metal,:coreml,:intel_sycl, and:autodevice selection.WhisperCpp.transcribe/3: full whisper.cpp transcription on{:pcm_f32, binary}buffers (little-endian f32 mono at 16 kHz) with segment, token, and optional per-word output.WhisperCpp.transcribe_slice/4: time-shifted per-slice transcription that reuses one decoded PCM buffer.WhisperCpp.AbortHandle: cooperative cancellation. Pass an%AbortHandle{}via:abort_handleand callAbortHandle.abort/1from another process to stop in-flight inference; the partial transcription produced before the abort is returned.:progress_pidtranscribe option: receive{:whisper_progress, pct}messages as work advances; duplicate percentages are coalesced.:word_timestampsoption for per-word timing.WhisperCpp.available_devices/0: backend introspection for the loaded NIF artefact.WhisperCpp.Pcm: PCM slicing helpers. Audio file decoding is intentionally out of scope; callers decode upstream (ffmpeg, Bumblebee, ...) and share one decoded PCM buffer across stages.- Rustler NIF built on
whisper-rs, with cargo features forcuda,hipblas,vulkan,metal,coreml,intel-sycl,openblas, andopenmp. Inference does not serialise across processes sharing one loaded model. - Precompiled NIF artefacts via
rustler_precompiledfor x86_64 / aarch64 Linux (CPU, CUDA, hipBLAS variants) and aarch64 macOS (Metal).