RagLeap
ragleap-voice · release notes

ragleap-voice v0.3.2

Status: pre-alpha. Open, local, MIT; no paid API in the default path. No model is verified yet and none is a default (calls need allow_unverified=True). Repeated Whisper calls are much faster: on one Colab T4 (Python 3.13, one 10.56 s clip, not a benchmark) a call took 14-15 s before, about 3.4 s after the first with transcribe(), and about 0.75 s with the opt-in Transcriber. This is batch decoding, not streaming latency. The model folder is now fully SHA-256 hashed once per process, which weakens the per-call integrity check; set RAGLEAP_VOICE_VERIFY=always to hash every call. transcribe_stream has no partial transcripts. Nothing is measured on real phone audio. No claim is made of being better than any other product; there is no such benchmark.

[0.3.2] - 2026-11-02

Status

  • Still pre-alpha. Every model is unverified and none is a default. This release makes repeated Whisper calls much faster: on one Colab T4 (Python 3.13, one 10.56 s clip, not a benchmark) a call took 14-15 s before, about 3.4 s after the first with transcribe(), and about 0.75 s with the new opt-in Transcriber. The verify-once cache weakens the per-call integrity check (someone who can change a model file and restore its size, inode, mtime and ctime inside one running process is not caught until restart); set RAGLEAP_VOICE_VERIFY=always to hash on every call. transcribe_stream is still a batch adapter with no partial transcripts. Real phone audio is not measured.

Added

  • Transcriber: an opt-in object that keeps the Whisper model open between calls (with Transcriber() as t: t.transcribe(...)), and transcribe_stream(..., transcriber=t). It owns its own engine, serialises calls with a lock, keeps the model after input errors, drops it after any other failure, and still verifies the model folder on every call (the once-per-process cache applies). transcribe() is unchanged. Measured on one Colab T4 (Python 3.13, one 10.56 s clip, same process; a smoke measurement, not a benchmark): transcribe() took about 3.4 s per call after the first, a Transcriber about 0.75 s. This is batch decoding, not streaming latency.

Changed

  • transcribe() and synthesize() now verify a model folder with the full SHA-256 check once per process; later calls accept it while a stat fingerprint of the folder (path, mode, size, inode, mtime, ctime) is unchanged, and any change forces a full re-hash. Failed checks are never cached. Set RAGLEAP_VOICE_VERIFY=always to hash on every call. This weakens the per-call check: someone who can change a model file and restore its size, inode, mtime and ctime inside one running process is not caught until the process restarts. models verify and the check after models pull still hash everything. A folder with any entry changed in the last 2 seconds is not cached, because file timestamps are coarse. A profile on one Colab T4 showed the per-call hash of the 3 GB Whisper model at roughly 10 s; on the same T4, calls after the first dropped from about 14-15 s to about 3.4 s (one clip, not a benchmark).
  • Whisper engine: load() no longer opens the model; it is opened once in run() with the requested device. Before, a call with an explicit device (for example device="cuda") opened the 3 GB model twice. Measured cost of the double open on one Colab T4 was about 2.5 s per call (from a profile, not a benchmark).

Install: pip install ragleap-voice==0.3.2 (engines are optional extras, e.g. ragleap-voice[whisper]).
Package: https://pypi.org/project/ragleap-voice/0.3.2/

View on GitHub Package page All releases
← v0.3.1v0.3.3 →

Release notes mirrored from GitHub Releases.