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 diff --git a/dictsource/de_list b/dictsource/de_list index 9d312675..178b868f 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 @@ -643,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@ @@ -655,6 +659,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 @@ -689,6 +694,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 @@ -870,6 +876,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 +903,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 +912,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 +953,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..73186904 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:_! @@ -894,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 @@ -1041,6 +1046,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 @@ -1053,6 +1059,7 @@ formal) ie =I@ _) s (plA S _) s (plend s _) s (prA S + spräch SprE:C _) s (quA s _) s (tA S _) s (trA S @@ -1093,6 +1100,7 @@ formal) ie =I@ st (art St st (ä St st (eh St + st (off St st (ö St st (rich St st (ü St @@ -1130,6 +1138,7 @@ formal) ie =I@ soldat z%OldA:t &) so (rt_ s_|O summe zUm@ + synaps zy:n'aps speed _^_EN stau) ss s @@ -1294,6 +1303,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 +1451,7 @@ formal) ie =I@ äb (t_ E:p äg (t_ E:k + är (_ 'E:r t) ät (_ 'E:t ä (um_N 'E: 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 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 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..a90f3347 100644 --- a/dictsource/vi_rules +++ b/dictsource/vi_rules @@ -81,8 +81,9 @@ ỵ ỵ //================================ .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 ô á à ả ã ạ ù ú ủ ũ ụ ắ ằ ẳ ẵ ặ ấ ầ ẩ ẫ ậ ó ò ỏ õ ọ ố ồ ổ ỗ ộ ư ứ ừ ử ữ ự ơ ớ ờ ở ỡ ợ +.L05 o ó ò ỏ õ ọ ô ố ồ ộ ỗ ổ .group b b b _) b _b @@ -91,20 +92,18 @@ ỵ ỵ .group c - c g //k + c k //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 ce (_ _^_EN _) cl _^_EN - + // c (L05 kh + - - - .group d @@ -267,8 +266,8 @@ ỵ ỵ .group q q k - q (_ kh - qu w //kw + q (_ k + qu kw //kw @@ -286,7 +285,7 @@ ỵ ỵ .group s - s s. // try [s.] [s] [S] + s s // try [s.] [s] [S] _) sh _^_EN @@ -390,7 +389,7 @@ ỵ ỵ a (L01 _^_EN ai (L02 _^_EN a (@ _^_EN - + a (L03 a .group à @@ -470,7 +469,7 @@ ỵ ỵ .group ắ ắ a3 - + ắk a3c @@ -777,7 +776,7 @@ ỵ ỵ oả o@4 oã o@5 oạ o@6 - oo o@ + oo O oi OI oì OI2 oí OI3 @@ -799,6 +798,7 @@ ỵ ỵ oẳ o@4 oẵ o@5 oặ o@6 + oc O#k .group ò ò O2 @@ -819,7 +819,7 @@ ỵ ỵ óa o@3 //ó (A w3 óng O#3 óe o&3 - + óc O#3k @@ -858,7 +858,7 @@ ỵ ỵ ọa o@6 //ọ (A w6 ọng O#6 ọe o&6 - + ọc O#6k @@ -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 @@ -1317,8 +1322,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 +1335,12 @@ ỵ ỵ - __) - (_D cr'y2 + __) - (_D tS'y2 A_) - (_D _ C_) - (_D _ - . c'@3m_ + . tS'@3m_ . (. _: \.) . 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 5876f8bc..20de5bce 100644 Binary files a/phsource/envelopes.png and b/phsource/envelopes.png differ diff --git a/phsource/n/nm b/phsource/n/nm new file mode 100644 index 00000000..a66f7a6b Binary files /dev/null and b/phsource/n/nm differ diff --git a/phsource/ph_vietnam b/phsource/ph_vietnam index f0d2552a..0fcfd755 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,31 +54,54 @@ endphoneme phoneme a vwl starttype #@ endtype #@ - length 140 - FMT(vowel/a_4) //a_4) + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 180 + ENDIF + IF nextPh(N) OR nextPh(c) THEN + FMT(vnasal/a_n) + ELSE + //FMT(vietnam/a) //a_4) + FMT(vietnam/a_x) + ENDIF 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 + ELIF nextPh(N) THEN + length 200 ELSE - length 140 //280 + length 180 //200 ENDIF - FMT(vowel/a_8) + // FMT(vowel/a_8) + FMT(vietnam/a_2) endphoneme phoneme E vwl starttype #e endtype #e - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 180 + ENDIF FMT(vowel/e_e) //ee_3) endphoneme phoneme e vwl starttype #e endtype #e - length 140 - FMT(vowel/e) + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 180 + ENDIF +// FMT(vowel/e) + FMT(vietnam/e) endphoneme @@ -88,11 +111,14 @@ 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) ELSE - length 140 + length 180 FMT(vowel/i_4) ENDIF endphoneme @@ -102,18 +128,34 @@ 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 + length 180 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 180 + 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 + length 180 ENDIF FMT(vowel/o) // o_2) endphoneme @@ -123,8 +165,10 @@ 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 + length 180 ENDIF FMT(vnasal/u_n,60) //vowel/u_5) endphoneme @@ -133,6 +177,8 @@ 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 ENDIF @@ -145,16 +191,23 @@ 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 + length 180 ENDIF - FMT(vowel/V) //vowel/@_2) + // FMT(vowel/V) //vowel/@_2) + FMT(vietnam/V) endphoneme phoneme @: vwl starttype #@ endtype #@ - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 180 + ENDIF FMT(vowel/@_2) endphoneme @@ -165,69 +218,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 200 + 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 200 + 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 200 + 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 +301,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 200 + 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 200 + 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 200 + 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 200 + 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 200 + 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 200 + 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 200 + ENDIF FMT(vdiph/@u) endphoneme @@ -283,19 +376,31 @@ endphoneme phoneme i@ vwl starttype #i endtype #@ - length 140 + IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 240 + ELSE + length 200 + 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 200 + 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 200 + ENDIF FMT(vdiph2/uu@) endphoneme @@ -303,38 +408,64 @@ 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 200 + 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 + ELIF nextPh(k) THEN + length 140 + ELSE + length 200 + 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 200 + 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 200 + 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 200 + 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 200 + ENDIF FMT(vdiph/ooi_3) endphoneme @@ -342,32 +473,59 @@ 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 180 + 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 180 + 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 180 + 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 +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 N // si**ng** + vcd lbv nas + Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk + lengthmod 12 // longer than 'n' + IF prevPhW(isVowel) AND prev2PhW(isVowel) THEN + length 160 + ENDIF + FMT(n/nm) +endphoneme phoneme l liquid @@ -405,6 +563,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) @@ -433,15 +592,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[ diff --git a/phsource/vietnam/V b/phsource/vietnam/V new file mode 100644 index 00000000..e5a4e435 Binary files /dev/null and b/phsource/vietnam/V differ diff --git a/phsource/vietnam/a_2 b/phsource/vietnam/a_2 new file mode 100644 index 00000000..1e68a9db Binary files /dev/null and b/phsource/vietnam/a_2 differ diff --git a/phsource/vietnam/a_x b/phsource/vietnam/a_x new file mode 100644 index 00000000..ceb43126 Binary files /dev/null and b/phsource/vietnam/a_x differ diff --git a/phsource/vietnam/e b/phsource/vietnam/e new file mode 100644 index 00000000..585266a7 Binary files /dev/null and b/phsource/vietnam/e differ 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:" diff --git a/tests/language-pronunciation.test b/tests/language-pronunciation.test index d0f8977c..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@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[_| 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).