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
unverifiedand 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 withtranscribe(), and about 0.75 s with the new opt-inTranscriber. 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); setRAGLEAP_VOICE_VERIFY=alwaysto hash on every call.transcribe_streamis 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(...)), andtranscribe_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, aTranscriberabout 0.75 s. This is batch decoding, not streaming latency.
Changed
transcribe()andsynthesize()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. SetRAGLEAP_VOICE_VERIFY=alwaysto 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 verifyand the check aftermodels pullstill 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 inrun()with the requested device. Before, a call with an explicit device (for exampledevice="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/