Skip to main content

uccharan (Python)

5× faster than espeak-ng. Just as accurate. Free to ship. A drop-in phonemiser for Piper, Kokoro and sherpa-onnx voices — English, Hindi, nineteen more South Asian languages, Spanish, French, German and Dutch, in Rust, Python, C and the browser. Apache-2.0. (measurements)

Permissively licensed text-to-phoneme conversion for neural TTS: English (US, British RP), Hindi and Hinglish, in the shapes Piper, Kokoro, Kitten TTS, Matcha-TTS and sherpa-onnx voices expect. No GPL code or data; no runtime dependencies.

pip install uccharan
import uccharan

uccharan.phonemize("Hello, world.")                          # 'həlˈoʊ, wˈɜːld.'
uccharan.phonemize("नमस्ते दुनिया", lang="hi")                  # 'nəmˈʌsteː dˈʊnɪjˌaː'
uccharan.phonemize("Hi there. Bye!", "en-us", "piper")       # ['hˈaɪ ðˈɛɹ.', 'bˈaɪ!']
uccharan.phonemize("Hi there.", "en-us", "sherpa-onnx")      # [[104, 712, 97, 618, …]]
uccharan.phonemize("I read it yesterday.", improved=True)    # 'aɪ ɹˈɛd ɪt jˈɛstɚdˌeɪ.'
uccharan.phonemize("I read the book.", "en-us", "kokoro")    # 'ˌI ɹˈɛd ðə bˈʊk.'  (misaki conventions, for Kokoro)
uccharan.phonemize_batch(lines, "hi")                        # all cores, GIL released

For code written against phonemizer:

from uccharan.compat import EspeakBackend
backend = EspeakBackend("en-us", preserve_punctuation=True, with_stress=True)
backend.phonemize(["Hello, world."], strip=True)             # ['həlˈoʊ, wˈɜːld.']

A command-line program is installed as uccharan (uccharan -l hi -p piper "नमस्ते").

For training voices and checking pronunciation, uccharan.train and the uccharan-train command label a dataset (training-ready phonemes for Piper, Matcha-TTS and icefall-style recipes, a symbol table and a voice.json), choose a reading script, report phoneme and diphone coverage, and score a recogniser's output against a reference word by word (guide).

English for Kokoro uses a port of misaki with misaki 0.9.4's dictionaries; load_misaki(dir) loads another copy.

The wheel (about 3 MB) carries the en-US, Hindi and other South Asian, Spanish, German, Dutch and French language data. British English and the Kokoro English data are language packs: downloaded from the GitHub release of the same version the first time they are needed, checked against SHA-256 sums inside the wheel, and cached in ~/.cache/uccharan. On an offline machine put the .ucd files (from the release page) in a directory named by UCCHARAN_DATA_DIR, set UCCHARAN_OFFLINE=1 to forbid downloads, or call uccharan.load_pack(path).

Documentation, measured agreement, speed and end-to-end results: https://github.com/cB-Sigma/uccharan.

Licence

Licence: Apache-2.0. Includes data from the CMU Pronouncing Dictionary (BSD-2-Clause) and misaki (Apache-2.0); see NOTICE.

Metadata

Release files for uccharan 0.3.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 uccharan 0.3.0
File Size Uploaded Provenance Actions
uccharan-0.3.0.tar.gz 6.4 MB Without provenance Details for uccharan-0.3.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for uccharan 0.3.0
File Actions
uccharan-0.3.0-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details for uccharan-0.3.0-cp39-abi3-win_amd64.whl
uccharan-0.3.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details for uccharan-0.3.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
uccharan-0.3.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.9 abi3 Linux glibc 2.17+ ARM64 Details for uccharan-0.3.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
uccharan-0.3.0-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details for uccharan-0.3.0-cp39-abi3-macosx_11_0_arm64.whl
uccharan-0.3.0-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details for uccharan-0.3.0-cp39-abi3-macosx_10_12_x86_64.whl

Total release size: 20.7 MB

Release files / uccharan-0.3.0.tar.gz

Download URL uccharan-0.3.0.tar.gz
Size 6.4 MB
Tags Source
SHA-256 checksum
How to use checksums
731b3d88d4d807996092cc4fd4e37fd26b61bd35538b05e0ccf5a7598641634a
BLAKE2b-256 checksum
How to use checksums
78dcb8c7730610cec56b69faeafad4677043090e6e7af79d17b1a653dd5a1160
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / uccharan-0.3.0-cp39-abi3-win_amd64.whl

Download URL uccharan-0.3.0-cp39-abi3-win_amd64.whl
Size 2.8 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
86d78c5078734f11c5b3389f159fafc2900a6f3ab0d8cadc719d57a5be15c3ae
BLAKE2b-256 checksum
How to use checksums
2f605530e94ba14e29f1a8d13888041821bd0558a8f4a46901b3104ef7b7c652
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / uccharan-0.3.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL uccharan-0.3.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 2.9 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
3aa3c158b9c669995c276d68bd6718fc9fb9c8cbcf8dba77aa55aa88b060cb0b
BLAKE2b-256 checksum
How to use checksums
8f0472dce6825311e2037d33c03ab4743dea2bcaa38c27a95e1da43012e8c91c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / uccharan-0.3.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL uccharan-0.3.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 2.9 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
8567b53e7b38836ac78d3272e89379370c9e418eda39e214de3578761e3cb0ec
BLAKE2b-256 checksum
How to use checksums
68ec68ffdc3ff7a75025bb9faece9369da30544779b429e392c96017e7fd0bc6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / uccharan-0.3.0-cp39-abi3-macosx_11_0_arm64.whl

Download URL uccharan-0.3.0-cp39-abi3-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
edd1756a74092688f206b88530dbe59cb999ee548b39dd3816519b4e97b46784
BLAKE2b-256 checksum
How to use checksums
7578e60a498c41af67180c329f35c1eac7fe119e20486aea38ce267dc399fea3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / uccharan-0.3.0-cp39-abi3-macosx_10_12_x86_64.whl

Download URL uccharan-0.3.0-cp39-abi3-macosx_10_12_x86_64.whl
Size 2.9 MB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
e410709953e4fc67b01f69a34eb308656079bcc7506a723d7a228daf97a29a8e
BLAKE2b-256 checksum
How to use checksums
0e71b382a858290dd3c6c2b054a2ab26d580e51e55e83c9b58371c2d7f18e6fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for uccharan 0.3.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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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