A multilingual phonemizer combining lexica, NLP, and probabilistic scoring for improved phonemization accuracy..
Project description
OLaPh — Optimal Language Phonemizer
OLaPh (Optimal Language Phonemizer) is a multilingual phonemization framework that converts text into phonemes surpassing the quality of comparable frameworks.
Overview
Traditional phonemizers rely on simple rule-based mappings or lexicon lookups. Neural and hybrid approaches improve generalization but still struggle with:
- Names and foreign words
- Abbreviations and acronyms
- Loanwords and compounds
- Ambiguous homographs
OLaPh tackles these challenges by combining:
- Extensive language-specific dictionaries
- Abbreviation, number, and letter normalization
- Compound resolution with probabilistic scoring
- Cross-language handling
- NLP-based preprocessing via spaCy and Lingua
Evaluations in German and English show improved accuracy and robustness over existing phonemizers, including on challenging multilingual datasets.
Features
- Multilingual phonemization (DE, EN-US, EN-UK, FR, ES, NL, SV, DA, PL, IT, FI)
- Abbreviation and letter pronunciation dictionaries
- Number normalization
- Cross-language acronym detection
- Compound splitting with probabilistic scoring
- Freely available lexica for research and development derived from wiktionary.org.
Large Language Model
A LLM based on OLaPh output is also available. It is a GemmaX 2B Model trained on ~10M sentences derived from the FineWeb Corpus phonemized with the OLaPh framework.
Find it here on huggingface (Needs to be updated for the additional languages)
Installation
From PyPI
pip install olaph
spaCy models are downloaded on demand.
From source
git clone https://github.com/iisys-hof/olaph.git
cd olaph
pip install -e .
Example Usage
from olaph import Olaph
phonemizer = Olaph()
output = phonemizer.phonemize_text("He ordered a Brezel and a beer in a tavern near München.", lang="en-us")
print(output)
Dependencies
Dictionars Sources
Research Summary
Phonemization, the conversion of text into phonemes, is a key step in text-to-speech. Traditional approaches use rule-based transformations and lexicon lookups, while more advanced methods apply preprocessing techniques or neural networks for improved accuracy on out-of-domain vocabulary. However, all systems struggle with names, loanwords, abbreviations, and homographs. This work presents OLaPh (Optimal Language Phonemizer), a framework that combines large lexica, multiple NLP techniques, and compound resolution with a probabilistic scoring function. Evaluations in German and English show improved accuracy over previous approaches, including on a challenging dataset. To further address unresolved cases, we train a large language model on OLaPh-generated data, which achieves even stronger generalization and performance. Together, the framework and LLM improve phonemization consistency and provide a freely available resource for future research.
Citation
If you use OLaPh in academic work, please cite:
@misc{wirth2025olaphoptimallanguagephonemizer,
title={OLaPh: Optimal Language Phonemizer},
author={Johannes Wirth},
year={2025},
eprint={2509.20086},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2509.20086},
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file olaph-0.2.10.tar.gz.
File metadata
- Download URL: olaph-0.2.10.tar.gz
- Upload date:
- Size: 42.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
982b8679730cfd29d5c5ab77b6286291beef4be333513a2e3e9a5942b39bd11e
|
|
| MD5 |
4c69276782d198e71119d1b455978112
|
|
| BLAKE2b-256 |
0fd3359018934206997c720ff7f60c1a80b370e515594e8bb0c98d3b48d3ebd3
|
File details
Details for the file olaph-0.2.10-py3-none-any.whl.
File metadata
- Download URL: olaph-0.2.10-py3-none-any.whl
- Upload date:
- Size: 42.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7f6a02a2850eb20c24ba040febded47f09f57559e68ff60a89a29f8d7a48ef8
|
|
| MD5 |
f43fb248ace8761e7e9eff299516baf4
|
|
| BLAKE2b-256 |
eb3f6cb023c0cc2a3d49b17b39edbcd80e60ef5afd870a05558763f6babb6526
|