Skip to main content

A multilingual phonemizer combining lexica, NLP, and probabilistic scoring for improved phonemization accuracy..

Project description

OLaPh — Optimal Language Phonemizer

PyPI version Python versions License: MIT

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, FR, ES)
  • 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


Installation

From PyPI

pip install olaph
python -m spacy download de_core_news_sm
python -m spacy download en_core_web_sm
python -m spacy download es_core_news_sm
python -m spacy download fr_core_news_sm
python -m spacy download pl_core_news_sm

From source

git clone https://github.com/iisys-hof/olaph.git
cd olaph
pip install -e .
python -m spacy download de_core_news_sm
python -m spacy download en_core_web_sm
python -m spacy download es_core_news_sm
python -m spacy download fr_core_news_sm
python -m spacy download pl_core_news_sm

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")

print(output)

Dependencies


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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

olaph-0.1.23.tar.gz (30.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

olaph-0.1.23-py3-none-any.whl (30.3 MB view details)

Uploaded Python 3

File details

Details for the file olaph-0.1.23.tar.gz.

File metadata

  • Download URL: olaph-0.1.23.tar.gz
  • Upload date:
  • Size: 30.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for olaph-0.1.23.tar.gz
Algorithm Hash digest
SHA256 d003523cdba5bd9edd7e4949aa7a3b14795eccbcc5a731cb525990d102e5d518
MD5 4b01356b2145a4459f81a1f6aa1d3dae
BLAKE2b-256 289b7d571d86e3699353203d1cd0760d39272e62dae46f3ebad93a965ed4649d

See more details on using hashes here.

File details

Details for the file olaph-0.1.23-py3-none-any.whl.

File metadata

  • Download URL: olaph-0.1.23-py3-none-any.whl
  • Upload date:
  • Size: 30.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for olaph-0.1.23-py3-none-any.whl
Algorithm Hash digest
SHA256 4b83aefc69ae37396e1f7aca65ed2f94de076f7472789c40314bf79be51b62b7
MD5 70322aa5b28973d0ccb172f4f396b7eb
BLAKE2b-256 8c0757629b1b96048f38515bf1e80dabe6347186e30324c20dba1625fe511ca0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page