1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//! # 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
//!
//! ```rust,ignore
//! 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)?;
//! ```
pub use ;
pub use G2pError;
pub use ;