From 133fe55d0845b4cb9a33c9e29a6923f99ded6343 Mon Sep 17 00:00:00 2001 From: chrislm Date: Tue, 5 Feb 2019 13:56:26 +0100 Subject: [PATCH 01/30] IT: Improved statements for phoneme ss It: Improved rules pronounciation and exceptions --- dictsource/it_list | 19 ++++++++++++++----- dictsource/it_listx | 7 +++++-- dictsource/it_rules | 11 +++++++---- phsource/ph_italian | 10 +++++----- 4 files changed, 31 insertions(+), 16 deletions(-) diff --git a/dictsource/it_list b/dictsource/it_list index fb206fac..ec9a558a 100644 --- a/dictsource/it_list +++ b/dictsource/it_list @@ -1,6 +1,6 @@  // This file is UTF-8 encoded -// Updated 2018 september 13 by Christian Leo M, +// Updated 2019 febbruary 3 by Christian Leo M, // $alt change [e] or [o] in the stressed syllable to [E] or [O] // $alt2 change [E] or [O] in the stressed syllable to [e] or [o] @@ -13,7 +13,7 @@ _a a: b bi c tSi d d['i: -_e E: +_e e: f 'Effe g dZi h ak:a @@ -723,7 +723,7 @@ avemmo $u2+ $verbf aveste $u2+ ebbero $u1+ -avevo $u2+ $alt $verbf +avevo $u2+ $verbf avevi $u2+ $verbf aveva $u2+ $verbf avevamo $3 $verbf @@ -983,6 +983,7 @@ hardware 'a:*d[||we@-* hi h'aI $only highlander aIl'a/Nde@-* hitler $1 +hola 'O:la home hO:m homepage h'Om||p'EjdZ $onlys hooligan 'u:ligan $onlys @@ -1671,7 +1672,7 @@ sottopotere $4 sottotono $3 sovratono $3 specifici $2 -spie sp'ie +spie sp'i:e sproposit $2 stasera st,a||s'eRa steatosi $3 $alt @@ -2277,6 +2278,7 @@ aristofane $3 ariston $1 aristotele $3 arlene a@-*l'E:n +armeli $2 armida $2 asdrubale $2 asimov 'azim,ov @@ -2284,6 +2286,7 @@ asterix $1 audacity awd'asiti augias a'u:dZas avirex $1 +bach b'a:k $only bardot ba@-*d'o bartali $1 basile $2 @@ -2567,6 +2570,7 @@ Rosemarie @-*'ozm,a*i ryanair @-*'aIaneR sànchez s'antSets sánchez s'antSets +santamaria s,anta||maR'ia saša s'aSa/ saddam $2 salemi $alt @@ -3437,6 +3441,7 @@ formino $1 $alt2 formulano $1 forviano $1 $alt2 forzino $1 +fottiti $1 fotografano $2 franino $1 frantumano $2 @@ -3904,6 +3909,7 @@ ossidano $1 ossigenano $2 ostacolano $2 ostacolino $2 +ottenere ot:en'eRe ovviano $1 ovvino $1 paghino $1 @@ -4388,6 +4394,7 @@ seguitano $1 seguito s'e:gwito $noun sembrano $1 sembrino $1 +sent s'ent sensibilizzino $4 separano $2 separino $2 @@ -4453,6 +4460,7 @@ smercino $1 sniffano $1 snocciolano $1 snodano $1 +so s'O $only socializzino $3 soddisfano $2 soddisfino $2 @@ -4798,6 +4806,7 @@ zuccherano $1 (chi capita) ki||k'a:pita (dove capita) dove||k'apita (non capita) non||k'a:pita +(questo capita) kw,esto||k'apita (volte capita) v,Olte||k'a:p,ita (quando capita) kw'ando||k'apita (se capita) se||k'a:pita @@ -4830,6 +4839,7 @@ zuccherano $1 (quando desideri) kwando||_|dez'i:deRi (quale desideri) kw2ale||dez'i:deRi (quindi desideri) kw,indi||_dez'i:deRi +(tutto quanto) t,ut:okw'anto ch'era k'E*a ch'erano k'E*ano @@ -5086,4 +5096,3 @@ suol sU'Ol saran $2 $only tender $1 tener $2 $alt2 $only - diff --git a/dictsource/it_listx b/dictsource/it_listx index 42a5c71d..92c7060a 100644 --- a/dictsource/it_listx +++ b/dictsource/it_listx @@ -1277,7 +1277,8 @@ doma $alt domandone $3 domenic $alt2 domicili $3 -domin $1 +domini $2 +domino $1 domusnovas $alt don $alt2 dondolio $3 @@ -1578,6 +1579,7 @@ feltr $alt2 feltre $alt2 femin $1 $alt2 femmin $1 +femminicidi $4 femminile $3 femore $1 $alt fenicotter $alt @@ -2714,7 +2716,6 @@ ot $alt otre $alt2 ottaedr $alt ottagon $2 -ottenere $3 $alt2 ottic $alt ottim $alt ottoboni $alt @@ -2827,6 +2828,8 @@ pelot $alt pemfig $1 $alt pena $alt2 pend $alt2 +pendice $2 +pendici $2 pendio $2 pendol $alt pendul $alt diff --git a/dictsource/it_rules b/dictsource/it_rules index b42b3027..a350275c 100644 --- a/dictsource/it_rules +++ b/dictsource/it_rules @@ -1,7 +1,7 @@ // Italian translation rules // This file is UTF-8 encoded -// Last update: 2018 september 13 by Christian Leo Mameli +// Last update: 2019 febbruary 3 by Christian Leo Mameli // letter groups // A any vowel // C any consonant @@ -48,7 +48,7 @@ abb) assa (L07_ 'assa _L04Z) auguri (_ 'awguRI astano (_ 'astano // verbs - + ass) aggia (L07_ 'adZ:a/ .group à à ''a ài (K ''aI @@ -177,8 +177,8 @@ e (ssa_ e e (tr E e (ti E - e (vi_ E - e (vo_ E + e (vA_ E + av) ev (A_+ ev @) e (volA_ 'e e (zA E CC) eggia (no_ 'EdZ:a @@ -369,6 +369,7 @@ @A) lo (gA_ =lo @A) lo (ghY_ =lo _) l' (P2t l + scu) laccia (L07_ l'atS:a/ lasciati (_ l,a/S'atI lascia (L07_ l'aSa _) lecca (L07_ l'ek:a @@ -512,6 +513,7 @@ tera) pi (A_ p'i tro) pi (A_ p'i pensa (L07_ p'Ensa + premer (L04_ p@-*'Eme@-* .group q q k @@ -759,3 +761,4 @@ C_) - (_D _ 's (_S2t s + diff --git a/phsource/ph_italian b/phsource/ph_italian index 4e978ff2..4fb0880e 100644 --- a/phsource/ph_italian +++ b/phsource/ph_italian @@ -242,11 +242,11 @@ endphoneme phoneme ss vls alv frc sib voicingswitch z - lengthmod 6 - Vowelin f1=2 f2=1700 -300 300 f3=-100 80 - Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 - length 170 - WAV(ufric/s, 86) + lengthmod 3 + Vowelin f1=0 f2=1700 -300 300 f3=-100 90 + Vowelout f1=2 f2=1700 -200 250 f3=-100 60 rms=20 + length 140 + WAV(ufric/s, 75) endphoneme phoneme v From 388c1bfa01f4fcd9993eb841085bc991de4c08c8 Mon Sep 17 00:00:00 2001 From: chrislm Date: Tue, 5 Feb 2019 14:19:09 +0100 Subject: [PATCH 02/30] ES: Fixes pronounciation of the word emoji in spanish language. --- dictsource/es_list | 1 - 1 file changed, 1 deletion(-) diff --git a/dictsource/es_list b/dictsource/es_list index e8d2d95b..a1c4ff39 100644 --- a/dictsource/es_list +++ b/dictsource/es_list @@ -351,7 +351,6 @@ chrome kr'owm curriculum $2 diem d'i:em $only eloquence 'elokwens -emoji em'o_|J^i english ínglish $text espeak 'isp'ik eyes 'aIs From 7c58e2d8fb466899d2619c6839ce861a1d4ea10b Mon Sep 17 00:00:00 2001 From: Valdis Vitolins Date: Sat, 9 Feb 2019 22:23:13 +0200 Subject: [PATCH 03/30] it: fix phoneme checksum --- tests/language-phonemes.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/language-phonemes.test b/tests/language-phonemes.test index 50e0d4b7..43f6f80e 100755 --- a/tests/language-phonemes.test +++ b/tests/language-phonemes.test @@ -82,7 +82,7 @@ test_lang hyw 72f392c05e74e2fce620b9e1b0dc440481f597e3 "ma na Na pa p#a ba ta t# test_lang ia 1be09d2d915404d00aacb7895edeed5ff947345a "ma na pa ba ta da ka ga tsa tSa dZa fa va sa za Sa ha ja wa la Ra _:_ ma me mo mi mu maI maU meI meU moI" test_lang id 75a57a020af2b62e3448792d3f6a945a9b2c6b75 "ma na n^a Na pa ba ta da ka ga ?a tSa dZa fa va Ta Da sa za Sa xa Qa ha ja wa la Ra R2a _:_ ma mE mO m@ me mo mi mu maI meI mOI maU m@U" test_lang is b27c88c4b4e47d80a80e690f3dfc2026821f39dd "m#a ma n#a na n^#a n^a N#a Na pa ta ca ka fa va Ta Da sa Ca J^a xa Qa ha l#a la tl#a r#a ra _:_ mi mi: mI mI: mE mE: ma ma: mO mO: mu mu: my my: mW mW: maI maI: meI meI: maU maU: moU moU: mYy mOI myI" -test_lang it 8780284c48a97327b120f554adb3c2dd5ffbc283 "ma na n^a pa ba ta da ka ga tsa dza tSa dZa fa va sa za Sa ja wa la l^a Ra *a ssa k~a tS~a dZ~a g~a Q~a S~a _:_ ma ma/ me me/ mE mi mi/ mi# mI mo mo/ mO mu mU maU maI moI" +test_lang it e2a438778434f699d9be469c4f9ea1576ec4fd03 "ma na n^a pa ba ta da ka ga tsa dza tSa dZa fa va sa za Sa ja wa la l^a Ra *a ssa k~a tS~a dZ~a g~a Q~a S~a _:_ ma ma/ me me/ mE mi mi/ mi# mI mo mo/ mO mu mU maU maI moI" test_lang ja 602ba8d6db3e45b0966f72d6404eadb0e0837930 "ma na n^a Na N\\a pa ba ta da ka ga t_sa d_za t_s\\a d_z\\a p\\a sa za s\\a z\\a Ca ha r\`a ja wa _:_ mi mu me mo ma mi~ mu~" test_lang jbo 77a00420ef9c1b40f87800f5ffee921e68a48a32 "ma na Na pa ba ta da ka ga ?a fa va xa ha tSa dZa sa za Sa Za wa ja la Ra n-a r-a l-a _:_ ma me mi mo mu m@ maI maU meI moI" test_lang ka 74a6f31909bdc9470e203a658614b6d2c961d7c3 "ma na p#a pa ba t#a ta da k#a ka ga qa ?a ts#a tsa tSa dza dZa va sa za Sa Za ca xa qa Qa ha ra la _:_ ma me mi mo mu m@ mo:" From a95f09f674be31af769e57686c263036dcedf1f5 Mon Sep 17 00:00:00 2001 From: Valdis Vitolins Date: Sat, 9 Feb 2019 22:22:00 +0200 Subject: [PATCH 04/30] hyw: fix dictionary filename --- dictsource/hy_rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dictsource/hy_rules b/dictsource/hy_rules index 775a89ed..211531d4 100644 --- a/dictsource/hy_rules +++ b/dictsource/hy_rules @@ -1,5 +1,5 @@ // translation rules for Armenian (East) -// (consonants are changed for Armenian-West in the voice file "hy-west") +// (consonants are changed for Armenian-West in the espeak-ng-data/lang/ine/hyw voice file) // This file is UTF-8 encoded // ?1 West Armenian From a3865a54b00f9fc898e67c38f1c6876d62fee9c8 Mon Sep 17 00:00:00 2001 From: Anh Hoang Nguyen Date: Wed, 30 Jan 2019 07:56:25 +0700 Subject: [PATCH 05/30] vi: modify Vietnamese phoneme rules and tone --- dictsource/vi_list | 36 +++--- dictsource/vi_rules | 25 ++-- espeak-ng-data/lang/aav/vi | 2 +- phsource/envelopes.png | Bin 20187 -> 15572 bytes phsource/ph_vietnam | 230 ++++++++++++++++++++++++++++--------- 5 files changed, 207 insertions(+), 86 deletions(-) diff --git a/dictsource/vi_list b/dictsource/vi_list index 7d8b6501..dbcad85b 100644 --- a/dictsource/vi_list +++ b/dictsource/vi_list @@ -29,41 +29,41 @@ _2 h'a:I // hai _3 _b'a: // ba _4 _b'o3n // bốn _5 n'am // năm -_6 s.'aU3 // sáu +_6 s'aU3 // sáu _7 _b'aI4 // bảy _8 t['a:3m // tám -_9 c'i3n // chín +_9 tSi3n // chín _1X m'y@2j // mười _2X h'a:I||m'y@7j // hai mươi _3X _b'a:||m'y@7j // ba mươi _4X _b'o3n||m'y@7j // bốn mươi _5X n'am||m'y@7j // năm mươi -_6X s.'aU3||m'y@7j // sáu mươi +_6X s'aU3||m'y@7j // sáu mươi _7X _b'aI4||m'y@7j // bảy mươi _8X t['a:3m||m'y@7j // tám mươi -_9X c'i3n||m'y@7j // chín mươi +_9X tSi3n||m'y@7j // chín mươi _21 h'a:I||m'y@7j||m'o3t[ _31 _b'a:||m'y@7j||m'o3t[ _41 _b'o3n||m'y@7j||m'o3t[ _51 n'am||m'y@7j||m'o3t[ -_61 s.'aU3||m'y@7j||m'o3t[ +_61 s'aU3||m'y@7j||m'o3t[ _71 _b'aI4||m'y@7j||m'o3t[ _81 t['a:3m||m'y@7j||m'o3t[ -_91 c'i3n||m'y@7j||m'o3t[ +_91 tSi3n||m'y@7j||m'o3t[ _25 h'a:I||m'y@7j||l'a7m _35 _b'a:||m'y@7j||l'a7m _45 _b'o3n||m'y@7j||l'a7m _55 n'am||m'y@7j||l'a7m -_65 s.'aU3||m'y@7j||l'a7m +_65 s'aU3||m'y@7j||l'a7m _75 _b'aI4||m'y@7j||l'a7m _85 t['a:3m||m'y@7j||l'a7m -_95 c'i3n||m'y@7j||l'a7m +_95 tSi3n||m'y@7j||l'a7m -_0C cr'am // trăm +_0C tS'am // trăm _0M1 N'a:2n // ngàn -_0M2 cr'i@6w // triệu +_0M2 tS'i@6w // triệu _0M3 t['i4 // tỷ _0and l,in^ // linh _dpt _f,@I4_ @@ -71,14 +71,14 @@ _dpt _f,@I4_ // kí hiệu - symbols ~ J'@U3N'a:5 ` J'@U3hw'i@2n -_! J'@U3c'@3mt'a:7n +_! J'@U3tS@3mt'a:7n @ a:1k'O2N # J'@U3t'a7N $max3 $ J'@U3_d'o1l'a:7 -% f'@2ncr'a7m +% f'@2ntS'a7m ^ J'@U3m'u5 & J'@U3v,a:2 -* J'@U3s.'a:U7 $max3 +* J'@U3s'a:U7 $max3 _( m'@:4Nw'a6kh _) _d'O3NNw'a6kh _- Q'a:6cN'a:7N @@ -91,16 +91,16 @@ _[ m'@:4Nw'a6khv'u@7N _] _d'O3NNw'a6khv'u@7N _| s'o4t'a4N _\ s'o4f,a:I4 -_: h'a:I1c'@3m -_; c'@3mf'@I4 +_: h'a:I1tS@3m +_; tS@3mf'@I4 _' Nw'a6kh_d'@:7n _“ Nw'a6khk'E3p _, f'@I4 -_. c'@3m -_/ s'o4cr'a:I3 +_. tS@3m +_/ s'o4tS'a:I3 _< n^'O4h'@:7n _> l'@:3nh'@:7n -_? h'OI4c'@3m +_? h'OI4tS@3m // ?? found in festival wow_vi_ptn_phrasing.scm bị $u diff --git a/dictsource/vi_rules b/dictsource/vi_rules index a9259b96..83079e67 100644 --- a/dictsource/vi_rules +++ b/dictsource/vi_rules @@ -81,7 +81,7 @@ ỵ ỵ //================================ .L01 t c ne nd k x s nt ch th me te le ce ny ry e o u re nch de p pe ph sh v ve ge r .L02 n a -.L03 t ch nh +.L03 ch nh .L04 a u ă â o ô á à ả ã ạ ù ú ủ ũ ụ ắ ằ ẳ ẵ ặ ấ ầ ẩ ẫ ậ ó ò ỏ õ ọ ố ồ ổ ỗ ộ ư ứ ừ ử ữ ự ơ ớ ờ ở ỡ ợ .group b b b @@ -93,8 +93,8 @@ ỵ ỵ .group c c g //k c (C _^_EN - c (_ kh - _) ch tS; // try [tS;] [tS] [c] c + c (_ c + _) ch tS // try [tS;] [tS] [c] c ?2 _) ch c ?1 _) ch c ch (_ c @@ -209,7 +209,7 @@ ỵ ỵ .group k - _) k k + _) k g _) kh x //kh x k (_ _^_EN @@ -266,9 +266,9 @@ ỵ ỵ .group q - q k + q g q (_ kh - qu w //kw + qu gw //kw @@ -286,7 +286,7 @@ ỵ ỵ .group s - s s. // try [s.] [s] [S] + s s // try [s.] [s] [S] _) sh _^_EN @@ -390,7 +390,7 @@ ỵ ỵ a (L01 _^_EN ai (L02 _^_EN a (@ _^_EN - + a (L03 a .group à @@ -470,7 +470,7 @@ ỵ ỵ .group ắ ắ a3 - + ắk a3c @@ -777,7 +777,7 @@ ỵ ỵ oả o@4 oã o@5 oạ o@6 - oo o@ + oo O oi OI oì OI2 oí OI3 @@ -799,6 +799,7 @@ ỵ ỵ oẳ o@4 oẵ o@5 oặ o@6 + oc O#c .group ò ò O2 @@ -819,7 +820,7 @@ ỵ ỵ óa o@3 //ó (A w3 óng O#3 óe o&3 - + óc O#3c @@ -858,7 +859,7 @@ ỵ ỵ ọa o@6 //ọ (A w6 ọng O#6 ọe o&6 - + ọc O#6c diff --git a/espeak-ng-data/lang/aav/vi b/espeak-ng-data/lang/aav/vi index 2ab8767c..c988a8e7 100644 --- a/espeak-ng-data/lang/aav/vi +++ b/espeak-ng-data/lang/aav/vi @@ -2,4 +2,4 @@ name Vietnamese (Northern) language vi words 1 -pitch 80 118 +pitch 100 180 diff --git a/phsource/envelopes.png b/phsource/envelopes.png index 5876f8bc5888a16ccf3b1d8a3d7080e9a9eff474..20de5bce8bc1d3148ac50046319c92a246168798 100644 GIT binary patch literal 15572 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 literal 20187 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⪻wqeT#dYB3u=n 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 diff --git a/phsource/ph_vietnam b/phsource/ph_vietnam index f0d2552a..8e92e8d7 100644 --- a/phsource/ph_vietnam +++ b/phsource/ph_vietnam @@ -6,44 +6,44 @@ phoneme 1 // ngang tone: level stress - Tone(34,36, envelope/p_level, NULL) // 28 29 + Tone(30, 28, envelope/p_level, NULL) // 28 29 endphoneme phoneme 2 // huyền tone: low falling stress - Tone(30, 8, envelope/p_fall, NULL) //20 8 + Tone(20, 8, envelope/p_fall, NULL) //20 8 endphoneme phoneme 3 // sắc Tone(rising stress - Tone(30, 60, envelope/p_rise, NULL) // 30 60 + Tone(30, 55, envelope/p_rise, NULL) // 30 60 endphoneme phoneme 4 // hỏi Tone(curve (dipping rising) stress - Tone(10, 55, envelope/p_fallrise, NULL) //33 31 + Tone(10, 31, envelope/p_fallrise, NULL) //33 31 endphoneme phoneme 5 // ngã tone: broken (creaking rising) stress - Tone(28,58,envelope/p_214, envelope/vi_5amp) // 28,58 20 80 + Tone(34, 60,envelope/p_214, envelope/vi_5amp) // 28,58 20 80 endphoneme phoneme 6 // nặng Tone(drop (constricted) stress //length 150 // ignore because it make too short sound 75 // reduce the length of the vowel - Tone(25, 60, envelope/p_512, envelope/vi_6amp) //40 20 + Tone(34, 10, envelope/p_512, envelope/vi_6amp) //40 20 endphoneme phoneme 7 // Tone(1 (ngang) at end of clause stress - Tone(40, 35, envelope/p_fall, NULL) //40 20 + Tone(30, 28, envelope/p_fall, NULL) //40 20 endphoneme @@ -54,16 +54,22 @@ endphoneme phoneme a vwl starttype #@ endtype #@ - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vowel/a_4) //a_4) endphoneme phoneme a: vwl starttype #a endtype #a - IF nextPh(n^) OR nextPh(c) THEN + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd)THEN + length 240 + ELIF nextPh(n^) OR nextPh(c) THEN length 100 ELSE - length 140 //280 + length 140 //200 ENDIF FMT(vowel/a_8) endphoneme @@ -71,13 +77,21 @@ endphoneme phoneme E vwl starttype #e endtype #e - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vowel/e_e) //ee_3) endphoneme phoneme e vwl starttype #e endtype #e - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vowel/e) endphoneme @@ -88,6 +102,9 @@ phoneme i IF prevPhW(w) THEN VowelStart(w/wi) ENDIF + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ENDIF IF nextPh(n^) OR nextPh(c) THEN length 100 FMT(vnasal/ii_n) @@ -102,16 +119,32 @@ phoneme O vwl starttype #o endtype #o IF nextPh(kh) OR nextPh(N) THEN length 80 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 ELSE length 140 ENDIF FMT(vdiph2/o_oo) //vowel/oo) endphoneme +phoneme O+ + vwl starttype #o endtype #o + IF nextPh(kh) OR nextPh(N) THEN + length 80 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF + FMT(vowel/o) //vowel/oo) +endphoneme + phoneme o vwl starttype #o endtype #o IF nextPh(kh) OR nextPh(N) THEN length 110 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 ELSE length 140 ENDIF @@ -123,6 +156,8 @@ phoneme u vwl starttype #u endtype #u IF nextPh(kh) OR nextPh(N) THEN // hear as ung sound length 120 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 ELSE length 140 ENDIF @@ -133,8 +168,10 @@ phoneme y vwl starttype #u endtype #u IF nextPh(kh) OR nextPh(N) THEN length 120 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 ELSE - length 180 + length 140 ENDIF FMT(vowel/u#_5) endphoneme @@ -145,6 +182,8 @@ phoneme @ vwl starttype #@ endtype #a IF nextPh(kh) OR nextPh(N) OR nextPh(n^) OR nextPh(c) THEN length 120 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 ELSE length 140 ENDIF @@ -154,7 +193,11 @@ endphoneme phoneme @: vwl starttype #@ endtype #@ - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vowel/@_2) endphoneme @@ -165,69 +208,81 @@ endphoneme phoneme aI vwl starttype #a endtype #i - length 140 //250 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vdiph/&i_2) endphoneme phoneme a:I vwl starttype #a endtype #i - length 200 //250 + length 240 //250 FMT(vdiph/ai) endphoneme phoneme @I vwl starttype #@ endtype #i - length 200 //250 + length 240 //250 FMT(vdiph/@i) endphoneme phoneme @:I vwl starttype #@ endtype #i - length 200 //250 + length 240 //250 FMT(vdiph/y#i) endphoneme phoneme eI vwl starttype #e endtype #i - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vdiph/ei) endphoneme phoneme EI vwl starttype #e endtype #i - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vdiph/eei) endphoneme phoneme OI vwl starttype #o endtype #i - length 200 + length 240 FMT(vdiph/ooi_4) endphoneme phoneme oI vwl starttype #o endtype #i - length 200 + length 240 FMT(vdiph/oi) endphoneme phoneme uI vwl starttype #u endtype #i - length 200 + length 240 FMT(vdiph/ui) endphoneme phoneme yI vwl starttype #u endtype #i - length 200 + length 240 FMT(vdiph/u-i) endphoneme @@ -236,46 +291,74 @@ endphoneme phoneme aU vwl starttype #a endtype #u - length 150 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vdiph/aau_4) endphoneme phoneme a:U vwl starttype #a endtype #u - length 150 //270 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vdiph/au) endphoneme phoneme eU vwl starttype #e endtype #u - length 150 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vdiph/eu) endphoneme phoneme EU vwl starttype #e endtype #u - length 150 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vdiph/eeu) endphoneme phoneme iU vwl starttype #i endtype #u - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vdiph2/iu) endphoneme phoneme @U vwl starttype #@ endtype #u - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vdiph/@u_3) endphoneme phoneme @:U vwl starttype #@ endtype #u - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vdiph/@u) endphoneme @@ -283,19 +366,31 @@ endphoneme phoneme i@ vwl starttype #i endtype #@ - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vdiph2/ii@_3) endphoneme phoneme y@ vwl starttype #i endtype #@ - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vdiph2/y-y#) endphoneme phoneme u@ vwl starttype #u endtype #@ - length 100 //200 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vdiph2/uu@) endphoneme @@ -303,38 +398,62 @@ endphoneme phoneme o# // ông vwl starttype #o endtype #o - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vnasal/a#u_n) endphoneme phoneme O# // ong vwl starttype #o endtype #o - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vnasal/&u_n) endphoneme phoneme o@ vwl starttype #o endtype #a - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vdiph2/oa) endphoneme phoneme o& vwl starttype #o endtype #o - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vietnam/oe) endphoneme phoneme iE // iê : viết, giệc vwl starttype #i endtype #e - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vietnam/ie_2) endphoneme phoneme Oi // oai sound vwl starttype #o endtype #i - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vdiph/ooi_3) endphoneme @@ -342,30 +461,40 @@ endphoneme phoneme O- // ôi southern sound vwl starttype #o endtype #i - length 150 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vnasal/oi_n) endphoneme phoneme @- // ơi southern sound vwl starttype #o endtype #i - length 150 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vdiph/@i_3) endphoneme phoneme u- // u southern sound vwl starttype #u endtype #u - length 150 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 140 + ENDIF FMT(vowel/u_3,70) endphoneme - - phoneme kh vls vel frc lengthmod 3 Vowelin f1=0 f2=2300 200 400 f3=200 80 len=30 Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20 - WAV(vietnam/_c,5) //ufric/x, 50) + WAV(ustop/k_unasp) //ufric/x, 50) endphoneme @@ -433,15 +562,6 @@ phoneme p endphoneme -phoneme n - vcd alv nas - Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 brk len=15 - Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk len=15 - lengthmod 4 - length 75 -FMT(n/nr_) -endphoneme - phoneme t[ // dental variant of /t/ vls dnt stp voicingswitch d[ From 7239b8a37a7bca5c1c536d42e26339b6c1bf1aa3 Mon Sep 17 00:00:00 2001 From: Anh Hoang Nguyen Date: Thu, 21 Feb 2019 19:03:16 +0700 Subject: [PATCH 06/30] vi: add rules for aN and ac --- phsource/ph_vietnam | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/phsource/ph_vietnam b/phsource/ph_vietnam index 8e92e8d7..7716e7f1 100644 --- a/phsource/ph_vietnam +++ b/phsource/ph_vietnam @@ -59,7 +59,11 @@ phoneme a ELSE length 140 ENDIF - FMT(vowel/a_4) //a_4) + IF nextPh(N) OR nextPh(c) THEN + FMT(vnasal/a_n) + ELSE + FMT(vowel/a_4) //a_4) + ENDIF endphoneme phoneme a: From ab7fdd5b5d87fd538fe1a601de891d272873d3e6 Mon Sep 17 00:00:00 2001 From: Anh Hoang Nguyen Date: Thu, 21 Feb 2019 19:46:48 +0700 Subject: [PATCH 07/30] vi: increase length of dipthongs --- phsource/ph_vietnam | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/phsource/ph_vietnam b/phsource/ph_vietnam index 7716e7f1..d488d9f3 100644 --- a/phsource/ph_vietnam +++ b/phsource/ph_vietnam @@ -72,6 +72,8 @@ phoneme a: length 240 ELIF nextPh(n^) OR nextPh(c) THEN length 100 + ELIF nextPh(N) THEN + length 200 ELSE length 140 //200 ENDIF @@ -215,7 +217,7 @@ phoneme aI IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 200 ENDIF FMT(vdiph/&i_2) endphoneme @@ -247,7 +249,7 @@ phoneme eI IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 200 ENDIF FMT(vdiph/ei) endphoneme @@ -258,7 +260,7 @@ phoneme EI IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 200 ENDIF FMT(vdiph/eei) endphoneme @@ -298,7 +300,7 @@ phoneme aU IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 200 ENDIF FMT(vdiph/aau_4) endphoneme @@ -309,7 +311,7 @@ phoneme a:U IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 200 ENDIF FMT(vdiph/au) endphoneme @@ -320,7 +322,7 @@ phoneme eU IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 200 ENDIF FMT(vdiph/eu) endphoneme @@ -331,7 +333,7 @@ phoneme EU IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 200 ENDIF FMT(vdiph/eeu) endphoneme @@ -341,7 +343,7 @@ phoneme iU IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 200 ENDIF FMT(vdiph2/iu) endphoneme @@ -351,7 +353,7 @@ phoneme @U IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 200 ENDIF FMT(vdiph/@u_3) endphoneme @@ -361,7 +363,7 @@ phoneme @:U IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 200 ENDIF FMT(vdiph/@u) endphoneme @@ -373,7 +375,7 @@ phoneme i@ IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 200 ENDIF FMT(vdiph2/ii@_3) endphoneme @@ -383,7 +385,7 @@ phoneme y@ IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 200 ENDIF FMT(vdiph2/y-y#) endphoneme @@ -393,7 +395,7 @@ phoneme u@ IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 200 ENDIF FMT(vdiph2/uu@) endphoneme @@ -405,7 +407,7 @@ phoneme o# // ông IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 200 ENDIF FMT(vnasal/a#u_n) endphoneme @@ -415,7 +417,7 @@ phoneme O# // ong IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 200 ENDIF FMT(vnasal/&u_n) endphoneme @@ -426,7 +428,7 @@ phoneme o@ IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 200 ENDIF FMT(vdiph2/oa) endphoneme @@ -436,7 +438,7 @@ phoneme o& IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 200 ENDIF FMT(vietnam/oe) endphoneme @@ -446,7 +448,7 @@ phoneme iE // iê : viết, giệc IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 200 ENDIF FMT(vietnam/ie_2) endphoneme @@ -456,7 +458,7 @@ phoneme Oi // oai sound IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 200 ENDIF FMT(vdiph/ooi_3) endphoneme From b6c5680ba4e66c87da1d08661620b248400698c0 Mon Sep 17 00:00:00 2001 From: Anh Hoang Nguyen Date: Thu, 21 Feb 2019 20:13:20 +0700 Subject: [PATCH 08/30] vi: modify rule for qu --- dictsource/vi_rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dictsource/vi_rules b/dictsource/vi_rules index 83079e67..780f2caa 100644 --- a/dictsource/vi_rules +++ b/dictsource/vi_rules @@ -268,7 +268,7 @@ ỵ ỵ .group q q g q (_ kh - qu gw //kw + qu khw //kw From 60a6015b717f68f0cf9189af28d22d0d6ec16602 Mon Sep 17 00:00:00 2001 From: Anh Hoang Nguyen Date: Thu, 21 Feb 2019 20:36:19 +0700 Subject: [PATCH 09/30] vi: add rules for .group c --- dictsource/vi_rules | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/dictsource/vi_rules b/dictsource/vi_rules index 780f2caa..a3bec386 100644 --- a/dictsource/vi_rules +++ b/dictsource/vi_rules @@ -83,6 +83,7 @@ ỵ ỵ .L02 n a .L03 ch nh .L04 a u ă â o ô á à ả ã ạ ù ú ủ ũ ụ ắ ằ ẳ ẵ ặ ấ ầ ẩ ẫ ậ ó ò ỏ õ ọ ố ồ ổ ỗ ộ ư ứ ừ ử ữ ự ơ ớ ờ ở ỡ ợ +.L05 o ó ò ỏ õ ọ ô ố ồ ộ ỗ ổ .group b b b _) b _b @@ -100,11 +101,9 @@ ỵ ỵ ch (_ c ce (_ _^_EN _) cl _^_EN - + c (L05 kh + - - - .group d From 2544d2fddd7368e09a39010ce45e8d627188d3a7 Mon Sep 17 00:00:00 2001 From: Anh Hoang Nguyen Date: Fri, 22 Feb 2019 06:36:05 +0700 Subject: [PATCH 10/30] vi: modify length for vowels --- phsource/ph_vietnam | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/phsource/ph_vietnam b/phsource/ph_vietnam index d488d9f3..0aafe609 100644 --- a/phsource/ph_vietnam +++ b/phsource/ph_vietnam @@ -57,7 +57,7 @@ phoneme a IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 180 ENDIF IF nextPh(N) OR nextPh(c) THEN FMT(vnasal/a_n) @@ -75,7 +75,7 @@ phoneme a: ELIF nextPh(N) THEN length 200 ELSE - length 140 //200 + length 180 //200 ENDIF FMT(vowel/a_8) endphoneme @@ -86,7 +86,7 @@ phoneme E IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 180 ENDIF FMT(vowel/e_e) //ee_3) endphoneme @@ -96,7 +96,7 @@ phoneme e IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 180 ENDIF FMT(vowel/e) endphoneme @@ -115,7 +115,7 @@ phoneme i length 100 FMT(vnasal/ii_n) ELSE - length 140 + length 180 FMT(vowel/i_4) ENDIF endphoneme @@ -128,7 +128,7 @@ phoneme O ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 180 ENDIF FMT(vdiph2/o_oo) //vowel/oo) endphoneme @@ -140,7 +140,7 @@ phoneme O+ ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 180 ENDIF FMT(vowel/o) //vowel/oo) endphoneme @@ -152,7 +152,7 @@ phoneme o ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 180 ENDIF FMT(vowel/o) // o_2) endphoneme @@ -165,7 +165,7 @@ phoneme u ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 180 ENDIF FMT(vnasal/u_n,60) //vowel/u_5) endphoneme @@ -177,7 +177,7 @@ phoneme y ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 180 ENDIF FMT(vowel/u#_5) endphoneme @@ -191,7 +191,7 @@ phoneme @ ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 180 ENDIF FMT(vowel/V) //vowel/@_2) endphoneme @@ -202,7 +202,7 @@ phoneme @: IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 180 ENDIF FMT(vowel/@_2) endphoneme @@ -470,7 +470,7 @@ phoneme O- // ôi southern sound IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 180 ENDIF FMT(vnasal/oi_n) endphoneme @@ -480,7 +480,7 @@ phoneme @- // ơi southern sound IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 180 ENDIF FMT(vdiph/@i_3) endphoneme @@ -490,7 +490,7 @@ phoneme u- // u southern sound IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE - length 140 + length 180 ENDIF FMT(vowel/u_3,70) endphoneme From 8356a182a9eb13d6e9ed69034333f819b474b330 Mon Sep 17 00:00:00 2001 From: Valdis Vitolins Date: Wed, 27 Feb 2019 16:02:08 +0200 Subject: [PATCH 11/30] vi: update language pronunciation test --- tests/language-pronunciation.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/language-pronunciation.test b/tests/language-pronunciation.test index d0f8977c..84ee489d 100755 --- a/tests/language-pronunciation.test +++ b/tests/language-pronunciation.test @@ -111,7 +111,7 @@ test_phonemes tn "Latn" "B'aTU B'oKl B'a ts'i:tswl B'a g,olUl,os-'igill_:_: ll g test_phonemes tr "Latn" "piZ'amaL@ hast'a j'a:@z SofW*'E tSabudZ'ak Jyv&nd'I\nSISlid'E byj'Yk tS'Wp j@:@nLa*'@" "Pijamalı hasta yağız şoföre çabucak güvendi. Şişli’de büyük çöp yığınları." test_phonemes tt "Cyrl" "b0rL'Vq keSel'&r d'& 0z'0t h'&m 'yz 0brujLAr'V h'&m xoquqLAr'V jAGVnn'An t'iN bup'Vp tuAp'Ar\n0L0rG'A 0q'VL h'&m wWZ;d'An birelQ'&n h'&m b'&rb&rsen'& q0r0t'A tuGAnnArS;'A mWnAs&b&tt'& buLVrG'A tieSl'&r" "Барлык кешеләр дә азат һәм үз абруйлары һәм хокуклары ягыннан тиң бупып туапар. Аларга акыл һәм вөҗдан бирелгән һәм бәр-бәрсенә карата туганнарча мөнасәбәттә булырга тиешләр." test_phonemes ur "Arab" "t.#'Vnd. m'e~\n'e:k q'VH@t z'Vda ga:'o:n se: g'Vz@Rte: v'aqt 'e:k c'Vr.@cr.e:\nb'a:s@R 'o: f'a:RIQ S'axs. k'o: b'a:z J'Vl p'VRi n'Uma: 'aZ@dHe: naz.'aR 'a:e:" "ٹھنڈ میں، ایک قحط زدہ گاؤں سے گذرتے وقت ایک چڑچڑے، باأثر و فارغ شخص کو بعض جل پری نما اژدہے نظر آئے۔" -test_phonemes vi "Latn" "t['@3t[_| g'a:4_| m,OI6_| N'y@2j_| s.'i1n^_| z'a:1_| d_'eU2_| d_,y@6kh_| t['y6_| z'O1_| v,a:2_| _b'i2n^_| d_'a4N_| v'e2_| n^'@1n_| f'@4m_| v,a:2_| w'i@2n_| l'@:I6_|\nm,OI6_| g,O1n_| N'y@2j_| d_'eU2_| d_,y@6kh_| t['a:U6_| h'o@3_| _b'a:1n_| tS;,O1_| l'i3_| tS'i3_| v,a:2_| l'y@1N_| t['@1m_| v,a:2_| g'@2n_| f,a:I4_| d_'oI3_| s'y4_| v,@:I3_| n^'aU1_| tS'O#1_| t['i2n^_| 'a:1n^_| 'E7m_|" "Tất cả mọi người sinh ra đều được tự do và bình đẳng về nhân phẩm và quyền lợi. Mọi con người đều được tạo hóa ban cho lý trí và lương tâm và cần phải đối xử với nhau trong tình anh em." +test_phonemes vi "Latn" "t['@3t[_| g'a:4_| m,OI6_| N'y@2j_| s'i1n^_| z'a:1_| d_'eU2_| d_,y@6c_| t['y6_| z'O1_| v,a:2_| _b'i2n^_| d_'a4N_| v'e2_| n^'@1n_| f'@4m_| v,a:2_| khw'i@2n_| l'@:I6_|\nm,OI6_| kh,O1n_| N'y@2j_| d_'eU2_| d_,y@6c_| t['a:U6_| h'o@3_| _b'a:1n_| tS,O1_| l'i3_| tS'i3_| v,a:2_| l'y@1N_| t['@1m_| v,a:2_| g'@2n_| f,a:I4_| d_'oI3_| s'y4_| v,@:I3_| n^'aU1_| tS'O#1_| t['i2n^_| 'a1n^_| 'E7m_|" "Tất cả mọi người sinh ra đều được tự do và bình đẳng về nhân phẩm và quyền lợi. Mọi con người đều được tạo hóa ban cho lý trí và lương tâm và cần phải đối xử với nhau trong tình anh em." ##### Fallback to other languages in different scripts (language switch). From 18c91eeb2973609ddaf00b3c0c8072bf9ae2143a Mon Sep 17 00:00:00 2001 From: Valdis Vitolins Date: Wed, 27 Feb 2019 16:05:12 +0200 Subject: [PATCH 12/30] vi: update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4bb4e833..20e20d62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -67,6 +67,7 @@ updated languages: * ru (Russian) -- Valdis Vitolins, Reece Dunn * sd (Sindhi) -- Ejaz Shah * ur (Urdu) -- Ejaz Shah +* vi (Vietnamese) -- Anh Hoang Nguyen ### 1.49.2 - 2017-09-24 From b8baa1e6cd9dfa262687b68fd713e1edfb96de5b Mon Sep 17 00:00:00 2001 From: Valdis Vitolins Date: Wed, 27 Feb 2019 16:22:48 +0200 Subject: [PATCH 13/30] ur: updates from Ejaz Shah --- dictsource/ur_list | 7 ++++ dictsource/ur_rules | 82 +++++++++++++++++++++++++++++++++++---------- 2 files changed, 72 insertions(+), 17 deletions(-) diff --git a/dictsource/ur_list b/dictsource/ur_list index 595d75e7..b719d276 100644 --- a/dictsource/ur_list +++ b/dictsource/ur_list @@ -1434,3 +1434,10 @@ _dpt _ISaRI'Ia_ دھواں d#u:a~: گوگل gu:gUl متنوع mUtanave: +جانور Ja:nvaR +جانوروں Ja:nvaRo~: +مفید mUfi:d +ایندھن i:nd#an +(ٹڈی دل) t.Id.:i:||dal +بیشتر be:StaR +حدت HIdat diff --git a/dictsource/ur_rules b/dictsource/ur_rules index 5f218412..9762d72d 100644 --- a/dictsource/ur_rules +++ b/dictsource/ur_rules @@ -252,6 +252,7 @@ _) ای e: _)عسکر askaR _)عما(ر Ima: _)علاق Ila:q + _)عموم Umu:m .group و و o: @@ -260,7 +261,8 @@ _) ای e: و (L01 v _) و vV وع (_ u: - وّ v: + وّ v:V + وّ(L01 v: _L02L06L02)و(L02 u: L02) ونکہ (_ u:nk'e:H _L02)و(L01 av @@ -353,6 +355,7 @@ _) ای e: _)بیوقوف be:vaqu:f _)بلند bUland _)بہشت baHISt + بْ b .group پ @@ -374,6 +377,8 @@ _) ای e: _)پہن(L01 pEHn _)پہ(L02_ pEHE _)پران(L01 pURa:n + پْ p + _)پرند paRInd .group ت ت tV @@ -398,6 +403,7 @@ _) ای e: تہ(_ ta _)تصور tas.av:UR _)تحریر tEHRi:R + تْ t .group ٹ ٹ t.V @@ -411,13 +417,15 @@ _) ای e: _) ٹہ (L02 t.'EH _) ٹرین t.R'e:n _) ٹیم t.i:m + ٹْ t. .group ث ث sV ث (L01 s - ثّ ssV -ثّ (L01 ss + ثّ s:V + ثّ(L01 s: + ثْ s .group ج @@ -441,6 +449,8 @@ _) ای e: _)جھلمل J#IlmIl _)جماعت Jama:t _)جسم JIsm + جْ J + _)جتن(L01 JItn .group چ چ cV @@ -453,6 +463,7 @@ _) ای e: _) چہ (L02 c'EH _) چیز c'i:z _) چوم c'u:m + چْ c .group ح ح HV @@ -463,6 +474,7 @@ _) ای e: حکمران H,UkmaR'a:n _) حوال Hav'a:l _)حمایت HIm'a:jat + حْ H حّ H:V @@ -485,6 +497,7 @@ _) ای e: _)خوب xu:b خبردار xabaRda:R _)خاموش xa:mo:S + خْ x .group د @@ -513,22 +526,25 @@ _) ای e: دریافت daRja:ft _)دعا dUa: _)دودھ du:d# + دْ d .group ڈ ڈ d.V ڈھ d.#V ڈ (L01 d. ڈھ (L01 d.# - ڈّ d.d.V - ڈّ (L01 d.d. + ڈّ d.:V + ڈّ(L01 d.: ڈھونڈ d.#'u:nd. @) ڈز (_ d.z ڈرائیور d.R'a:jvaR + ڈْ d. .group ذ ذ zV ذ (L01 z _) ذہ (L02 z'EH + ذْ z .group ر ر RV @@ -546,6 +562,7 @@ _) ای e: _)رفت Raft _)روی(L03 Ravai _)رشوت RISvat + رْ R .group ڑ ڑ r.V @@ -554,6 +571,7 @@ _) ای e: ڑّ (L01 r.r. ڑھ r.hV ڑھ (L01 r.h + ڑْ r. .group ز ز zV @@ -563,10 +581,12 @@ _) ای e: _) زند z'Ind _) زہ (L02 z'EH _) زلزل z,alz'al + زْ z .group ژ ژ ZV ژ (L01 Z + ژْ Z .group س س sV @@ -593,7 +613,7 @@ _) ای e: L03L02)ستان(_ Ista:n L02) ستانی (_ Ist'a:ni _)س(ٹL01L03 s - _) + سْ s .group ش ش SV @@ -604,7 +624,7 @@ _) ای e: شاعر Sa:'a:IR _) شعرا S'ORa: _) شعل S'Ol - @)شت St + @)ش(ت S _) شخص S'axs. _) شہ (L02 S'EH شرمند S,aRm'Ind @@ -612,15 +632,17 @@ _) ای e: L03)شنز(_ Sanz شعور Sau:R _)ششدر SaSdaR + شْ S .group ص ص s.V ص (L01 s. - صّ ssV - صّ (L01 ss + صّ s.:V + صّ (L01 s.: صوب s.'u:b _)صنف s.Inf _)صفت s.Ifat + صْ s. .group ض ض zV @@ -628,26 +650,31 @@ _) ای e: ضّ z:v ضّ (L01 z: ضرور zaRu:R + ضْ z .group ط ط tV طھ t#V ط (L01 t طھ (L01 t# - طّ ttV - طّ (L01 tt + طّ t:V + طّ (L01 t: + طْ t .group ظ ظ z.V ظ (L01 z. - ظّ z.z.V - ظّ (L01 z.z. + ظّ z.:V + ظّ (L01 z.: + ظْ z. .group غ غ QV غ (L01 Q - غّ QQV - غّ (L01 QQ + غّ Q:V + غّ (L01 Q: + غْ Q + _)غذا QIza: .group ف ف fV @@ -658,16 +685,18 @@ _) ای e: _) فہ (L02 f'EH فلم f'Ilm _)فریب faRe:b + فْ f .group ق ق qV ق (L01 q - قّ qqV - قّ (L01 qq + قّ q:V + قّ (L01 q: قاعد q'a:jd _) قسط q'Ist _) قیا q'aja: _)قصور qUs.u:R + قْ q .group ک ک kV @@ -690,6 +719,8 @@ _) ای e: _)کھجور k#aJu:R _)کھچ k#Ic _)کھد(L01 k#Ud + کْ k + _)کیڑ ki:r. .group گ گ gV @@ -714,6 +745,7 @@ _) ای e: _)گروپ gRu:p _)گفت gUft _)گریڈ gRe:d. + گْ g .group ل ل lV @@ -726,6 +758,7 @@ _) ای e: _) لین le:n @)لڈ(_ ld. _)لاہور la:Ho:R + لْ l .group م م mV @@ -796,6 +829,8 @@ _) ای e: _)مح(L02L01 mEH _)میٹھ mi:t.# _)مت(L02L03 mUta + مْ m + _)مراد mURa:d .group ن ن nV @@ -834,6 +869,8 @@ _) ای e: _)نقص nUqs. @)نٹ(_ nt. @)ن(ج n + نْ n + _)نثار nIsa:R .group ں ں n // this should nasalize the vowel @@ -860,6 +897,8 @@ _) ای e: _) ہم (L02L02L02P2 H'am _)ہیر(L01 Hi:R _)ہدایت HId'a:jat + ہْ H + _)ہجرت HIJRat .group ۃ ۃ t @@ -873,6 +912,15 @@ _) ای e: .group ّ ّ : +.group ْ + ْ + +.group ٖ + ٖ a + +.group ٔ + ٔ + .group ً ً an From 32f12672efba3704bd1d00024c98640a206cffb8 Mon Sep 17 00:00:00 2001 From: Karl Eick Date: Sun, 3 Mar 2019 22:55:40 +0100 Subject: [PATCH 14/30] German: Fixed some more pronunciation errors --- dictsource/de_list | 11 +++++++++-- dictsource/de_rules | 7 +++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/dictsource/de_list b/dictsource/de_list index 9d312675..ccfc98a6 100644 --- a/dictsource/de_list +++ b/dictsource/de_list @@ -25,7 +25,8 @@ _. pUNkt @ 'Et ~ tIld@ \ bEkslES - +€ OYro: +° grA:d _, kOmA: _| St'A:b _: d'Op@lp,UNkt @@ -611,11 +612,13 @@ word _^_EN //===================== abort ab'Ort absentier apzEnt'i:r +absolut $3 abstinent $3 accessoire asEsw'A:r achso axz'o: adress $2 akazie $alt +akkord $2 alarm $2 allein $2 allgemein 'alg@maIn @@ -655,6 +658,7 @@ bibliothek bi:bli:o:t'e:k bisschen b'IsC@n bizarr $2 blamage $alt +bourgeoisie bUrZwAz'i: braille braIj bronchie $alt buch b'u:x @@ -870,6 +874,7 @@ rupie $alt sabbat zabat sagt zA:gt salopp $2 +sarkasmus $2 schieberegler S'i:b@re:gl3 schokolad $3 schreibung Sr'aIbUN @@ -896,8 +901,8 @@ stalagmit stalagm'It subjekt $1 tag tA:g +teint t'W~ telegen te:le:g'e:n -temporär $3 terrain tEr'W~ the D@ // English theater te:'A:t3 @@ -905,6 +910,7 @@ tja tjA: tonnage $alt tragödie $alt train tre:n +trapez $2 trolley tr'Oli: trost tr'o:st tsunami tsu:n'A:mi: @@ -945,6 +951,7 @@ zymbal $1 // Names Armin $1 +chopin SOp'W~ Djakarta dZak'artA: Djibouti dZi:b'u:ti: Fruecht fr'yCt diff --git a/dictsource/de_rules b/dictsource/de_rules index 7ec2960b..81a135fb 100644 --- a/dictsource/de_rules +++ b/dictsource/de_rules @@ -370,6 +370,7 @@ r p) ay EI eb (t_ e:p eg (t_ e:k + enz (_ 'Ents eth e:t een (_ 'e:@n @@ -556,6 +557,7 @@ r p) ay EI massa) g Z gabe gA:b@ @) ght (_ _^_EN + gleich glaIC graph grAf graph (_ gr'A:f green _^_EN @@ -673,6 +675,8 @@ r p) ay EI i (erin =i: @) ig (+ Ig# // [ig] or [iC] igh (K _^_EN + ine (_ 'i:n@ + inen (_ 'i:n@n i (i i:_! @@ -1041,6 +1045,7 @@ formal) ie =I@ _) sch (mA S _) sch (nA S _) sch (w S +schenk SENk _) sh (A S _) sh (rA S _) s (kA s // allow _sk @@ -1294,6 +1299,7 @@ formal) ie =I@ väter fE:t3 _) v (ati_ f _) v (ät f + vers (_ v'Erz _) v (ie f _) v (iet v _) v (iz f @@ -1441,6 +1447,7 @@ formal) ie =I@ äb (t_ E:p äg (t_ E:k + är (_ 'E:r t) ät (_ 'E:t ä (um_N 'E: From 7e6be46bbfb353d220b8e2431383a23aa7ef55e8 Mon Sep 17 00:00:00 2001 From: Karl Eick Date: Sun, 3 Mar 2019 23:14:23 +0100 Subject: [PATCH 15/30] Fixed two more pronunciations in cases where the long instead of the short wovel should be used --- dictsource/de_list | 1 + dictsource/de_rules | 1 + 2 files changed, 2 insertions(+) diff --git a/dictsource/de_list b/dictsource/de_list index ccfc98a6..6ef10acf 100644 --- a/dictsource/de_list +++ b/dictsource/de_list @@ -693,6 +693,7 @@ dragier draZ'i:r dritte drIt@ dschungel dZ'UN@l duett du:'Et +düst dy:st ebendaher e:b@ndah'e:r ebendahin e:b@ndah'In diff --git a/dictsource/de_rules b/dictsource/de_rules index 81a135fb..eb298f89 100644 --- a/dictsource/de_rules +++ b/dictsource/de_rules @@ -1058,6 +1058,7 @@ schenk SENk _) s (plA S _) s (plend s _) s (prA S + spräch SprE:C _) s (quA s _) s (tA S _) s (trA S From 11e4164d614413dc5e4b1d15608c6e93f1f84229 Mon Sep 17 00:00:00 2001 From: Anh Hoang Nguyen Date: Tue, 5 Mar 2019 14:25:13 +0700 Subject: [PATCH 16/30] vi: add new phoneme k --- dictsource/vi_rules | 20 ++++++++++---------- phsource/ph_vietnam | 7 +++++++ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/dictsource/vi_rules b/dictsource/vi_rules index a3bec386..5aacfe6c 100644 --- a/dictsource/vi_rules +++ b/dictsource/vi_rules @@ -92,7 +92,7 @@ ỵ ỵ .group c - c g //k + c k //k c (C _^_EN c (_ c _) ch tS // try [tS;] [tS] [c] c @@ -101,7 +101,7 @@ ỵ ỵ ch (_ c ce (_ _^_EN _) cl _^_EN - c (L05 kh + // c (L05 kh @@ -208,7 +208,7 @@ ỵ ỵ .group k - _) k g + _) k k _) kh x //kh x k (_ _^_EN @@ -265,9 +265,9 @@ ỵ ỵ .group q - q g - q (_ kh - qu khw //kw + q k + q (_ k + qu kw //kw @@ -1317,8 +1317,8 @@ ỵ ỵ .group - % f'@2n||cr'am - ! _:c'@3m_|t'a:7n_: + % f'@2n||tS'am + ! _:tS'@3m_|t'a:7n_: ! (\! // : koUl@n D_) h (_DD_ D'@:2 // omit colon in time, eg: 2:30 @@ -1330,12 +1330,12 @@ ỵ ỵ - __) - (_D cr'y2 + __) - (_D tS'y2 A_) - (_D _ C_) - (_D _ - . c'@3m_ + . tS'@3m_ . (. _: \.) . diff --git a/phsource/ph_vietnam b/phsource/ph_vietnam index 0aafe609..479f39f7 100644 --- a/phsource/ph_vietnam +++ b/phsource/ph_vietnam @@ -503,6 +503,13 @@ phoneme kh WAV(ustop/k_unasp) //ufric/x, 50) endphoneme +phoneme k + vls vel frc + lengthmod 3 + Vowelin f1=0 f2=2300 200 400 f3=200 80 len=30 + Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20 + WAV(ustop/c) +endphoneme phoneme l liquid From 312149bc509811577b172bc929f8fbff5767ba64 Mon Sep 17 00:00:00 2001 From: Anh Hoang Nguyen Date: Tue, 5 Mar 2019 15:01:35 +0700 Subject: [PATCH 17/30] vi: add new phoneme for N --- phsource/ph_vietnam | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/phsource/ph_vietnam b/phsource/ph_vietnam index 479f39f7..a7f77120 100644 --- a/phsource/ph_vietnam +++ b/phsource/ph_vietnam @@ -511,6 +511,13 @@ phoneme k WAV(ustop/c) endphoneme +phoneme N // si**ng** + vcd vel nas + Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk + lengthmod 8 // longer than 'n' + FMT(n/nr_) +endphoneme + phoneme l liquid Vowelin f1=0 f2=1700 -300 300 f3=-100 80 len=15 From 0f7813d70d6d27846cb332d777f8bfea201cecfb Mon Sep 17 00:00:00 2001 From: Anh Hoang Nguyen Date: Tue, 5 Mar 2019 15:21:16 +0700 Subject: [PATCH 18/30] vi: modify phoneme a --- phsource/ph_vietnam | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phsource/ph_vietnam b/phsource/ph_vietnam index a7f77120..c6dfb9af 100644 --- a/phsource/ph_vietnam +++ b/phsource/ph_vietnam @@ -62,7 +62,7 @@ phoneme a IF nextPh(N) OR nextPh(c) THEN FMT(vnasal/a_n) ELSE - FMT(vowel/a_4) //a_4) + FMT(vietnam/a) //a_4) ENDIF endphoneme From f0586b11a722442900b410a151a22db50977eb45 Mon Sep 17 00:00:00 2001 From: Karl Eick Date: Tue, 5 Mar 2019 22:14:35 +0100 Subject: [PATCH 19/30] More entries in list and rules for pronunciation fixes --- dictsource/de_list | 1 + dictsource/de_rules | 3 +++ 2 files changed, 4 insertions(+) diff --git a/dictsource/de_list b/dictsource/de_list index 6ef10acf..178b868f 100644 --- a/dictsource/de_list +++ b/dictsource/de_list @@ -646,6 +646,7 @@ bebung b'e:bUN baguette bag'Et balkan $1 balkon $2 +balance bal'A~s bandagier bandaZ'i:r beben be:b@n beere be:r@ diff --git a/dictsource/de_rules b/dictsource/de_rules index eb298f89..73186904 100644 --- a/dictsource/de_rules +++ b/dictsource/de_rules @@ -898,6 +898,7 @@ formal) ie =I@ nieder ni:d3 nord (L04st n%Ort nord (west n%Ort + notwend no:tvEnd nuance ny:'A~s@ .group o @@ -1099,6 +1100,7 @@ schenk SENk st (art St st (ä St st (eh St + st (off St st (ö St st (rich St st (ü St @@ -1136,6 +1138,7 @@ schenk SENk soldat z%OldA:t &) so (rt_ s_|O summe zUm@ + synaps zy:n'aps speed _^_EN stau) ss s From d1f45c975c33c75531489a683426412fc7a25285 Mon Sep 17 00:00:00 2001 From: Anh Hoang Nguyen Date: Wed, 6 Mar 2019 16:19:12 +0700 Subject: [PATCH 20/30] vi: modify rules for u (A --- dictsource/vi_rules | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/dictsource/vi_rules b/dictsource/vi_rules index 5aacfe6c..894a7abc 100644 --- a/dictsource/vi_rules +++ b/dictsource/vi_rules @@ -994,7 +994,7 @@ ỵ ỵ .group u u u - u (A w + u (A u A) u w ui uI uì uI2 @@ -1030,7 +1030,8 @@ ỵ ỵ .group ù ù u2 - ù (A w2 + ù (A u2 + ùy ui2 ùi uI2 ùa u@2 //ùng u#2 @@ -1042,7 +1043,8 @@ ỵ ỵ .group ú ú u3 - ú (A w3 + ú (A u3 + úy ui3 úi uI3 úa u@3 //úng u#3 @@ -1054,7 +1056,8 @@ ỵ ỵ .group ủ ủ u4 - ủ (A w4 + ủ (A u4 + ủy ui4 ủi uI4 ủa u@4 //ủng u#4 @@ -1066,7 +1069,8 @@ ỵ ỵ .group ũ ũ u5 - ũ (A w5 + ũ (A u5 + ũy ui5 ũi uI5 ũa u@5 //ũng u#5 @@ -1078,7 +1082,8 @@ ỵ ỵ .group ụ ụ u6 - ụ (A w6 + ụ (A u6 + ụy ui6 ụi uI6 ụa u@6 //ụng u#6 From 537fe132a7ca63cefe75b9d73f076dc0a90037ec Mon Sep 17 00:00:00 2001 From: Anh Hoang Nguyen Date: Wed, 6 Mar 2019 16:27:26 +0700 Subject: [PATCH 21/30] =?UTF-8?q?vi:=20modify=20phoneme=20length=20for=20?= =?UTF-8?q?=C4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- phsource/ph_vietnam | 1 + 1 file changed, 1 insertion(+) diff --git a/phsource/ph_vietnam b/phsource/ph_vietnam index c6dfb9af..c1dd45d5 100644 --- a/phsource/ph_vietnam +++ b/phsource/ph_vietnam @@ -554,6 +554,7 @@ phoneme d_ vcd alv stp // lengthmod 5 ipa ɗ + length 50 Vowelin f1=1 f2=1700 -300 300 f3=-100 80 len=15 Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk len=30 WAV(vietnam/dd) From a41e8bfefdb620bc073246ecc09aedd83301b243 Mon Sep 17 00:00:00 2001 From: Anh Hoang Nguyen Date: Wed, 6 Mar 2019 16:42:14 +0700 Subject: [PATCH 22/30] vi: modify phoneme length for N --- phsource/ph_vietnam | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/phsource/ph_vietnam b/phsource/ph_vietnam index c1dd45d5..55ca50b9 100644 --- a/phsource/ph_vietnam +++ b/phsource/ph_vietnam @@ -514,7 +514,10 @@ endphoneme phoneme N // si**ng** vcd vel nas Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk - lengthmod 8 // longer than 'n' + lengthmod 12 // longer than 'n' + IF prevPhW(isVowel) AND prev2PhW(isVowel) THEN + length 160 + ENDIF FMT(n/nr_) endphoneme From 973f5c0e1013904aab3dc34f5410e47332364c17 Mon Sep 17 00:00:00 2001 From: Anh Hoang Nguyen Date: Thu, 7 Mar 2019 16:47:32 +0700 Subject: [PATCH 23/30] vi: add new phoneme for N --- phsource/n/nm | Bin 0 -> 1210 bytes phsource/ph_vietnam | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 phsource/n/nm diff --git a/phsource/n/nm b/phsource/n/nm new file mode 100644 index 0000000000000000000000000000000000000000..a66f7a6bf65b68e65b3ba3b73c5472503c063bd1 GIT binary patch literal 1210 zcmd^;zfQw25XL_{j$_&cm{_PPp)M6-LQMP-kq`q50u=^$0vKTK$jHD$Ffg*ikRcDi z3m`G%0T>uM!NPY=)EM?owRLy)@9r!opFBD_JUAPjZfXFxHxaHG!;#1DWxdbMN0VsT zG0e1M?d219S*6CfV4WCHsnUI+r-xi$dNQ$Pbfuouh5{Zu+3l23r7C4e#DHE39g;2g zoPiZ#4OZ)#2|L7qaUUpjp<6N>gk(pG{E*xH9ewO!9RsW&MVFRh5zAOY#^~s~^d0(o zCRp&qdg|yMNs0(Dgjpn Date: Sun, 10 Mar 2019 03:33:40 +0700 Subject: [PATCH 24/30] vi: modify rules for oc --- dictsource/vi_rules | 6 +++--- phsource/ph_vietnam | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/dictsource/vi_rules b/dictsource/vi_rules index 894a7abc..a90f3347 100644 --- a/dictsource/vi_rules +++ b/dictsource/vi_rules @@ -798,7 +798,7 @@ ỵ ỵ oẳ o@4 oẵ o@5 oặ o@6 - oc O#c + oc O#k .group ò ò O2 @@ -819,7 +819,7 @@ ỵ ỵ óa o@3 //ó (A w3 óng O#3 óe o&3 - óc O#3c + óc O#3k @@ -858,7 +858,7 @@ ỵ ỵ ọa o@6 //ọ (A w6 ọng O#6 ọe o&6 - ọc O#6c + ọc O#6k diff --git a/phsource/ph_vietnam b/phsource/ph_vietnam index 6c01be08..b6f7cc5f 100644 --- a/phsource/ph_vietnam +++ b/phsource/ph_vietnam @@ -416,6 +416,8 @@ phoneme O# // ong vwl starttype #o endtype #o IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 + ELIF nextPh(k) THEN + length 140 ELSE length 200 ENDIF From 15be4895e1c4941f9d68be4170c18f76d7bbb533 Mon Sep 17 00:00:00 2001 From: Anh Hoang Nguyen Date: Sun, 10 Mar 2019 12:32:17 +0700 Subject: [PATCH 25/30] vi: modify phoneme a: --- phsource/ph_vietnam | 3 ++- phsource/vietnam/a_2 | Bin 0 -> 5633 bytes 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 phsource/vietnam/a_2 diff --git a/phsource/ph_vietnam b/phsource/ph_vietnam index b6f7cc5f..d23db54c 100644 --- a/phsource/ph_vietnam +++ b/phsource/ph_vietnam @@ -77,7 +77,8 @@ phoneme a: ELSE length 180 //200 ENDIF - FMT(vowel/a_8) + // FMT(vowel/a_8) + FMT(vietnam/a_2) endphoneme diff --git a/phsource/vietnam/a_2 b/phsource/vietnam/a_2 new file mode 100644 index 0000000000000000000000000000000000000000..1e68a9dbf65955e42ad3db0d6776c0692fdba20a GIT binary patch literal 5633 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 literal 0 HcmV?d00001 From b6f2786f7ccd260fa19fc04dca8dd949945f951c Mon Sep 17 00:00:00 2001 From: Anh Hoang Nguyen Date: Sun, 10 Mar 2019 12:52:54 +0700 Subject: [PATCH 26/30] =?UTF-8?q?vi:=20modify=20phoneme=20for=20group=20?= =?UTF-8?q?=C4=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- phsource/ph_vietnam | 3 ++- phsource/vietnam/a_x | Bin 0 -> 5631 bytes 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 phsource/vietnam/a_x diff --git a/phsource/ph_vietnam b/phsource/ph_vietnam index d23db54c..017705e8 100644 --- a/phsource/ph_vietnam +++ b/phsource/ph_vietnam @@ -62,7 +62,8 @@ phoneme a IF nextPh(N) OR nextPh(c) THEN FMT(vnasal/a_n) ELSE - FMT(vietnam/a) //a_4) + //FMT(vietnam/a) //a_4) + FMT(vietnam/a_x) ENDIF endphoneme diff --git a/phsource/vietnam/a_x b/phsource/vietnam/a_x new file mode 100644 index 0000000000000000000000000000000000000000..ceb431265f2fc0396fceb3700b23f335e42590ec GIT binary patch literal 5631 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 Date: Sun, 10 Mar 2019 13:04:50 +0700 Subject: [PATCH 27/30] =?UTF-8?q?vi:=20modify=20phoneme=20for=20group=20?= =?UTF-8?q?=C3=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- phsource/ph_vietnam | 3 ++- phsource/vietnam/V | Bin 0 -> 1609 bytes 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 phsource/vietnam/V diff --git a/phsource/ph_vietnam b/phsource/ph_vietnam index 017705e8..264d8019 100644 --- a/phsource/ph_vietnam +++ b/phsource/ph_vietnam @@ -195,7 +195,8 @@ phoneme @ ELSE length 180 ENDIF - FMT(vowel/V) //vowel/@_2) + // FMT(vowel/V) //vowel/@_2) + FMT(vietnam/V) endphoneme diff --git a/phsource/vietnam/V b/phsource/vietnam/V new file mode 100644 index 0000000000000000000000000000000000000000..0ac29e5c75a8ea1ad89925cbce20bf7938ac143b GIT binary patch literal 1609 zcmeH`yGjE=6o$W9vLT}8W{lTFG@=13ZxOY~ir8oqiHH|OP;9iZ30U|DHiC`a+W7!B zf`z4pPhb_W4;EGuSkG*BO|-EwAm|zXJ!k$ovvco>~Z3RaFI~ z0u4BCzmM9=ZeTVdRw!r$4L`?m=*KLpvU-&r8gP=v_{?N8BMr>FPI4{l2OmDij*KI0 zPAIX@3a8vM#}sKobkNP9M5APxWPubJ#+hZ0L&lh3fMHo1qKzb-bP*>(gqZjm^i#(% zqAtSXZ>c#Pa+vWy60=C!qI;Zc0{?}{vuSc^~%~xM8x7{Y!d+&E0 U>YUc2 Date: Sun, 10 Mar 2019 13:28:48 +0700 Subject: [PATCH 28/30] =?UTF-8?q?vi:=20modify=20phoneme=20for=20group=20?= =?UTF-8?q?=C3=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- phsource/vietnam/V | Bin 1609 -> 1609 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/phsource/vietnam/V b/phsource/vietnam/V index 0ac29e5c75a8ea1ad89925cbce20bf7938ac143b..e5a4e4356e37ebffe1bb7162f758c46d10c91a2f 100644 GIT binary patch delta 344 zcmX@fbCPF5tp5Zi2Qd{!6~-tA1_luR|NkJXgJcq85@QdL2g3jV@8x9RJI8pAk%f_g z0fZSCM0pPgL@`A%Aw;729XLvuN;a-BWyCO(fdSo21_r`rnsY$S+-$()NPR;OFjLLY NcmJU-oovAL69ASiJ0}1D delta 344 zcmX@fbCPF5tiLIfgO~`T2xAlj0|N;E|G$vcLDG!TjIjsE1L6PwZ*em4{bBsW$im3L z0KyCm6L}8^EMQ!KBoe{zz`@4EwsDOqBZip_4CrPuFc3D=oC9j+W&Kl51nQDf< M`ww;LWCNz30Ev@1+W-In From 2b8de48bfbfa8398c7a6a67dc38ab99c45f2055c Mon Sep 17 00:00:00 2001 From: Anh Hoang Nguyen Date: Sun, 10 Mar 2019 13:40:41 +0700 Subject: [PATCH 29/30] =?UTF-8?q?vi:=20modify=20phoneme=20for=20group=20?= =?UTF-8?q?=C3=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- phsource/ph_vietnam | 3 ++- phsource/vietnam/e | Bin 0 -> 6789 bytes 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 phsource/vietnam/e diff --git a/phsource/ph_vietnam b/phsource/ph_vietnam index 264d8019..0fcfd755 100644 --- a/phsource/ph_vietnam +++ b/phsource/ph_vietnam @@ -100,7 +100,8 @@ phoneme e ELSE length 180 ENDIF - FMT(vowel/e) +// FMT(vowel/e) + FMT(vietnam/e) endphoneme diff --git a/phsource/vietnam/e b/phsource/vietnam/e new file mode 100644 index 0000000000000000000000000000000000000000..585266a74747d968d8e938e6ba9351efc1a35180 GIT binary patch literal 6789 zcmcJT2YeM(_Q&6p+osRFlGjpRLJ|@}4Th3HA_`Ik0wOh#00~tHy$O+`G(nn32kE^p zNDTstqEb|fC=e-vbT$$?dkEl??Ee4%-Tmx;?q_E1J2P+Yee=HO+}}A(8r6KQX_Lkk zIGfGZk=fe9>E$g2Pn|mWWdrn6g!?Zn@U0Hd`^oeG^se*Q`4(_)VSA5Dhuvn&=kmFh zU}mui|F0#$moNvxQvqb3oY!SN6wu9gC z++wp;qxs%vmi)pIY__U32ZR*0*lZ;uUbZB{h|ji?FFJpoA4FY=j*49#cdd-O{FZp5 z(&nlcsJ_z)HeQ>r4bdXC6>6lqPHC-_Q36UOWtgI?*HuNYYm78!SUv56W3VIH zx!rZaUDa19cv8qKp;bc7eRC zXI!zaicZzB&+29d8+SCfHb;F=U8-JIW3)!l!nEybs9ImCAtPxuolZU>8>u0^DK}FB z>L%5rwbI6E>$RiW73~l0qP9g#*UqU`)y_(9IYX+&YS0lRmW03_OYG!#ybCYEYw%~T}>1+vG$riG)ES<%%n{+cB3M0l)Mz4_X$Oibu!$}{QQE&1t8AB#P z8%_Gbj9(+ANdSIZIEf}vB$QZ$C;2$J;PjPsg){)~%D2yY;!~cVZbf;o^UMgx1GXG? zo&kk}kE`I*mo-^$L~mNJ`T8@G*nMz^9h7mukn zQ{tuPbdS;Mai#TKr6t$$`8`hu%<SlOP2qQ_X>gf;hRdR z(Pv6-kKI?gd4*|}-by;1eD&2KHI}|QIypY+i%R_}%!*qP6%&}|kMgW_ec|xhKQhZ1 ziXNe5sk@XQrMvu-G)?+mdSC9Y)Ked*nOcrkTRW(hRyQacl$Po!?Y=(C%(QoOE)0tB z{@|Y;S~dKG5;ddhM86xI7d0tzV?^Ho4qfFx;Z?jny>oq5a8Afqp}&Uh4`hTd4DTEM zW#HqmOCjI-TY47<9droRK7F&6r;XH+QN}3HyXYTl)6_A_V!6EBUM{b+Rkvy3#{1?; z%X9>s51k*oes%rg8tb~_tm^FR*l(|9&$AX-nU>dDWtwJ9qmCY;9aLJ$zpxIJk#p#Q zSXs;vg5m9T5;}+u^a1)3okHKCwP*?&kLIDB=tpz{?M7ozHFQfnAYK$}p?#<(ct$Ll zK(3NHbUBq+7Td<|F`wj-ZnF8T99uy{=^|1a7%RZ%@mF{zZiXMBX($@)5&Md*#DQY2 z=tD!%MU;wn<5FZIxkzGYW7>jNr%%XSQi9CG5qKY(fcl}%s5z>P2s$7R7psVW2%CjL zLW;nIJpK&t6#5HSgf#I>F${G=b75vbquK=djz+T$S2=D zZ9DuFB3lZcl2`j#56v$;7v-J*Grm80Qk?gO#dsg{Pk7&7jQ4wL51}aUtF*fR@4RP* zw~m+?c{ciF%-K@kl(|@8P^EE+J*!_!mQt=%Uz3zorPM2>%59Hr7}+VTtG~0y9~9^8 zVBcZBW)NM{UQyps=E&QnW2_7dfq!_hG(oPdcnxJX{&3?$CTj zj(Gxz_d4^OEnUN0sjdsorp{bPZHLYAtNoPyuzi`miT$9ZS|KKH?9;MUzw)EBk}aU? z$w7P`38=F;Kr9gZp+o2~qWA$&^BeSHaZCIz9)kzrroi7L^Z+b5_&3~utRg&p3s@H* z>gF=9)KQu#t(TTa{iG7oR#uJeqiNJhFOXdFF=;_CnTwn>%qzq{UYtIa_iR>l2$x>L2Dw5MMe*>>TO_3iZ-#Z<5;u+<5 zisPA{NkLCF$kVN8d~f~C2*;wlkK!5?<9#_1T`}xo=;d*87D4Js#tAil0ETK<<}FU;)j%NTIzb#>hRkkmwf#^?Spch zpV>|86C+*E)^gPZb%#<*IU&CgdlvN6^PFLG%P4(VJ zu35=`*fGH6bWijg^IrFz^X~}m8uDGpo{%ab^@Gd#V|+clK5wYEm3Ni5z+1*w-`CVv z&lm4Qz75_;Z+%a|z0MWn9BGfX!p%O0U@X_`=ts30plEI?jg(XJM)`NSzmlw$)WUSX zVVHk4w^^<2KiVT5jU8@n!Y&Ewom~WWFjrsZtZJ|0|$&`~M zA9K>OBprW(z7!t{Glbhhj(Am!hKL%6?1)Dcl>|kDfqTX%v$0$BC%To6qp8%QhaqmK5)be;2RFj`uy#;1So~e+E+h)s!YQGi zxKrQ&$8hnOl>6fNlwo+&bwh0 z*E0t9uj`rJv7JjrmCh==qdcnEJYj9+?N#}txTLtmq$-;ej>OL@XDcnm+$`Y;91O1L zi}Yj!?Q}*v7Fdsv43|$zNz(5uO1dE- zB}T2HMeEn~DMqk4)qH5aWzDq?Sr@H5Yri$a>SCo>0ZWGL<7acdnQi*a<%Zp8pf}XK z>JGWCbcW6*Ga<%zLxV)cAjDZDrjbkYda61=Gd zia~YIyJ!o#j1;)y#7`h{Zvx%a9_+8f*aOj0^gX(ZbnJnv7~g=Ax1gEed+F#6R1SqA zCo~_5L}kz`s4CE23%*$se8CUQ|0M1Z7XtCU#3o{lct_YF3>9h$J|X%3lG6_hIR@TG zh5kwOvrf_Y{vuy}%KOXtYA@iuSE0Iok*_W#2W?A> zH$!^)Qax*fs=JOjTG`K<-9W$ZRXMqRB$DYZM=zI z8O$iq_N&8`c=;y#f__C*G9UNGopBb^_sHwO_%3>ZKA=2%M6c5m@M%6|uW7UrRp}YBmgJCTqypr^ckmB*DeeZU=rHJz zTBr(ey$L+0JN^vc#!eCmd8G+z|EI#7c`E(@R7_9Y0XN5up|!x7xEJmRx~4gf$2>lS zmVoEYMY-rI=$SZN27DqP9YBl0IvtK1(PwA_sGU);0yIF0s64Dzu@L>EQS$xIFAaIY z`}2JD@6i8q-tpd|yk~))$tuEo4mo1WDZ=|Hrf{c<@cxe41-(;*_v!i|+w}jF_riR& zu!i#@gRMsY_4>@Q;MQTGkHTtU62jWTYSp?1}=*%9ol>wMKIIwv~L*=2jM^@`cmIHY&gYw6i~fqule zU@G=-hvZ!8%y*u0wsnqnbhpP?r;UyJek~ld)G+l`&@m&GN06uH!YcA1Q`x7qA$5V~ zMKpnaLQAn<*)pk>*H@Qh!8`ZM@G4kpQ@6+EXW zR8zPoJpiJ zjt7Hhh6C@x;7bAQzz-o${T!_VjX$ff%>*A93%PMNu%8aRpK0?VzE3<31;ZlSKj*!8 zd~d}Kv$ZP1dj@%I%P7J-CpkE-NIf!NOW^ahm*e}>q38bxy#G7($l$Qg!pep3j967- zafxLSj{|a8LdahK9-rb>b{=Q-|f<-QR#CMYaujjOzCwKLK=#}VZC*zU70w8~k# z%m(HeqqiX&i}f1%8K^{hwVi5bHB8M@Rw%ucc;z>FjO>wTNukm{wuR}^R%w*{reae+ zQVY~_T2;-X9ao2{eszyBSZS`LDPxpxl~A>}x?6n&6~+{;nii^EQs=03)B(Wi>mXt4Xa6M7Z zl&8sG$amy$rJmAFc@KOg8?p~hSt3`Gw@BrrHIP^SMpx32v@>l+>(V!96Q~u=rbj7b zRaqKT1ADU$tTu~gh+U>X(u4GCxOSG_rii&%2^Pzun8mI@H8F$AbSn_}7I?=ypzF7h zW8^$JM}8!G$Qr0y&LN9{>HXw5xkU2GBgjj6sKeYPSI9}oXg?+Ik#<0HEb&4`$0RQB zyb|y!4tyk%_=pZG%WcS#&*0Ng?YV)UU=zF{9%`obzzg0cEumuC7FL|D;GM(4d*+fA zFxpnKg{%j!oekbQ5!w`}T+SxR4|3*RDr7tbkG+^#g!bb4{eRLk(cCRtbP?W@NLena z2=5QrMD9V6_&!@7XPXUl|GobHpYmS)--z!eG{1h;XkZ<%>RWbmj2^2+s;?_4@?$oZ ziexHkBKm}~e4-F7ZV+#a_rz1;VzCp{6OedG_(AwW*e0wJW(gyOPQn{Plt6^*{7L>R zejC4xpUn5+8}p@kC-385=Lhqv!TuG$lJCt&^M|+*TxYHiv<_T5?tSh{PUdUz+58xO z0-wXTv_27DOJ>lFQY_(wirMLj+j=Yd{Xt_IjUbN#s-ZX`Df_7U80XgToYcex?l zAeiSMZZPzRfpsLjm(ko<05mhxxRE pd9;Q1nGSnv?roUco6s6_Ex^(V-arrT9j Date: Sun, 10 Mar 2019 17:46:35 +0200 Subject: [PATCH 30/30] vi: update pronunciation --- tests/language-pronunciation.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/language-pronunciation.test b/tests/language-pronunciation.test index 84ee489d..bef75ee4 100755 --- a/tests/language-pronunciation.test +++ b/tests/language-pronunciation.test @@ -111,7 +111,7 @@ test_phonemes tn "Latn" "B'aTU B'oKl B'a ts'i:tswl B'a g,olUl,os-'igill_:_: ll g test_phonemes tr "Latn" "piZ'amaL@ hast'a j'a:@z SofW*'E tSabudZ'ak Jyv&nd'I\nSISlid'E byj'Yk tS'Wp j@:@nLa*'@" "Pijamalı hasta yağız şoföre çabucak güvendi. Şişli’de büyük çöp yığınları." test_phonemes tt "Cyrl" "b0rL'Vq keSel'&r d'& 0z'0t h'&m 'yz 0brujLAr'V h'&m xoquqLAr'V jAGVnn'An t'iN bup'Vp tuAp'Ar\n0L0rG'A 0q'VL h'&m wWZ;d'An birelQ'&n h'&m b'&rb&rsen'& q0r0t'A tuGAnnArS;'A mWnAs&b&tt'& buLVrG'A tieSl'&r" "Барлык кешеләр дә азат һәм үз абруйлары һәм хокуклары ягыннан тиң бупып туапар. Аларга акыл һәм вөҗдан бирелгән һәм бәр-бәрсенә карата туганнарча мөнасәбәттә булырга тиешләр." test_phonemes ur "Arab" "t.#'Vnd. m'e~\n'e:k q'VH@t z'Vda ga:'o:n se: g'Vz@Rte: v'aqt 'e:k c'Vr.@cr.e:\nb'a:s@R 'o: f'a:RIQ S'axs. k'o: b'a:z J'Vl p'VRi n'Uma: 'aZ@dHe: naz.'aR 'a:e:" "ٹھنڈ میں، ایک قحط زدہ گاؤں سے گذرتے وقت ایک چڑچڑے، باأثر و فارغ شخص کو بعض جل پری نما اژدہے نظر آئے۔" -test_phonemes vi "Latn" "t['@3t[_| g'a:4_| m,OI6_| N'y@2j_| s'i1n^_| z'a:1_| d_'eU2_| d_,y@6c_| t['y6_| z'O1_| v,a:2_| _b'i2n^_| d_'a4N_| v'e2_| n^'@1n_| f'@4m_| v,a:2_| khw'i@2n_| l'@:I6_|\nm,OI6_| kh,O1n_| N'y@2j_| d_'eU2_| d_,y@6c_| t['a:U6_| h'o@3_| _b'a:1n_| tS,O1_| l'i3_| tS'i3_| v,a:2_| l'y@1N_| t['@1m_| v,a:2_| g'@2n_| f,a:I4_| d_'oI3_| s'y4_| v,@:I3_| n^'aU1_| tS'O#1_| t['i2n^_| 'a1n^_| 'E7m_|" "Tất cả mọi người sinh ra đều được tự do và bình đẳng về nhân phẩm và quyền lợi. Mọi con người đều được tạo hóa ban cho lý trí và lương tâm và cần phải đối xử với nhau trong tình anh em." +test_phonemes vi "Latn" "t['@3t[_| k'a:4_| m,OI6_| N'y@2j_| s'i1n^_| z'a:1_| d_'eU2_| d_,y@6c_| t['y6_| z'O1_| v,a:2_| _b'i2n^_| d_'a4N_| v'e2_| n^'@1n_| f'@4m_| v,a:2_| kw'i@2n_| l'@:I6_|\nm,OI6_| k,O1n_| N'y@2j_| d_'eU2_| d_,y@6c_| t['a:U6_| h'o@3_| _b'a:1n_| tS,O1_| l'i3_| tS'i3_| v,a:2_| l'y@1N_| t['@1m_| v,a:2_| k'@2n_| f,a:I4_| d_'oI3_| s'y4_| v,@:I3_| n^'aU1_| tS'O#1_| t['i2n^_| 'a1n^_| 'E7m_|" "Tất cả mọi người sinh ra đều được tự do và bình đẳng về nhân phẩm và quyền lợi. Mọi con người đều được tạo hóa ban cho lý trí và lương tâm và cần phải đối xử với nhau trong tình anh em." ##### Fallback to other languages in different scripts (language switch).