Skip to content

Commit 1590665

Browse files
committed
test(g2p): fill expected phonemes for all 12 language variants
Expected values derived from the ChainG2p dict files and the Multig2p-Multi config.json phoneme sets for each language: eng/default hello -> hh ah l ow (CMU ARPABET, ah not ax) eng/plus hello -> hh ax l ow (ARPABET Plus has ax) deu/default ja -> y aa (OpenUTAU dict: y aa) fra/default oui -> ou ii (OpenUTAU dict: ou ii) ita/default si -> s i (remove_tone_digits strips stress) kor/default 가 -> g a (Latin phoneme set) por/default sim -> s i~ (nasal vowel i~) rus/default да -> d a (Latin phoneme set) spa/default si -> s i fil/default oo -> o o deu/marzipan ja -> j a (IPA-like phoneme set) fra/millefeuille oui -> TBD (different phoneme set, needs model)
1 parent 423f723 commit 1590665

1 file changed

Lines changed: 22 additions & 9 deletions

File tree

‎tests/g2p/tst_multig2p_languages.cpp‎

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -225,21 +225,34 @@ namespace {
225225

226226
/// All 12 languages supported by Multig2p-Multi, each with the simplest
227227
/// common word to minimize ONNX variance. Language codes are ISO 639-3.
228+
/// expectedPron values come from the dict training data (ChainG2p-*/...txt)
229+
/// and config.json phoneme sets. For ita/default, preprocessor
230+
/// remove_tone_digits strips stress marks (i1 → i).
228231
const std::vector<LangCase> &langCases() {
229232
static const std::vector<LangCase> cases = {
230233
// eng/default uses CMU ARPABET: ah (not ax) for schwa
231234
{"eng/default", "hello", "eng (CMU)", "hh ah l ow"},
232235
// eng/plus (ARPABET Plus) uses ax for the reduced schwa
233236
{"eng/plus", "hello", "eng (ARPABET Plus)", "hh ax l ow"},
234-
{"deu/default", "ja", "deu (OpenUTAU)", ""},
235-
{"fra/default", "oui", "fra (OpenUTAU)", ""},
236-
{"ita/default", "si", "ita (OpenUTAU)", ""},
237-
{"kor/default", "가", "kor (OpenUTAU)", ""},
238-
{"por/default", "sim", "por (OpenUTAU)", ""},
239-
{"rus/default", "да", "rus (OpenUTAU)", ""},
240-
{"spa/default", "si", "spa (OpenUTAU)", ""},
241-
{"fil/default", "oo", "fil (OpenUTAU)", ""},
242-
{"deu/marzipan", "ja", "deu (Marzipan)", ""},
237+
// deu dict: ja → y aa; voc has y, aa (OpenUTAU format)
238+
{"deu/default", "ja", "deu (OpenUTAU)", "y aa"},
239+
// fra dict: oui → ou ii; voc has ou, ii
240+
{"fra/default", "oui", "fra (OpenUTAU)", "ou ii"},
241+
// ita dict: si → s i1; remove_tone_digits → s i
242+
{"ita/default", "si", "ita (OpenUTAU)", "s i"},
243+
// kor phoneme set uses Latin: syllable 가 → g a
244+
{"kor/default", "가", "kor (OpenUTAU)", "g a"},
245+
// por dict: sim → s i~; voc has i~
246+
{"por/default", "sim", "por (OpenUTAU)", "s i~"},
247+
// rus dict uses Latin phonemes: да → d a
248+
{"rus/default", "да", "rus (OpenUTAU)", "d a"},
249+
// spa dict: si → s i
250+
{"spa/default", "si", "spa (OpenUTAU)", "s i"},
251+
// fil dict has only uppercase OO → Q O Q O; lowercase oo → o o
252+
{"fil/default", "oo", "fil (OpenUTAU)", "o o"},
253+
// deu/marzipan uses IPA-like voc: ja → j a
254+
{"deu/marzipan", "ja", "deu (Marzipan)", "j a"},
255+
// fra/millefeuille uses different phoneme set; TBD from model
243256
{"fra/millefeuille", "oui", "fra (Millefeuille)", ""},
244257
};
245258
return cases;

0 commit comments

Comments
 (0)