indic-language-utils
A Python 3.11 and 3.12 library for Indian-language translation, text language detection, transliteration, speech-to-text, and text-to-speech. The project uses uv and will be published on PyPI as indic-language-utils. Its Python import is indic_language_utils. The code is licensed under the MIT License.
Phase 0 implements the shared library foundation, Phase 1 adds structured translation with Bhashini and Google Translate adapters, and Phase 2 adds text language detection with local FastText and cloud Bhashini adapters. Runtime caching can use bounded process memory or persistent SQLite storage. The architecture and ecosystem review is in plans/architecture-proposal.md.
The intended shape is a small core with optional provider packages. Applications should be able to start with local or low-cost providers during a proof of concept, then change routing configuration for production without rewriting text and audio handling.
Work will be delivered in this order:
- shared library foundation
- text translation
- text language detection, abbreviated as TLD
- transliteration
- non-streaming speech-to-text, abbreviated as STT
- non-streaming text-to-speech, abbreviated as TTS
Provider work starts with Bhashini and then Sarvam. Unofficial Google or Microsoft adapters can be added later as opt-in extras or external plugins. Optional dependency groups will keep translation-only installations free of speech and audio dependencies.
Cross-cutting requirements include structured-text preservation, bounded concurrency, retries, routing and fallback, versioned terminology, caching, logging, metrics, and explicit data-retention controls.
Development
Install the locked development environment with uv sync --dev. The usual checks are:
uv run pre-commit install
uv run ruff format .
uv run ruff check .
uv run mypy
uv run pytest
uv build
uv run mkdocs serve
uv run mkdocs build
The runtime uses HTTPX for Bhashini's reusable asynchronous HTTP client. For usage and guides, see:
- docs/user-guide.md for system capabilities and getting started
- docs/translation.md for translation features and examples
- docs/detection.md for text language and script detection
- docs/configuration.md for TOML and environment loading
- docs/processors.md for processor composition and markdown protection
- docs/adapter-author-guide.md for provider integration
Release files for indic-language-utils 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| indic_language_utils-0.1.0.tar.gz | 132.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| indic_language_utils-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 192.2 kB
Release files / indic_language_utils-0.1.0.tar.gz
| Download URL | indic_language_utils-0.1.0.tar.gz |
|---|---|
| Size | 132.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8dd1aaaa4db14cac833f22020b8119b968c1650d0149f856faad128e2df61ea8
|
|
BLAKE2b-256 checksum How to use checksums |
a47babc3e17287c1ebfdff18253a306a3fbf8174e3e8dfbed76138ecc0573005
|
| 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 Sep 22, 2026.
Transparency logRelease files / indic_language_utils-0.1.0-py3-none-any.whl
| Download URL | indic_language_utils-0.1.0-py3-none-any.whl |
|---|---|
| Size | 59.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
db16e9b6615517f788ed0f78ba53a41ba34f8b838528e98bd9d1197cccac228b
|
|
BLAKE2b-256 checksum How to use checksums |
ea0cc4adcb7a881517891c8ce3e34750ea33146d20d8e07e1ccf749884bbdf4b
|
| 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 Sep 22, 2026.
Transparency log