vocx
vocx transcribes Esperanto text into phonetic Polish for use in professional
text-to-speech (TTS) engines.
Background
Commercial TTS engines tend not to support minority languages, particularly constructed languages such as Esperanto. It turns out Esperanto shares lots of sounds with Polish. By transcribing Esperanto to Polish, we can make commercial TTS engines give us a good approximation for spoken Esperanto.
This is a Python port of the original Go library.
Installation
pip install vocx
Usage
Library
from vocx import Transcriber
t = Transcriber()
t.transcribe("Ĉu vi ŝatas Esperanton? Esperanto estas facila lingvo.")
# "czu wij szatas esperanton? esperanto estas fatssila lijngwo."
Custom rules
To override the default rules used during transcription, call load_rules,
passing a custom JSON rules document. See
src/vocx/default_rules.py for the correct
structure.
from vocx import Transcriber
t = Transcriber()
t.load_rules(my_rules_json)
A rules document has four sections:
letters— single-character substitutions (applied lowercased).fragments— ordered regular-expression replacements applied to each word.overrides— whole-word replacements (surrounding punctuation is preserved).numbers— the words used when transcribing numeric tokens.
Command line
# Transcribe arguments
vocx "Saluton, kiel vi fartas?"
# saluton, kijel wij fartas?
# Transcribe stdin
echo "Saluton" | vocx
# Use a custom rules file
vocx --rules my_rules.json "Saluton"
Development
uv sync
uv run pytest
Metadata
Release files for vocx 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 | |
|---|---|---|---|
| vocx-0.1.0.tar.gz | 11.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vocx-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.6 kB
Release files / vocx-0.1.0.tar.gz
| Download URL | vocx-0.1.0.tar.gz |
|---|---|
| Size | 11.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2ca3f6aa84833e6c2586daa9328479b804527cd323c17b09c7e5f4ed70219e67
|
|
BLAKE2b-256 checksum How to use checksums |
a41d6abf520795fa303ec16ad47fe7950e5e63afb24d8bf27ecd60ceb45491af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jun 8, 2026.
Transparency logRelease files / vocx-0.1.0-py3-none-any.whl
| Download URL | vocx-0.1.0-py3-none-any.whl |
|---|---|
| Size | 8.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
de0fb0f394f9e588349592b6c3d7cb4d14266cbeaf42a4fd2ab8bed5a5799c6a
|
|
BLAKE2b-256 checksum How to use checksums |
dfd4212f77d3ebf727bade00bf829b6d89cb46bd3bf79bdcf6b4abe5f3743dbc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jun 8, 2026.
Transparency log