misaki
G2P engine for TTS
What it is and what it does
This package is a grapheme-to-phoneme (G2P) engine that takes written text and produces phonetic transcriptions in IPA notation for text-to-speech synthesis. It supports five languages (English, Japanese, Korean, Chinese, Vietnamese) with language-specific tokenization pipelines: English uses spaCy and num2words; Japanese leverages pyopenjtalk with pitch accent support; Korean adapts g2pkc; Chinese uses jieba and pinyin conversion; Vietnamese relies on Viphoneme.
The core workflow is simple: instantiate a language-specific G2P object, pass text through it, and receive both phoneme sequences and token alignments. You can run without transformers for speed or enable transformer-based processing for context-aware disambiguation. Optional fallback to espeak handles out-of-vocabulary words. With only two runtime dependencies (addict and regex) and a pure-Python wheel, installation is straightforward, though language-specific extras must be selected at install time.
Use it for:
- Build multilingual TTS pipelines by converting text to phonemes for speech synthesis models.
- Preprocess text corpora for phonetic analysis or linguistic research across multiple languages.
- Handle out-of-vocabulary words in speech synthesis by falling back to espeak when dictionary lookup fails.
- Disambiguate homographs using optional transformer-based context when trf=True.
- Generate phonetic training data for speech models by batch-converting text documents to aligned phoneme sequences.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Converts written text to phonetic representations (grapheme-to-phoneme conversion) for text-to-speech systems, supporting English, Japanese, Korean, Chinese, and Vietnamese with language-specific tokenization and phoneme rules.
Yes, if you need multilingual grapheme-to-phoneme conversion for text-to-speech. The package is permissively licensed under Apache License Version 2.0, has low install friction, and covers five languages with specialized tokenization. However, the aging maintenance status (last release 496 days ago) means you should verify that the language and features you need are stable and that any issues may see slow response.
Install
misaki on PyPI
pip
pip install misakiuv
uv add misakipoetry
poetry add misakiInstalling misaki
Before you install
Low install friction with only two runtime dependencies (addict and regex). Maintenance status is aging—last release was 496 days ago—so expect slower response to issues, though the package appears stable for its current use case.
License in practice
Licensed under Apache License Version 2.0 (permissive), allowing free use, modification, and distribution with minimal restrictions; suitable for both open-source and commercial projects provided you include license attribution.
Quickstart
pip install "misaki[en]"
from misaki import en
g2p = en.G2P(trf=False, british=False, fallback=None)
text = 'Text to convert to phonemes.'
phonemes, tokens = g2p(text)
print(phonemes)
Language-specific extras (e.g., [en], [ja], [ko], [zh], [vi]) must be installed; optional fallback to espeak requires system-level installation of espeak-ng.
Verify before relying
- Performance characteristics (latency, throughput) for typical text lengths and batch sizes.
- Accuracy metrics or benchmarks against reference datasets.
- Whether transformer-based mode (trf=True) requires additional dependencies or model downloads.
- Compatibility and behavior with out-of-vocabulary or mixed-language text.
- Current state of language-specific features (pitch accent for Japanese, etc.) relative to the description.
Package facts
| License | Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for… (full text in the JSON record) (permissive) |
| Python support | capped below the current Python release (<3.13,>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — addict, regex |
| Maintenance | aging — 496 days since the last release |
| First released | |
| Downloads | 688,566/month — #5,340 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: misaki-0.9.4-py3-none-any.whl
Tags
More Linguistic packages
Detects and normalizes text encoding from…
permissive · top 100 on PyPI
tiktokentiktoken is a fast BPE tokenizer that converts…
permissive · top 1,000 on PyPI
chardetDetects character encoding and language in byte…
permissive · top 1,000 on PyPI
text-unidecodeConverts Unicode text to ASCII by…
copyleft · top 1,000 on PyPI
larkLark is a parsing library that builds abstract…
permissive · top 1,000 on PyPI
tree-sitterPython bindings to the tree-sitter parsing…
permissive · top 1,000 on PyPI
g2p-enConverts English text to phoneme sequences…
permissive · top 5,000 on PyPI
g2pkkg2pkk converts Korean text to phonetic…
permissive · top 15,000 on PyPI
pyopenjtalkWraps OpenJTalk to provide Japanese…
permissive · top 15,000 on PyPI
sea-g2pConverts text to phonemes for Vietnamese, Thai,…
permissive · top 15,000 on PyPI
orthography2ipaConverts spelling to IPA phonetic transcription…
permissive · top 15,000 on PyPI
kokoro-onnxConverts text to speech using ONNX Runtime,…
unclear · top 15,000 on PyPI
phonemizer-forkConverts text to phonetic representations…
copyleft · top 5,000 on PyPI
ko-speech-toolsProvides Korean language processing tools…
permissive · top 15,000 on PyPI
phonemizerPhonemizer converts written text into phonetic…
copyleft · top 15,000 on PyPI
kokoroKokoro is an inference library for the…
permissive · top 15,000 on PyPI