From 68b9ca5d83689e357e11472be38830c9822bd601 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alaksiej=20Stankievi=C4=8D?= Date: Fri, 27 May 2022 18:12:46 +0200 Subject: [PATCH 1/4] Rework rules for Belarusian and update phonemes This patch strip out dependency on Russian, as its complicated relationship between spelling and pronunciation overburden rules for Belarusian. The rules themselves are also added. They don't have devoicing at the end of the words for now. Also, gemination of consonants doesn't work as expected, as it seems on the top of this rule some other rules apply. This after-processing is responsible also for the strange behaviour of ending [a]. --- dictsource/be_list | 82 +++++++++++++++++++++--------------------- dictsource/be_rules | 63 ++++++++++++++++++++++++++++---- phsource/ph_belarusian | 50 +++++++++++++++++--------- phsource/phonemes | 8 ++--- 4 files changed, 134 insertions(+), 69 deletions(-) diff --git a/dictsource/be_list b/dictsource/be_list index 2f4eae30..de599ebe 100644 --- a/dictsource/be_list +++ b/dictsource/be_list @@ -2,8 +2,9 @@ // Spelling-to-phoneme words for Belarusian // Letter names -а a -б bE +а %a +_a a +_б bE в vE г QE д dE @@ -11,69 +12,70 @@ ё jO ж z.E з zE -і i -й i||n;EskladOvajE +і %i +_і i +_й i||n;Esklad'OvajE к ka л El м Em н En о O п pE -р Er +р ER с Es т tE у u -ў u||n;EskladOvajE +_ў u||n;Esklad'OvajE ф Ef х xa ц tsE ч ts.E ш s.a ы i" -ь m;ak;:i||znak +ь m;'ak;:i||zn'ak э E ю ju я ja -' apOstraf +' ap'OstRaf // Numbers _0 nul; _1 ad;in _2 dva -_3 tri" -_4 ts.ati"ri" -_5 p;at; -_6 s.Es;t; +_3 tRi" +_4 ts.ati"Ri" +_5 p;ats; +_6 s.Es;ts; _7 s;Em -_8 vOs;E2m -_9 d;Ev;at; -_10 d;Es;at; -_11 ad;inats:at; -_12 dvanats:at; -_13 tri"nats:at; -_14 ts.ati"rnats:at; -_15 p;atnats:at; -_16 s.asnats:at; -_17 s;amnats:at; -_18 vas;amnats:at; -_19 d;Ev;atnats:at; -_2X dvats:at; -_3X tri"ts:at; -_4X sorak +_8 v'Os;Em +_9 dz;Ev;ats; +_10 dz;Es;ats; +_11 adz;inats:ats; +_12 dvanats:ats; +_13 tRi"nats:ats; +_14 ts.ati"Rnats:ats; +_15 p;atnats:ats; +_16 s.asnats:ats; +_17 s;amnats:ats; +_18 vas;amnats:ats; +_19 dz;Ev;atnats:ats; +_2X dvats:ats; +_3X tRi"ts:ats; +_4X s'ORak _5X p;adz;:Es;at -_6X s.Ezdz;:Es;jat -_7X s;Emdz;Es;jat -_8X vos;Emdz;Es;at -_9X d;Ev;anosta -_0C stO -_2C d;v;Es;t;E -_3C tri"sta -_4C ts.ati"ri"sta -_5C p;at;sot -_6C s.Es;t;sot -_7C s;jEmsot -_8C vos;jEmsot -_9C d;Ev;at;sot +_6X s.Ezdz;:Es;at +_7X s;Emdz;Es;at +_8X v'Os;Emdz;Es;at +_9X dz;Ev;an'Osta +_0C st'O +_2C dz;v;Es;ts;E +_3C tRi"sta +_4C ts.ati"Ri"sta +_5C p;ats;s'Ot +_6C s.Es;ts;s'Ot +_7C s;Ems'Ot +_8C v,Os;Ems'Ot +_9C dz;Ev;ats;s'Ot _1MA1 ti"s;ats.a _0MA1 ti"s;ats.i" _0M1 ti"s;ats. diff --git a/dictsource/be_rules b/dictsource/be_rules index 2d6f1407..54cf32f8 100644 --- a/dictsource/be_rules +++ b/dictsource/be_rules @@ -1,6 +1,28 @@ // This file is UTF8 encoded // Translation rules for Belarusian +//letter which can carry vowel phoneme +.L01 а е ё і о у ы э ю я +//letter which can carry consonant phoneme +.L02 б в г д ж з й к л м н нн п р с сс т ф х ц ч ш +//letter which can carry forward sibilant (like с) +//.L03 з дз с ц +//letter which can carry backward sibilant (like ш) +//.L04 ж дж ш ч + +// This is more economic way to express assimilation by sibilation than using L03 and L04 +.replace + сш шш + сч шч + цч чч + шс сс + шц сц + чц цц + зж жж + здж ждж + жз зз + ждз здз + .group а а a @@ -14,22 +36,35 @@ г Q // ɣ .group д - д d + д d[ + дз dz // d̻͡z̪ + ддз dz: + дж dz. // ɖ͡ʐ .group е е ;E // ʲɛ + _) е jE + ') е jE + ь) е jE + L01) е jE .group ё - ё ;O // ʲɔ + ё ;'O // ʲɔ + _) ё j'O + ') ё j'O + ь) ё j'O + L01) ё j'O .group ж ж z. // ʐ + жж z.: .group з з z .group і і i + L02) і ;i .group й й j @@ -39,27 +74,30 @@ .group л л l + лл l: .group м м m .group н н n + нн n: .group о - о o + о 'O .group п п p .group р - р r + р R .group с с s + сс s: .group т - т t + т t[ .group у у u @@ -74,13 +112,16 @@ х x .group ц - ц ts // t̻͡s + ц ts // t̻͡s̪ + цц ts: .group ч ч ts. // ʈ͡ʂ + чч ts.: .group ш ш s. // ʂ + шш s.: .group ы ы i" // (ɨ @@ -93,9 +134,17 @@ .group ю ю ;u // ʲu + _) ю ju + ') ю ju + ь) ю ju + L01) ю ju .group я я ;a // ʲa + _) я ja + ') я ja + ь) я ja + L01) я ja .group ' - ' j + ' diff --git a/phsource/ph_belarusian b/phsource/ph_belarusian index 3efcf5c9..80645bac 100644 --- a/phsource/ph_belarusian +++ b/phsource/ph_belarusian @@ -2,48 +2,64 @@ // Belarusian //==================================================== - phoneme a - import_phoneme ru/a -endphoneme - -phoneme O - vwl starttype #o endtype #o - ipa ɔ - length 100 - FMT(vwl_ru/8) + vwl starttype #a endtype #a + ipa a + length 180 + FMT(vowel/a) endphoneme phoneme i" - import_phoneme pl/y + vwl starttype #i endtype #i + ipa ɨ + length 180 + FMT(vowel/ii#_2) endphoneme phoneme ts - import_phoneme consonants/ts - ipa t̻͡s + CALL consonants/ts + voicingswitch dz + ipa t̻͡s̪ endphoneme phoneme ts; - import_phoneme pl/ts; + CALL base1/tS; + voicingswitch dz; ipa t̻͡s̪ʲ endphoneme phoneme ts. - import_phoneme sr/tS + vls pla afr sib ipa ʈ͡ʂ + lengthmod 2 + voicingswitch dz. + Vowelin f1=0 f2=2300 200 400 f3=-100 80 + WAV(ustop/tsh_sr, 50) endphoneme phoneme dz - import_phoneme consonants/dz + CALL consonants/dz + voicingswitch ts ipa d̻͡z̪ endphoneme phoneme dz; - import_phoneme pl/dz; + CALL base1/dZ; + voicingswitch ts; ipa d̻͡z̪ʲ endphoneme phoneme dz. - import_phoneme sr/dZ + vcd pla afr sib ipa ɖ͡ʐ + lengthmod 5 + voicingswitch ts. + Vowelin f1=2 f2=2300 200 400 f3=100 80 + Vowelout f1=2 f2=2300 250 300 f3=100 80 brk + + IF PreVoicing THEN + FMT(dzh/xdzh) + ENDIF + + FMT(dzh/dzh) addWav(ufric/sh_pzd2) endphoneme diff --git a/phsource/phonemes b/phsource/phonemes index 237ef897..4a910405 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -1819,6 +1819,9 @@ include ph_yue // *** Tables extending base2 *** +phonemetable be base2 +include ph_belarusian + phonemetable chr base2 include ph_cherokee @@ -2046,8 +2049,3 @@ include ph_uzbek phonemetable qdb en include ph_langbelta - -phonemetable be ru -include ph_belarusian - -phonemetable ms id From 3199d7889ba862c9b28908673c6798ef875d8d59 Mon Sep 17 00:00:00 2001 From: Sergei B Date: Sat, 8 Oct 2022 22:42:25 +0200 Subject: [PATCH 2/4] Belarusian: improvements - fixed/removed not working rules in be_list - added stress to the words in be_list - fixed multi thousand transcription - removed not working rules in be_rules - added rules of palatalization, phonemes lengthen - fixed dropping of [a] at the end of words - fixed message "Full dictionary is not installed for" - added configuration in tr_languages.c - fixed/added phonemes for `Q`, `ts`, `ts;`, `dz`, `dz.`, `;` etc --- dictsource/be_list | 135 ++++++++++++++++---------------- dictsource/be_rules | 32 +++----- espeak-ng-data/lang/zle/be | 3 +- phsource/ph_belarusian | 34 +++++--- phsource/phonemes | 2 + src/libespeak-ng/tr_languages.c | 28 +++++++ 6 files changed, 133 insertions(+), 101 deletions(-) diff --git a/dictsource/be_list b/dictsource/be_list index de599ebe..e2b1833a 100644 --- a/dictsource/be_list +++ b/dictsource/be_list @@ -2,80 +2,79 @@ // Spelling-to-phoneme words for Belarusian // Letter names -а %a -_a a -_б bE -в vE -г QE -д dE -е jE -ё jO -ж z.E -з zE -і %i -_і i -_й i||n;Esklad'OvajE -к ka -л El -м Em -н En -о O -п pE -р ER -с Es -т tE -у u -_ў u||n;Esklad'OvajE -ф Ef -х xa -ц tsE -ч ts.E -ш s.a -ы i" -ь m;'ak;:i||zn'ak -э E -ю ju -я ja -' ap'OstRaf +а a $u +б bE $u +в vE $u +г QE $u +д dE $u +е jE $u +ё jO $u +ж z.E $u +з z $u +і i $u +й i||n;Esklad'OvajE +к ka $u +л El $u +м Em $u +н En $u +о O $u +п pE $u +р Er $u +с Es $u +т tE $u +у u $u +ў u||n;Esklad'OvajE +ф Ef $u +х xa $u +ц tsE $u +ч ts.E $u +ш s.a $u +ы i" $u +ь m;'ak;:i||znak +э E $u +ю ju $u +я ja $u // Numbers -_0 nul; -_1 ad;in -_2 dva -_3 tRi" -_4 ts.ati"Ri" -_5 p;ats; -_6 s.Es;ts; -_7 s;Em +_0 n'ul; +_1 adz;'in +_1f adna +_2 dv'a +_2f dz;v;'E +_3 tr'i" +_4 ts.at'i"ri" +_5 p;'ats; +_6 s.'Es;ts; +_7 s;'Em _8 v'Os;Em -_9 dz;Ev;ats; -_10 dz;Es;ats; -_11 adz;inats:ats; -_12 dvanats:ats; -_13 tRi"nats:ats; -_14 ts.ati"Rnats:ats; -_15 p;atnats:ats; -_16 s.asnats:ats; -_17 s;amnats:ats; -_18 vas;amnats:ats; -_19 dz;Ev;atnats:ats; -_2X dvats:ats; -_3X tRi"ts:ats; -_4X s'ORak -_5X p;adz;:Es;at -_6X s.Ezdz;:Es;at -_7X s;Emdz;Es;at -_8X v'Os;Emdz;Es;at -_9X dz;Ev;an'Osta +_9 dz;'Ev;ats; +_10 dz;'Es;ats; +_11 adz;'inats:ats; +_12 dvan'ats:ats; +_13 tri"n'ats:ats; +_14 ts.at'i"rnats:ats; +_15 p;atn'ats:ats; +_16 s.asn'ats:ats; +_17 s;amn'ats:ats; +_18 vas;amn'ats:ats; +_19 dz;Ev;atn'ats:ats; +_2X dv'ats:ats;|| +_3X tr'i"ts:ats;|| +_4X s'Orak|| +_5X p;adz;:Es;'at|| +_6X s.Ezdz;:Es;'at|| +_7X s;'Emdz;Es;at|| +_8X v'Os;Emdz;Es;at|| +_9X dz;Ev;an'Osta|| _0C st'O -_2C dz;v;Es;ts;E -_3C tRi"sta -_4C ts.ati"Ri"sta +_2C dz;v;'Es;ts;E +_3C tr'i"sta +_4C ts.at'i"ri"sta _5C p;ats;s'Ot _6C s.Es;ts;s'Ot _7C s;Ems'Ot _8C v,Os;Ems'Ot _9C dz;Ev;ats;s'Ot -_1MA1 ti"s;ats.a -_0MA1 ti"s;ats.i" -_0M1 ti"s;ats. +_0MB1 t'i"s;ats.a +_0MA1 t'i"s;ats.i" +_0M1 t'i"s;ats. // NOTE: in 10k > appends `_!` diff --git a/dictsource/be_rules b/dictsource/be_rules index 54cf32f8..6291c115 100644 --- a/dictsource/be_rules +++ b/dictsource/be_rules @@ -1,16 +1,11 @@ // This file is UTF8 encoded // Translation rules for Belarusian +// NOTE: LETTERGP_A doesn't work, L01 as replacement //letter which can carry vowel phoneme .L01 а е ё і о у ы э ю я -//letter which can carry consonant phoneme -.L02 б в г д ж з й к л м н нн п р с сс т ф х ц ч ш -//letter which can carry forward sibilant (like с) -//.L03 з дз с ц -//letter which can carry backward sibilant (like ш) -//.L04 ж дж ш ч -// This is more economic way to express assimilation by sibilation than using L03 and L04 +// This is more economic way to express assimilation by sibilation .replace сш шш сч шч @@ -36,10 +31,9 @@ г Q // ɣ .group д - д d[ - дз dz // d̻͡z̪ - ддз dz: - дж dz. // ɖ͡ʐ + д d + дз dz + дж dz. .group е е ;E // ʲɛ @@ -49,7 +43,7 @@ L01) е jE .group ё - ё ;'O // ʲɔ + ё ;'O // ʲ'ɔ _) ё j'O ') ё j'O ь) ё j'O @@ -57,14 +51,13 @@ .group ж ж z. // ʐ - жж z.: .group з з z .group і і i - L02) і ;i + C) і ;i .group й й j @@ -74,14 +67,12 @@ .group л л l - лл l: .group м м m .group н н n - нн n: .group о о 'O @@ -90,14 +81,13 @@ п p .group р - р R + р r .group с с s - сс s: .group т - т t[ + т t .group у у u @@ -112,7 +102,7 @@ х x .group ц - ц ts // t̻͡s̪ + ц ts // t͡s цц ts: .group ч @@ -124,7 +114,7 @@ шш s.: .group ы - ы i" // (ɨ + ы i" // ɨ .group ь ь ; // ʲ diff --git a/espeak-ng-data/lang/zle/be b/espeak-ng-data/lang/zle/be index 174b6a39..31b14e53 100644 --- a/espeak-ng-data/lang/zle/be +++ b/espeak-ng-data/lang/zle/be @@ -1,5 +1,4 @@ name Belarusian language be -replace 03 a a# -dict_min 20000 +dict_min 2000 speed 95 diff --git a/phsource/ph_belarusian b/phsource/ph_belarusian index 80645bac..ec7db29a 100644 --- a/phsource/ph_belarusian +++ b/phsource/ph_belarusian @@ -16,16 +16,21 @@ phoneme i" FMT(vowel/ii#_2) endphoneme +phoneme Q + import_phoneme base1/Q" + ipa ɣ +endphoneme + phoneme ts CALL consonants/ts voicingswitch dz - ipa t̻͡s̪ + ipa t͡s endphoneme phoneme ts; CALL base1/tS; voicingswitch dz; - ipa t̻͡s̪ʲ + ipa t͡sʲ endphoneme phoneme ts. @@ -40,13 +45,14 @@ endphoneme phoneme dz CALL consonants/dz voicingswitch ts - ipa d̻͡z̪ + ipa d͡z endphoneme phoneme dz; + import_phoneme pl/dz; CALL base1/dZ; voicingswitch ts; - ipa d̻͡z̪ʲ + ipa d͡zʲ endphoneme phoneme dz. @@ -56,10 +62,18 @@ phoneme dz. voicingswitch ts. Vowelin f1=2 f2=2300 200 400 f3=100 80 Vowelout f1=2 f2=2300 250 300 f3=100 80 brk - - IF PreVoicing THEN - FMT(dzh/xdzh) - ENDIF - - FMT(dzh/dzh) addWav(ufric/sh_pzd2) +endphoneme + +phoneme r + liquid trl + lengthmod 6 + ipa r + length 80 + FMT(r3/r_trill2) addWav(r3/r_trill2.wav, 65) +endphoneme + +phoneme ; + liquid pzd + lengthmod 0 + ipa ʲ endphoneme diff --git a/phsource/phonemes b/phsource/phonemes index 4a910405..0529aa28 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -2049,3 +2049,5 @@ include ph_uzbek phonemetable qdb en include ph_langbelta + +phonemetable ms id diff --git a/src/libespeak-ng/tr_languages.c b/src/libespeak-ng/tr_languages.c index bbc0d54d..dee887a6 100644 --- a/src/libespeak-ng/tr_languages.c +++ b/src/libespeak-ng/tr_languages.c @@ -538,6 +538,34 @@ Translator *SelectTranslator(const char *name) tr->encoding = ESPEAKNG_ENCODING_ISO_8859_6; SetArabicLetters(tr); break; + case L('b', 'e'): // Belarusian + { + static const unsigned char stress_amps_be[8] = { 12, 10, 8, 8, 0, 0, 16, 17 }; + static const short stress_lengths_be[8] = { 160, 140, 200, 140, 0, 0, 240, 160 }; + static wchar_t vowels_be[] = { // offset by 0x420 -- а е ё о у ы э ю я і + 0x10, 0x15, 0x31, 0x1e, 0x23, 0x2b, 0x2d, 0x2e, 0x2f, 0x36, 0 + }; + static const unsigned char consonants_be[] = { // б в г д ж з й к л м н п р с т ф х ц ч ш ў + 0x11, 0x12, 0x13, 0x14, 0x16, 0x17, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1f, 0x20, 0x21, 0x22, 0x24, 0x25, 0x26, 0x27, 0x28, 0x3e, 0 + }; + + tr->langopts.stress_flags = S_NO_AUTO_2 | S_NO_DIM; // don't use secondary stress + tr->letter_bits_offset = OFFSET_CYRILLIC; + tr->transpose_min = 0x430; // convert cyrillic from unicode into range 0x01 to 0x2f + tr->transpose_max = 0x45e; + memset(tr->letter_bits, 0, sizeof(tr->letter_bits)); + SetLetterBits(tr, LETTERGP_A, (char *)vowels_be); + SetLetterBits(tr, LETTERGP_C, (char *)consonants_be); + SetLetterBits(tr, LETTERGP_VOWEL2, (char *)vowels_be); + + SetupTranslator(tr, stress_lengths_be, stress_amps_be); + tr->encoding = ESPEAKNG_ENCODING_ISO_8859_5; + tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words + tr->langopts.stress_rule = STRESSPOSN_1L; + tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED; + tr->langopts.numbers2 = NUM2_THOUSANDPLEX_VAR_THOUSANDS | NUM2_THOUSANDS_VAR1; // variant numbers before thousands + } + break; case L('b', 'g'): // Bulgarian { SetCyrillicLetters(tr); From 77fff158229f244fda742000e25735cb66050277 Mon Sep 17 00:00:00 2001 From: Sergei B Date: Thu, 13 Oct 2022 00:26:24 +0200 Subject: [PATCH 3/4] Belarusian: added tests added tests to: - language-numbers-cardinal.test - tests/language-phonemes.test - tests/language-pronunciation.test --- tests/language-numbers-cardinal.test | 8 ++++++++ tests/language-phonemes.test | 2 +- tests/language-pronunciation.test | 5 +++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/tests/language-numbers-cardinal.test b/tests/language-numbers-cardinal.test index 4a042750..98d50494 100755 --- a/tests/language-numbers-cardinal.test +++ b/tests/language-numbers-cardinal.test @@ -4,6 +4,14 @@ # European Style (hundred, thousand, -illion/-illiard) +echo "... be (Belarusian)" # short scale + +test_phon be "n'ul; adz;'in dv'a tr'i\" ts.at'i\"ri\" p;'ats; s.'Es;ts; s;'Em v'Os;Em dz;'Ev;ats;" "0 1 2 3 4 5 6 7 8 9" "units" +test_phon be "dz;'Es;ats; adz;'inats:ats; dvan'ats:ats; tri\"n'ats:ats; ts.at'i\"rnats:ats; p;atn'ats:ats; s.asn'ats:ats; s;amn'ats:ats; vas;amn'ats:ats; dz;Ev;atn'ats:ats;" "10 11 12 13 14 15 16 17 18 19" "teens" +test_phon be "dv'ats:ats; adz;'in tr'i\"ts:ats; s'Orak p;adz;:Es;'at s.Ezdz;:Es;'at s;'Emdz;Es;at v'Os;Emdz;Es;at dz;Ev;an'Osta" "21 30 40 50 60 70 80 90" "tens" +test_phon be "st'O adz;'inats:ats; dz;v;'Es;ts;E dv'ats:ats; dv'a tr'i\"sta ts.at'i\"ri\"sta p;ats;s'Ot s.Es;ts;s'Ot s;Ems'Ot v,Os;Ems'Ot dz;Ev;ats;s'Ot" "111 222 300 400 500 600 700 800 900" "hundreds" +test_phon be "adna t'i\"s;ats.a dz;v;'Es;ts;E tr'i\"ts:ats; ts.at'i\"ri\" dz;v;'E t'i\"s;ats.i\" tr'i\"sta s'Orak tr'i\" t'i\"s;ats.i\" ts.at'i\"ri\"sta ts.at'i\"ri\" t'i\"s;ats.i\" p;'ats; t'i\"s;ats. dz;'Es;ats; t'i\"s;ats. dz;'Es;ats; t'i\"s;ats._! adz;'in" "1234 2340 3400 4000 5000 10000 10001" "thousands" + echo "... en (English)" # short scale test_phon en "z'i@roU w'0n t'u: Tr'i: f'o@ f'aIv s'Iks s'Ev@n 'eIt n'aIn" "0 1 2 3 4 5 6 7 8 9" "units" diff --git a/tests/language-phonemes.test b/tests/language-phonemes.test index a616e176..9b178a52 100755 --- a/tests/language-phonemes.test +++ b/tests/language-phonemes.test @@ -22,7 +22,7 @@ test_phwav ar b102bcd61f4a81e22cb7a398691d2703fd5ace46 "ma na pa ta ka qa ?a ba test_phwav as 05d4cca91fc3447ae8b6acd7892790dd364e8e23 "ma na Na pa ta ka p#a t#a k#a ba da ga b#a d#a g#a sa xa Xa ha tSa tS#a za wa ra ja la _:_ ma mi mu me m& mo mO mV ma~ mi~ mu~ me~ m&~ mo~ mO~ moj mo~j mow mo~w mew maV m@" test_phwav az 7bdb78c37433a47fb3b15808071b1a916202400c "ma na pa ba ta da tSa dZa tsa dza ca Ja Ca ka ga fa va sa za Sa Za xa Qa ha la ja wa Ra *a _:_ mi me m& my mW mu mo ma m@" test_phwav ba cf21e5edc1227d3483f49305fbb39e201e5a7f97 "ma na pa ba ta da tSa dZa tsa dza ca Ja Ca ka ga fa va sa za Sa Za xa Qa ha la ja wa Ra *a _:_ mi me m& my mW mu mo ma m@" -test_phwav be 88cd154560ce202e65aa281ac7b62454806c7c6c "a O i\" tse ts;e ts.i dzi dz;o dz.u" +test_phwav be 46e35280b05300c9b7ed2a6dd0434c299689b673 "a i\" Q;E Qu tsO ts;E ts:E ts.u ts.O ts.;E ts.:a dzO dz;a dz.O dz.u" test_phwav bg 3020acb23ac0f93d5479de3b305b71fc07b5e738 "ma na n^a Na m;a pa ba ta da ka ga p;a b;a t;a d;a ca Ja tsa dza tSa dZa ts;a dz;a fa va sa za Sa Za xa Qa f;a v;a s;a z;a x;a Ra R;a wa ja l/2a la l^a _:_ mi me m@ ma mo mu" test_phwav bn 7fc6c8c6b347677885c6e973ff4dc6b2b6fa6d59 "ma na Na pa ta t.a tSa ka p#a t#a t.#a tS#a k#a ba da d.a dZa ga b#a d#a d.#a g#a fa Ba sa za Sa Za ha Ha wa la ja ra *a Ra _:_ ma mE mO me mi mi mu m& mV" test_phwav bpy 7fc6c8c6b347677885c6e973ff4dc6b2b6fa6d59 "ma na Na pa ta t.a tSa ka p#a t#a t.#a tS#a k#a ba da d.a dZa ga b#a d#a d.#a g#a fa Ba sa za Sa Za ha Ha wa la ja ra *a Ra _:_ ma mE mO me mi mi mu m& mV" diff --git a/tests/language-pronunciation.test b/tests/language-pronunciation.test index daf7c8c0..7a65f47f 100755 --- a/tests/language-pronunciation.test +++ b/tests/language-pronunciation.test @@ -19,6 +19,11 @@ X'ihO~t,Or b'ibek 'a*u b'udd#i 'atS#e 'a*u X'ihO~t,e p'OrOXp,Or b#atr'itbO*,e 'a test_phon az "byts'yn insanL'aR l&jag'&t v& hygugLa*@n'a J'W*& az'ad b&*ab'&R do:uLuRL'aR ona*'@n Syu*aLR'@ v& vidZdanLa*'@ v'aR v& b'iRbiRl&*'in& mynasib'&td& gaRdaSL'@x Runhund'a davRanmaL@d@RL'aR" "Bütün insanlar ləyaqət və hüquqlarına görə azad bərabər doğulurlar. Onarın şüuralrı və vicdanları var və bir-birlərinə münasibətdə qardaşlıq runhunda davranmalıdırlar." "Latn" test_phon ba "m'in h'in 'uL b'eD h'eD 'uLAr b'VL t'eQe" "мин һин ул беҙ һеҙ улар был теге." "Cyrl" +test_phon be "Qr'us.a tsv;'ila ap'Os.n;i Q'Od +'us;E Q'al;ini\" j'ajE +'us;E v;'al;ik;ija ras'Ox;i +d'a ap'Os.n;aQa pr'uts;ika +b'i\"l;i ws'i\"pani\" b'ujni\"m b;'Elaruz.'Ovi\"m tsv;'Etam" "Груша цвіла апошні год. Усе галіны яе, усе вялікія расохі, да апошняга пруціка, былі ўсыпаны буйным бела-ружовым цветам." "Cyrl" test_phon bg "'ax tS'udna b@Lg'arska z'em;o pol'uSvaj ts@ft;'aSti: Z'ita" "Ах чудна българска земьо, полюшвай цъфтящи жита." "Cyrl" test_phon bn "m'alOS,ij 'Obojd#,O Sr'omik,Oder b'i*udd#,e tS'OlOm,an_:_: m'egat#r'i_:_: 'ob#idZ,ane Se d'eSe S'Oto S'Oto 'ob#ib,aSik,e 'at.Ok k'O*etS#,e Se d'eSer 'imigr,eSOn p'uliS From 30105a48693f09836f9befaa7d49d6a4e568049c Mon Sep 17 00:00:00 2001 From: Sergei B Date: Thu, 13 Oct 2022 01:22:06 +0200 Subject: [PATCH 4/4] Changelog: add authors of changes in Belarusian --- ChangeLog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog.md b/ChangeLog.md index be503fed..5371d9ec 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -11,7 +11,7 @@ The espeak-ng project is a fork of the espeak project. updated languages: * ba (Bashkir) -- Andiv06 -* be (Belarusian) -- Andiv06 +* be (Belarusian) -- Andiv06, bespsm, Alaksiej Stankievič * cmn (Mandarin) -- Cameron Wong * en (English) -- Bill Dengler * es (Spanish) -- Sukil Etxenike