Expand description
§piper-plus-g2p
Multilingual G2P (Grapheme-to-Phoneme) for TTS — eSpeak-ng free, MIT licensed.
§IPA-first design
Phonemizer::phonemize_with_prosody() returns clean IPA token lists
without BOS/EOS markers or PUA encoding. The encoding step
(PUA mapping, phoneme_id_map, BOS/EOS/padding insertion) is handled
separately by encode.
§Supported languages
| Language | Code | Feature flag |
|---|---|---|
| Japanese | ja | japanese |
| English | en | english (default) |
| Chinese | zh | chinese (default) |
| Korean | ko | korean (default) |
| Spanish | es | spanish (default) |
| French | fr | french (default) |
| Portuguese | pt | portuguese (default) |
| Swedish | sv | swedish |
§Quick start
ⓘ
use piper_plus_g2p::{Phonemizer, PhonemizerRegistry};
use piper_plus_g2p::english::EnglishPhonemizer;
// Create a registry and register language phonemizers
let mut registry = PhonemizerRegistry::new();
let en = EnglishPhonemizer::new().unwrap();
registry.register("en", Box::new(en));
// Look up a phonemizer by language code
let phonemizer = registry.get("en").unwrap();
// Phonemize text to IPA tokens with prosody info
let (tokens, prosody) = phonemizer
.phonemize_with_prosody("Hello, world!")
.unwrap();
// Encode tokens to phoneme IDs using a model's phoneme_id_map
// let ids = piper_plus_g2p::encode::tokens_to_ids(&tokens, &phoneme_id_map)?;Re-exports§
pub use encode::PiperEncoder;pub use encode::UnknownTokenMode;pub use error::G2pError;pub use phonemizer::PhonemeIdMap;pub use phonemizer::Phonemizer;pub use phonemizer::PhonemizerRegistry;pub use phonemizer::ProsodyFeature;pub use phonemizer::ProsodyInfo;
Modules§
- chinese
- Chinese (Mandarin) phonemizer for Piper TTS.
- custom_
dict - カスタム辞書モジュール
- encode
- Phoneme token-to-ID conversion.
- english
- English phonemizer using CMU dictionary + ARPAbet-to-IPA conversion.
- error
- G2P-specific error types.
- french
- Rule-based French grapheme-to-phoneme conversion for Piper TTS.
- korean
- Korean phonemizer – Hangul decomposition + IPA mapping.
- multilingual
- Multilingual phonemizer for code-switching text across N languages.
- phonemizer
- Core
Phonemizertrait,PhonemizerRegistry, and shared types (ProsodyInfo,ProsodyFeature,PhonemeIdMap). - portuguese
- Rule-based Brazilian Portuguese phonemizer for Piper TTS.
- spanish
- Rule-based Spanish G2P (grapheme-to-phoneme) phonemizer.
- swedish
- Rule-based Swedish G2P (grapheme-to-phoneme) phonemizer.
- token_
map - PUA (Private Use Area) マッピング.