From a3865a54b00f9fc898e67c38f1c6876d62fee9c8 Mon Sep 17 00:00:00 2001 From: Anh Hoang Nguyen Date: Wed, 30 Jan 2019 07:56:25 +0700 Subject: [PATCH] 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 zcmch<2|QJ8yFb465Zk;%<_twt3Xyq=R3elLnRXh z@~%e8llABZo6}q_T-ZrHbM$Vk>~pD=xBM`ec0+F;bPK z1qF$PM|qh}a{h$D1o`+rmO9H%_aTf+BV%J@wh3z4ZowzQYR=wBV)m8%h4S_D%eO3- zS5{v7?%mD8%q*bpZ@Q=d-L2i*w{I^rb?SI#2_N$k=h;R7+fvrq)?4}b&b++%DQS;+ zyV$|3*6HbKs+iH?1i^sGo~k!*!bEkwC%V+U#*&vF_V)I=Dyk|e@x~oW5YkAc&FQ9{ z+4TqGoh6PI3OS#0O{AvO`h8z0YclJqYEf+ni;H3}lh4c3^DbmWmYez(H=;|CF5(%uVd!wG_GWg*>{8RD% zWud1R(>&PtDlFFVQ+vCc9g5$o;_K_%&h(ZOgtf5z3-)fj7on1j0fH&5>RIlsIbNLunpe9Jx*_3G6tBZ-q{v=1+1 zILx`7=}~k4SU1T!z)NBfU0z;pn4);CQe7$k-Z)#(LJd5as)B}=mfvCKZ6v?B0pVqT zt@`)x^?NnC9*Q8v7SZwZ2U_|jZ02PS?Nx=-WM-Dzzu&CD<}=w`gfcz!Dlt<+o_D|Q zb<=#bV)QfQ>U}=b6LYrSdr$Kxx9}q}dBG>Rl4r_zyj$|0rt9r~U2%z3)BG$7FNb_M z;fi2ch@qSu$N@|brw*NF3!0h~W4TXI@%6vUm+z*a1;I zcMkd@F3hY5QR*!{@jl}E=B66LhgcLcFqogW;v4b_=jR zx1z6*cj5uI6J6^SmjNXeVLzU|r(X`XWxTt9yF;g5vdib!+WqY$1L673{0 zQ`~UH2m*U)12b1U(ysPqMOHYN1aCKOmJfT?5#k9&5tv1~g8^;&5=q*$Sw{azfmsl% zm3ARSEu}rQ{lW%JwEbZi+F%~;=V^nf$J1usQq@2kOwY{+LB6U!H6eR=i1!pUU&n{7 zRd~0~=g&Y7BFC4$XX|_QNX`emU*MrR!NtR0@0It*eDju%2N__LdpmvaRfv|!-EZWU zfO|idK^?CURGw$B*#wV(@#ok;dC#=O)jS=4K29lC)8?O-TNiChha0Ytm`do=3xo=o zbMpcXE@DQO;OZT~3_Sldl)H~L@(pc*Z4`HE+gUawyI_6D9t)uR&V_bCos)!;|hv#=Pk3c^tRw^rZoY`t2*K(&BQhd-=%P&rBjdXBg-TR;>eOtvSjLL z81mjOfbRXgs{aAxbiocxY~W@*(er&h`8DZ<7*1ek(eb4o8$TDEiK4*y3f9cd*H_#( zcT{h+$Bm&h9ej3UaV#ie3m*CFmFl%4VYAAJbm%->CLHmm(rEEf|K_e?&7vY9lm?_Zgh0Ckpy+9b^G|KZDAIruEBJP6J>lw+~(9h zXsbu&t7C^>$DpWlb5`YEmpnY=_~Mdo-xh+{U-9PFZj(cY4%rk^o>`W|pvBJLA$0Av zuGA+f%gMdC`02?W^I`|dU}azGP$)gyjvYHhb;}^q724LdOR=!AMb`8-G&DHK`K~Ou zji0*y_lR$zJ!cbBsY3|j%OYJ3%&V+i8)&*mrPf5UIbOWjKB{kM*w*&^`E$X9!^dyR z+JAWQ@@1>+{IBm2u+7HBS~y<5e0g28wXLtO&(qU$WD^{A=z{L`&-vE*6-WOb*X75} z&wSgn@1UZ9yz7PZqe3ouF|9$Wf(f1D5XJ56?E343MA8b4bdK8;CU=b9zkBz(-Ivi> z2nINZy!Hi9%>PZ+r-Ms>fBkp zCm`UmmBQfZ1Ab~Tr8*I0K{9^0#)7hCSfk-wQAtTjWo6)(BD*R=0f}U7>HM}NLmW=2 zdjbOSB_h%Nml{|#EOJ-l!DxzQJTB)zFU0d)u=SabQK<r z(O6CQW`q(`8#Irgh?dfeH-vBq#de{?8IKgaSz%KXK?tFX@FGN>p1;wWgGWs3PG=d4 zAO#^ThtsqW!rsn!^>BnNDK7-CI^t9*4{dc#k&m{LDdmTi=Hrbws^(NF?QN(jBOtxR zi6&Mno~Q1_BECvaw3VKFKkX1N6n$vlUMU6AR(G(x(1FYrMjH$f(V`vbp!gUx)U*gm zpnVBzH4#Ay2~=5OMnpdJfB##pmlc3}zDJONC?h)VU4IUS0^ zbg0_~N8T&Fr0=us8gA4Rzjf=XtD-)x>ibz4Zh0lrc3L|}IsY)S8Y*_0cD_WZFP?|9={UlGoGZEsC zv(&8!iW8GH!GlYe<_U;AfcU~D29zXA)&v2k3G!4*pPVOCT)3RhPH)HoSxVkDW)U~ZHD?^zz!q)AQm=l zgP0$y&KWmB+qBJ!)>dSJ3CUuk`>_*t@Wdy;4gz~Qbf-7|LOX;hIUYrzR_&W(gjQV7 z^$?x_LP!8@dDV`#j6Vj;0)|}LPkc09X&`bOpd-zLJ~G9#&*#*9nquBfxeA)*!bHjumiV^b~?D9k+54> z__psZ0ajTHHe`ndr9ZU(ooPOT=;4sC2t?E2uT}$52e&=#KoRcmd;9c@wY9aEjvW{CW0y|ddn#+%6Iq8G<-1`c{cdQ;K^QMFv@4Qz>r$W4 z`qc`7bM>pcuMLOV)L7qC3R?5m)6+X(@+xS34X~N*$0dZsHIFo$o36jM{nMvUyG@>r z4GksVxsx$iZt<+7JFpxePe5A1g|;0p>2;3FU-~L1FQ4SX@FYAu97E4~@)Yd@ukbyR zl8?H7P>0+0@87>=%a#nIq1LR!Uvm%QUb*(7S%kYiWdWJ%9Dn!jox^)TAXnBF2Y2t@ zZSvG~>YICWLy=Q`0=v%(9!(dQ2{@}mhY!O`@XD3N-kQiydKRxP+nqbtzrHrHZWS>5 ziL_i!GUogVK*}T8VsA%FOUsi}xd68_3$Y_`P⪻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[