ragleap-voice
Open-source (MIT), local-first speech tooling, with Indian languages as a priority.
Status: pre-alpha. Version 0.1.0 adds transcribe() and synthesize() with a Whisper large-v3 engine and an Indic Parler-TTS engine (see "What 0.1.0 adds" below). Every model is unverified and none is a default. Each engine has been run on only a few clips on one maintainer's machine. This is a first release for testing, not a finished product.
What works today
A command line and a small standard-library-only Python core (no runtime dependencies, Python 3.10 or newer) for finding, locking, downloading and verifying speech models safely:
pip install ragleap-voice
uv pip install ragleap-voice
uvx ragleap-voice models list
ragleap-voice models list
ragleap-voice models show indic-parler-tts
ragleap-voice models check
models list,showandcheckread a manifest of candidate models with their licences, pinned revisions and status. Every entry is currentlyunverified: a research lead, not an endorsement. None is a default.- Lock files record the size and SHA-256 of every file at a pinned revision.
models verifychecks a cache folder against them (offline, read-only).models checkrejects verified or default entries that lack a matching lock, use licences outside the allowlist, or list pickle-capable files (formats that can run code when loaded). models pull NAMEdownloads from Hugging Face only: HTTPS, a host allowlist, and the access token (HF_TOKEN) is sent only to huggingface.co. Every file is checked against its lock before anything enters the cache, and--offlinemakes no network calls. Entries can declare dependencies, which are pulled first.models lock NAMEis a maintainer tool that builds a lock by downloading and hashing every file.- Two entries are locked so far:
indic-parler-tts(a gated Hugging Face model: accept its conditions on the website and setHF_TOKEN) and its tokenizer dependencyflan-t5-large-tokenizer. Both are pinned but have not had a human review, so pulling them needs--allow-unverified.
Nothing in the package uses the network unless you run models pull or models lock.
What 0.1.0 adds
Pre-alpha: names and signatures can still change. The core has no runtime dependencies. Engines are separate: the Whisper engine needs its extra (pip install "ragleap-voice[whisper]"; without it the call raises an error that names this command), and the Parler engine has no extra, because you set up its Python environment yourself (see issue 990 below).
transcribe()andsynthesize(), which check the licence, the lock and the verification status of every model before an engine sees it, and hand engines verified folders only. Every model isunverifiedand none is a default, so calls needallow_unverified=True.- A Whisper large-v3 engine (optional extra
whisper, faster-whisper). Run with the real model on two clips (English and Spanish) on a CPU, and on one Colab T4 with NVIDIA's cublas and cudnn pip packages preloaded by hand (the engine does not preload them). Other GPUs and CUDA versions have not been tried. Input must be mono 16-bit 16 kHz WAV. - An Indic Parler-TTS engine, run as an isolated worker from a Python environment you set up yourself (
RAGLEAP_VOICE_PARLER_PYTHON). Run once with the real model on a T4 for Hindi and English. The model is gated on Hugging Face. Theparler-ttslibrary is installed from GitHub and is not covered by the lock files, and the versions of its dependencies are not pinned by us. - No emotion names are declared. Style goes through
options={"description": "..."}, and what that changes has not been measured. Voice cloning is not built. - Isolation separates conflicting dependencies and keeps tokens out of the worker. It is not a security sandbox.
Help with testing is wanted: https://github.com/ragleap/ragleap-core/issues/960 (Whisper), https://github.com/ragleap/ragleap-core/issues/990 (Parler) and the roadmap at https://github.com/ragleap/ragleap-core/issues/970.
Install check (one maintainer run, not a guarantee): ragleap-voice[whisper] installed from PyPI on a fresh Colab T4 runtime and transcribed one clip each in seven more declared languages (see issue 960). One clip per language is not an accuracy measurement.
Measurements
Reproducible benchmarks with their limits are published at https://github.com/ragleap/ragleap-core/tree/main/benchmarks/voice. They use small samples of read speech on one GPU. The WER/CER helper can optionally normalize English (numbers=True) or Turkish (numbers="tr") cardinal-number words; it is off by default and has not been applied to the published tables. Other language strings raise ValueError rather than falling back to English. In those tests an open Indian-language recogniser (IndicConformer) had clearly lower word error than Whisper large-v3 on Hindi, Tamil, Telugu, Malayalam and Kannada. Naturalness, emotion quality and comparisons with commercial services have not been measured, and this project makes no claim about them.
Planned, not available
Streaming, a voice-activity gate, resampling, voice profiles with a consent record, emotion and style control, a registry of community-trained models, verified models, and more languages and engines.
Licence
MIT. Models are separate downloads with their own licences, listed in the manifest and in https://github.com/ragleap/ragleap-core/blob/main/packages/ragleap-voice/THIRD_PARTY_NOTICES.md
Source and issues: https://github.com/ragleap/ragleap-core/tree/main/packages/ragleap-voice
Metadata
Release files for ragleap-voice 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ragleap_voice-0.1.1.tar.gz | 112.5 kB | With provenance | Details for ragleap_voice-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ragleap_voice-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for ragleap_voice-0.1.1-py3-none-any.whl |
Total release size: 185.2 kB
Release files / ragleap_voice-0.1.1.tar.gz
| Download URL | ragleap_voice-0.1.1.tar.gz |
|---|---|
| Size | 112.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c092db2b1973a15c1b96b7426cc1a60ed2767c6559ab1e4ec3aa4310d9e6a243
|
|
BLAKE2b-256 checksum How to use checksums |
2a6205ebf147ad85887503731ad58d5f88d3fb4aa3efc3e341305356d04ec049
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logRelease files / ragleap_voice-0.1.1-py3-none-any.whl
| Download URL | ragleap_voice-0.1.1-py3-none-any.whl |
|---|---|
| Size | 72.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fd7b1dceb24c7a1cb668e5d25ce56d7f5c845a902f5fccd959fbc06b2ad66a09
|
|
BLAKE2b-256 checksum How to use checksums |
b505d9399c3f919ec83c89a29e16a4e864ae1b70c2f423d4e70abf83f174d7ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logSecurity for ragleap-voice 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for ragleap_voice-0.1.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.