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)
| 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)
| File | Actions Reset | |||
|---|---|---|---|---|
| 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.