Skip to main content

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, show and check read a manifest of candidate models with their licences, pinned revisions and status. Every entry is currently unverified: 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 verify checks a cache folder against them (offline, read-only). models check rejects 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 NAME downloads 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 --offline makes no network calls. Entries can declare dependencies, which are pulled first.
  • models lock NAME is 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 set HF_TOKEN) and its tokenizer dependency flan-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() and synthesize(), 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 is unverified and none is a default, so calls need allow_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. The parler-tts library 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.

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.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ragleap-voice 0.1.0
File Size Uploaded Provenance Actions
ragleap_voice-0.1.0.tar.gz 112.3 kB With provenance Details for ragleap_voice-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ragleap-voice 0.1.0
File Interpreter ABI Platform Actions
ragleap_voice-0.1.0-py3-none-any.whl Python 3 none any Details for ragleap_voice-0.1.0-py3-none-any.whl

Total release size: 184.9 kB

Release files / ragleap_voice-0.1.0.tar.gz

Download URL ragleap_voice-0.1.0.tar.gz
Size 112.3 kB
Tags Source
SHA-256 checksum
How to use checksums
57c6072cb6e11d40bfeac27723d64a0e0a211e2d23b6d76da3265e137d067454
BLAKE2b-256 checksum
How to use checksums
6b1f4a750d59d7e6a4c6464d1dce00699b6fc825702d419083e4b7d299d8ce45
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 26, 2026.

Transparency log

Release files / ragleap_voice-0.1.0-py3-none-any.whl

Download URL ragleap_voice-0.1.0-py3-none-any.whl
Size 72.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f0b0db57777c37846f0c583acee324d98662ea0b5a6daf3aa59a46619465443e
BLAKE2b-256 checksum
How to use checksums
8d7b8d970313da73c67bd9722c70f93c4b2f99531e5776275b2ce62dd3ad91f7
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 26, 2026.

Transparency log

Security for ragleap-voice 0.1.0

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.

Select from 2 files

Attestation for ragleap_voice-0.1.0.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 26, 2026.

Transparency log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page