diff --git a/dictsource/vi_rules b/dictsource/vi_rules index e6d86698..059ac139 100644 --- a/dictsource/vi_rules +++ b/dictsource/vi_rules @@ -364,35 +364,35 @@ ỵ ỵ .group a a a: - ai a:I - aì a:I2 - aí a:I3 - aỉ a:I4 - aĩ a:I5 - aị a:I6 - ay aI + ai a:j + aì a:j2 + aí a:j3 + aỉ a:j4 + aĩ a:j5 + aị a:j6 + ay aj ?2 ay a:I - aý aI3 - aỷ aI4 - aỹ aI5 - aỵ aI6 - ao a:U - aò a:U2 - aó a:U3 - aỏ a:U4 - aõ a:U5 - aọ a:U6 - au aU + aý aj3 + aỷ aj4 + aỹ aj5 + aỵ aj6 + ao a:w + aò a:w2 + aó a:w3 + aỏ a:w4 + aõ a:w5 + aọ a:w6 + au aw ?2 au a:U - aù aU2 - aú aU3 - aủ aU4 - aũ aU5 - aụ aU6 + aù aw2 + aú aw3 + aủ aw4 + aũ aw5 + aụ aw6 a (L01 _^_EN ai (L02 _^_EN a (@ _^_EN @@ -401,8 +401,8 @@ ỵ ỵ .group à à a:2 - ài a:I2 - ày aI2 + ài a:j2 + ày aj2 ?2 ày a:I2 à (L03 e-2 @@ -412,48 +412,48 @@ ỵ ỵ - ào a:U2 - àu aU2 + ào a:w2 + àu aw2 ?2 àu a:U2 .group á á a:3 - ái a:I3 - áy aI3 - áo a:U3 - áu aU3 + ái a:j3 + áy aj3 + áo a:w3 + áu aw3 ?2 áu a:U3 ?2 áy a:I3 á (L03 e-3 .group ả ả a:4 - ải a:I4 - ảy aI4 - ảo a:U4 - ảu aU4 + ải a:j4 + ảy aj4 + ảo a:w4 + ảu aw4 ?2 ảu a:U4 ?2 ảy a:I4 ả (L03 e-4 .group ã ã a:5 - ãi a:I5 - ãy aI5 - ão a:U5 - ãu aU5 + ãi a:j5 + ãy aj5 + ão a:w5 + ãu aw5 ?2 ãu a:U5 ?2 ãy a:I5 ã (L03 e-5 .group ạ ạ a:6 - ại a:I6 - ạy aI6 - ạo a:U6 - ạu aU6 + ại a:j6 + ạy aj6 + ạo a:w6 + ạu aw6 ?2 ạu a:U6 ?2 ạy a:I6 ạ (L03 e-6 @@ -515,7 +515,7 @@ ỵ ỵ .group â â @ ây @I - âu @U1 + âu @w1 ?2 â (L03 a ?1 â (L03 a @@ -526,7 +526,7 @@ ỵ ỵ .group ầ ầ @2 ầy @I2 - ầu @U2 + ầu @w2 ?2 ầ (L03 a2 ?1 ầ (L03 a2 @@ -537,7 +537,7 @@ ỵ ỵ .group ấ ấ @3 ấy @I3 - ấu @U3 + ấu @w3 ?2 ấ (L03 a3 ?1 ấ (L03 a3 @@ -548,7 +548,7 @@ ỵ ỵ .group ẩ ẩ @4 ẩy @I4 - ẩu @U4 + ẩu @w4 @@ -559,7 +559,7 @@ ỵ ỵ .group ẫ ẫ @5 ẫy @I5 - ẫu @U5 + ẫu @w5 @@ -570,7 +570,7 @@ ỵ ỵ .group ậ ậ @6 ậy @I6 - ậu @U6 + ậu @w6 ?2 ậ (L03 a6 ?1 ậ (L03 a6 @@ -578,12 +578,12 @@ ỵ ỵ //=========================== .group e e E - eo EU - eò EU2 - eó EU3 - eỏ EU4 - eỗ EU5 - eọ EU6 + eo Ew + eò Ew2 + eó Ew3 + eỏ Ew4 + eỗ Ew5 + eọ Ew6 e (L01 _^_EN ey (_ _^_EN e (@ _^_EN @@ -592,7 +592,7 @@ ỵ ỵ .group è è E2 - èo EU2 + èo Ew2 @@ -602,7 +602,7 @@ ỵ ỵ .group é é E3 - éo EU3 + éo Ew3 @@ -612,7 +612,7 @@ ỵ ỵ .group ẻ ẻ E4 - ẻo EU4 + ẻo Ew4 @@ -622,7 +622,7 @@ ỵ ỵ .group ẽ ẽ E5 - ẽo EU5 + ẽo Ew5 @@ -632,7 +632,7 @@ ỵ ỵ .group ẹ ẹ E6 - ẹo EU6 + ẹo Ew6 @@ -643,7 +643,7 @@ ỵ ỵ .group ê ê e - êu eU1 + êu ew1 ?2 ê (L03 @: ?2 ê (L02 @: @@ -651,7 +651,7 @@ ỵ ỵ .group ề ề e2 - ều eU2 + ều ew2 ?2 ề (L03 @:2 ?2 ề (L02 @:2 @@ -659,7 +659,7 @@ ỵ ỵ .group ế ế e3 - ếu eU3 + ếu ew3 ?2 ế (L03 @:3 @@ -667,7 +667,7 @@ ỵ ỵ .group ể ể e4 - ểu eU4 + ểu ew4 ?2 ể (L03 @:4 ?2 ể (L02 @:4 @@ -675,7 +675,7 @@ ỵ ỵ .group ễ ễ e5 - ễu eU5 + ễu ew5 ?2 ễ (L03 @:5 ?2 ễ (L02 @:5 @@ -683,7 +683,7 @@ ỵ ỵ .group ệ ệ e6 - ệu eU6 + ệu ew6 ?2 ệ (L03 @:6 ?2 ệ (L02 @:6 @@ -694,7 +694,7 @@ ỵ ỵ .group i i i - //i (A j + A) i j ia i@ ià i@2 iá i@3 @@ -707,18 +707,18 @@ ỵ ỵ iể iE4 iễ iE5 iệ iE6 - iu iU - iù iU2 - iú iU3 - iủ iU4 - iũ iU5 - iụ iU6 - iêu iU - iều iU2 - iếu iU3 - iểu iU4 - iễu iU5 - iệu iU6 + iu iw + iù iw2 + iú iw3 + iủ iw4 + iũ iw5 + iụ iw6 + iêu iEw + iều iEw2 + iếu iEw3 + iểu iEw4 + iễu iEw5 + iệu iEw6 i (L01 _^_EN i (@ _^_EN ?2 i (L03 @ @@ -729,7 +729,7 @@ ỵ ỵ ì i2 ì (A j2 ìa i@2 - ìu iU2 + ìu iw2 ?2 ì (L03 @2 ?1 ì (L03 @2 ?2 ì (L02 @2 @@ -738,7 +738,7 @@ ỵ ỵ í i3 í (A j3 ía i@3 - íu iU3 + íu iw3 ?2 í (L03 @3 ?1 í (L03 @3 ?2 í (L02 @3 @@ -747,7 +747,7 @@ ỵ ỵ ỉ i4 ỉ (A j4 ỉa i@4 - ỉu iU4 + ỉu iw4 ?2 ỉ (L03 @4 ?1 ỉ (L03 @4 ?2 ỉ (L02 @4 @@ -758,7 +758,7 @@ ỵ ỵ ĩ i5 ĩ (A j5 ĩa i@5 - ĩu iU5 + ĩu iw5 ?2 ĩ (L03 @5 ?1 ĩ (L03 @5 ?2 ĩ (L02 @5 @@ -769,7 +769,7 @@ ỵ ỵ ị i6 ị (A j6 ịa i@6 - ịu iU6 + ịu iw6 ?2 ị (L03 @6 ?1 ị (L03 @6 ?2 ị (L02 @6 @@ -781,47 +781,17 @@ ỵ ỵ .group o o O - oa o@ // modify oa sound example: hoa,khoa // o (A w - oà o@2 - oá o@3 - oả o@4 - oã o@5 - oạ o@6 + o (A w + oi Oj oo O - oi OI - oì OI2 - oí OI3 - oỉ OI4 - oĩ OI5 - oị OI6 - ong O# - oe wE // Adding oe sound example: lóe sáng,toét mắt - oai wa:I // oai sound - o (@ _^_EN - oại wa:I6 - oài wa:I2 - oái wa:I3 - oải wa:I4 - oãi wa:I5 - oă o@1 - oằ o@2 - oắ o@3 - oẳ o@4 - oẵ o@5 - oặ o@6 - oc O#k - oanh we-n^ - oành we-n^2 - oánh we-n^3 - oảnh we-n^4 - oãnh we-n^5 - oạnh we-n^6 + ong O#N + oc O#k + .group ò ò O2 - òi OI2 - òa o@2 //ò (A w2 - òng O#2 + òa wa:2 //ò (A w2 + òng O#N2 òe wE2 @@ -832,9 +802,8 @@ ỵ ỵ .group ó ó O3 - ói OI3 - óa o@3 //ó (A w3 - óng O#3 + óa wa:3 //ó (A w3 + óng O#N3 óe wE3 óc O#3k @@ -845,9 +814,8 @@ ỵ ỵ .group ỏ ỏ O4 - ỏi OI4 - ỏa o@4 //ỏ (A w4 - ỏng O#4 + ỏa wa:4 //ỏ (A w4 + ỏng O#N4 ỏe wE4 @@ -858,9 +826,8 @@ ỵ ỵ .group õ õ O5 - õi OI5 - õa o@5 //õ (A w5 - õng O#5 + õa wa:5 //õ (A w5 + õng O#N5 õe wE5 @@ -871,9 +838,8 @@ ỵ ỵ .group ọ ọ O6 - ọi OI6 - ọa o@6 //ọ (A w6 - ọng O#6 + ọa oa:6 //ọ (A w6 + ọng O#N6 ọe wE6 ọc O#6k @@ -887,16 +853,16 @@ ỵ ỵ .group ô ô o - ôi oI - ông o# // ông sound + ôi oj + ông o#N // ông sound ?2 ôi O- //south dialect ôc o#k .group ồ ồ o2 - ồi oI2 - ồng o#2 + ồi oj2 + ồng o#N2 ?2 ồi O-2 @@ -905,8 +871,8 @@ ỵ ỵ .group ố ố o3 - ối oI3 - ống o#3 + ối oj3 + ống o#N3 ?2 ối O-3 ốc o#3k @@ -915,8 +881,8 @@ ỵ ỵ .group ổ ổ o4 - ổi oI4 - ổng o#4 + ổi oj4 + ổng o#N4 ?2 ổi O-4 @@ -925,8 +891,8 @@ ỵ ỵ .group ỗ ỗ o5 - ỗi oI5 - ỗng o#5 + ỗi oj5 + ỗng o#N5 ?2 ỗi O-5 @@ -935,8 +901,8 @@ ỵ ỵ .group ộ ộ o6 - ội oI6 - // ộng o#6 + ội oj6 + ộng o#N6 ?2 ội O-6 ộc o#6k @@ -948,7 +914,7 @@ ỵ ỵ .group ơ ơ @: - ơi @:I + ơi @:j ơu @:U ?2 ơi @- //south dialect @@ -958,7 +924,7 @@ ỵ ỵ .group ờ ờ @:2 - ời @:I2 + ời @:j2 ờu @:U2 ?2 ời @-2 @@ -968,7 +934,7 @@ ỵ ỵ .group ớ ớ @:3 - ới @:I3 + ới @:j3 ớu @:U3 ?2 ới @-3 @@ -978,7 +944,7 @@ ỵ ỵ .group ở ở @:4 - ởi @:I4 + ởi @:j4 ởu @:U4 ?2 ởi @-4 @@ -988,7 +954,7 @@ ỵ ỵ .group ỡ ỡ @:5 - ỡi @:I5 + ỡi @:j5 ỡu @:U5 ?2 ỡi @-5 @@ -998,7 +964,7 @@ ỵ ỵ .group ợ ợ @:6 - ợi @:I6 + ợi @:j6 ợu @:U6 ?2 ợi @-6 @@ -1014,12 +980,12 @@ ỵ ỵ u (A w A) u w gi) u u - ui uI - uì uI2 - uí uI3 - uỉ uI4 - uĩ uI5 - uị uI6 + ui uj + uì uj2 + uí uj3 + uỉ uj4 + uĩ uj5 + uị uj6 ua u@ uà u@2 uá u@3 @@ -1042,14 +1008,19 @@ ỵ ỵ u (L01 _^_EN u (@ _^_EN // ua (L01 _^_EN -?2 u u- - +?2 u u- + uyu wiw + uỳu wiw2 + uýu wiw3 + uỷu wiw4 + uỹu wiw5 + uỵu wiw6 .group ù ù u2 - ù (A u2 - ùy ui2 - ùi uI2 + ù (A w2 + ùy wi2 + ùi uj2 ùa u@2 //ùng u#2 @@ -1060,9 +1031,9 @@ ỵ ỵ .group ú ú u3 - ú (A u3 - úy ui3 - úi uI3 + ú (A w3 + úy wi3 + úi uj3 úa u@3 //úng u#3 ?2 ú u-3 @@ -1073,9 +1044,9 @@ ỵ ỵ .group ủ ủ u4 - ủ (A u4 - ủy ui4 - ủi uI4 + ủ (A w4 + ủy wi4 + ủi uj4 ủa u@4 //ủng u#4 @@ -1086,9 +1057,9 @@ ỵ ỵ .group ũ ũ u5 - ũ (A u5 - ũy ui5 - ũi uI5 + ũ (A w5 + ũy wi5 + ũi uj5 ũa u@5 //ũng u#5 ?2 ũ u-5 @@ -1099,9 +1070,9 @@ ỵ ỵ .group ụ ụ u6 - ụ (A u6 - ụy ui6 - ụi uI6 + ụ (A w6 + ụy wi6 + ụi uj6 ụa u@6 //ụng u#6 ?2 ụ u-6 @@ -1113,7 +1084,6 @@ ỵ ỵ .group ư ư y - ưi yI ưa y@ ươ y@ ườ y@2 @@ -1121,7 +1091,7 @@ ỵ ỵ ưở y@4 ưỡ y@5 ượ y@6 - ưu yw + ưu iw ươi y@j ười y@j2 ưới y@j3 @@ -1143,9 +1113,8 @@ ỵ ỵ .group ừ ừ y2 - ừi yI2 ừa y@2 - ừu y2w2 + ừu iw2 @@ -1155,9 +1124,8 @@ ỵ ỵ .group ứ ứ y3 - ứi yI3 ứa y@3 - ứu y3w3 + ứu iw3 @@ -1167,9 +1135,8 @@ ỵ ỵ .group ử ử y4 - ửi yI4 ửa y@4 - ửu y4w4 + ửu iw4 @@ -1179,9 +1146,8 @@ ỵ ỵ .group ữ ữ y5 - ữi yI5 ữa y@5 - ữu y5w5 + ữu iw5 @@ -1191,9 +1157,8 @@ ỵ ỵ .group ự ự y6 - ựi yI6 ựa y@6 - ựu y6w6 + ựu iw6 @@ -1211,12 +1176,12 @@ ỵ ỵ yả i@4 yã i@5 yạ i@6 - yê i@ - yề i@2 - yế i@3 - yể i@4 - yễ i@5 - yệ i@6 + yê iE + yề iE2 + yế iE3 + yể iE4 + yễ iE5 + yệ iE6 // yêu i@U y (L01 _^_EN bu) y _^_EN diff --git a/espeak-ng-data/lang/aav/vi b/espeak-ng-data/lang/aav/vi index 66988a43..7808128d 100644 --- a/espeak-ng-data/lang/aav/vi +++ b/espeak-ng-data/lang/aav/vi @@ -1,5 +1,8 @@ name Vietnamese (Northern) language vi -words 1 -pitch 90 170 +words 1 2 +pitch 95 175 + + +tone 100 225 800 100 2000 50 5400 75 8000 200 diff --git a/phsource/n/nm b/phsource/n/nm index a66f7a6b..2a5b02b5 100644 Binary files a/phsource/n/nm and b/phsource/n/nm differ diff --git a/phsource/ph_vietnam b/phsource/ph_vietnam index 22a7e9fe..d42ea4b1 100644 --- a/phsource/ph_vietnam +++ b/phsource/ph_vietnam @@ -6,7 +6,7 @@ phoneme 1 // ngang tone: level stress - Tone(30, 28, envelope/p_level, NULL) // 28 29 + Tone(27, 25, envelope/p_level, NULL) // 28 29 endphoneme @@ -18,7 +18,7 @@ endphoneme phoneme 3 // sắc Tone(rising stress - Tone(30, 55, envelope/p_rise, NULL) // 30 60 + Tone(20, 50, envelope/p_rise, NULL) // 30 60 endphoneme @@ -55,30 +55,27 @@ endphoneme phoneme a vwl starttype #@ endtype #@ IF nextPhW(p) THEN - length 142 + length 78 ELIF nextPhW(t[) THEN - length 126 + length 84 ELIF nextPhW(c) THEN - length 136 + length 82 ELIF nextPhW(m) THEN - length 155 + length 90 ELIF nextPhW(n) THEN - length 185 + length 100 ELIF nextPhW(N) THEN - length 173 + length 90 ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN - length 240 + length 140 ELSE - length 180 + length 100 ENDIF - IF nextPh(N) OR nextPh(c) THEN - FMT(vnasal/a_n) - ELSE - FMT(vietnam/a, 60) //a_4) - ENDIF + FMT(vietnam/a_2) //a_4) + endphoneme phoneme a: @@ -94,9 +91,9 @@ phoneme a: ELIF nextPhW(n) THEN length 185 ELIF nextPhW(N) THEN - length 173 + length 200 ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN - length 280 + length 300 ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN length 240 ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN @@ -104,8 +101,8 @@ phoneme a: ELSE length 180 ENDIF - FMT(vowel/a_8) - //FMT(vietnam/a_2) + //FMT(vowel/a_8) + FMT(vietnam/aa) endphoneme @@ -133,7 +130,8 @@ phoneme E ELSE length 180 ENDIF - FMT(vowel/e_e) //ee_3) + //FMT(vowel/e_e) //ee_3) + FMT(vietnam/e_e_2) endphoneme phoneme e @@ -153,7 +151,7 @@ phoneme e ELIF nextPhW(N) THEN length 115 ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN - length 270 + length 300 ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN length 240 ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN @@ -164,19 +162,16 @@ phoneme e IF nextPh(n^) THEN FMT(vowel/e) ELSE - FMT(vietnam/e) + FMT(vietnam/e, 150) ENDIF endphoneme phoneme e- vwl starttype #e endtype #a - IF nextPhW(c) THEN - length 70 - ELIF nextPhW(n^) THEN - length 100 - ENDIF - FMT(vietnam/e_short_2) + length 140 + FMT(vietnam/e_short_1) + //FMT(vdiph/aai_3) endphoneme phoneme i @@ -207,9 +202,11 @@ phoneme i length 180 ENDIF IF nextPh(n^) OR nextPh(c) THEN - FMT(vnasal/ii_n) + //FMT(vnasal/ii_n) + FMT(vietnam/i) ELSE - FMT(vowel/i_4) + //FMT(vowel/i_4) + FMT(vietnam/i_2, 100) ENDIF endphoneme @@ -229,7 +226,7 @@ phoneme O ELIF nextPhW(N) THEN length 102 ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN - length 280 + length 300 ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN length 240 ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN @@ -237,7 +234,8 @@ phoneme O ELSE length 180 ENDIF - FMT(vdiph2/o_oo) //vowel/oo) + //FMT(vdiph2/o_oo) //vowel/oo) + FMT(vietnam/oo) endphoneme phoneme O+ @@ -275,7 +273,8 @@ phoneme o ELSE length 180 ENDIF - FMT(vowel/o) // o_2) + //FMT(vowel/o) // o_2) + FMT(vietnam/o_2) endphoneme @@ -295,7 +294,7 @@ phoneme u ELIF nextPhW(N) THEN length 80 ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN - length 280 + length 300 ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN length 240 ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN @@ -303,7 +302,8 @@ phoneme u ELSE length 180 ENDIF - FMT(vnasal/u_n) //vowel/u_5) + //FMT(vnasal/u_n) //vowel/u_5) + FMT(vietnam/u) endphoneme phoneme y @@ -313,15 +313,17 @@ phoneme y ELIF nextPhW(t[) THEN length 76 ELIF nextPhW(c) THEN - length 70 + length 90 ELIF nextPhW(m) THEN length 143 ELIF nextPhW(n) THEN length 136 ELIF nextPhW(N) THEN length 101 + ELIF nextPhW(w) OR nextPhW(j) THEN + length 110 ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN - length 270 + length 300 ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN length 240 ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN @@ -329,7 +331,8 @@ phoneme y ELSE length 180 ENDIF - FMT(vowel/u#_5) + //FMT(vowel/u#_5) + FMT(vietnam/y_2, 60) endphoneme @@ -356,7 +359,7 @@ phoneme @ length 180 ENDIF // FMT(vowel/V) //vowel/@_2) - FMT(vietnam/V) + FMT(vietnam/V_2) endphoneme @@ -375,7 +378,7 @@ phoneme @: ELIF nextPhW(N) THEN length 156 ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN - length 280 + length 300 ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN length 240 ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN @@ -383,7 +386,8 @@ phoneme @: ELSE length 180 ENDIF - FMT(vowel/@_2) + //FMT(vowel/@_2) + FMT(vietnam/@_2) endphoneme @@ -561,22 +565,54 @@ endphoneme phoneme y@ vwl starttype #i endtype #@ - IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + IF nextPhW(p) THEN + length 123 + ELIF nextPhW(t[) THEN + length 123 + ELIF nextPhW(c) THEN + length 139 + ELIF nextPhW(m) THEN + length 127 + ELIF nextPhW(n) THEN + length 180 + ELIF nextPhW(N) THEN + length 156 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 - ELSE + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN + length 240 + ELSE length 200 - ENDIF - FMT(vdiph2/y-y#) + ENDIF + //FMT(vdiph2/y-y#) + FMT(vietnam/y@) endphoneme phoneme u@ vwl starttype #u endtype #@ - IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + IF nextPhW(p) THEN + length 123 + ELIF nextPhW(t[) THEN + length 123 + ELIF nextPhW(c) THEN + length 139 + ELIF nextPhW(m) THEN + length 127 + ELIF nextPhW(n) THEN + length 160 + ELIF nextPhW(N) THEN + length 156 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 300 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN length 240 - ELSE - length 200 - ENDIF - FMT(vdiph2/uu@) + ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN + length 333 + ELSE + length 240 + ENDIF + //FMT(vdiph2/uu@)- + FMT(vietnam/u@) endphoneme // Addition Dipthongs @@ -586,11 +622,16 @@ phoneme o# // ông IF nextPhW(k) THEN length 120 ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN - length 240 + length 360 + ELIF nextPhW(N) THEN + length 99 + ELIF nextPhW(k) THEN + length 88 ELSE length 200 ENDIF - FMT(vnasal/a#u_n) + //FMT(vnasal/a#u_n) + FMT(vietnam/o#) endphoneme phoneme O# // ong @@ -599,10 +640,13 @@ phoneme O# // ong length 240 ELIF nextPh(k) THEN length 140 + ELIF nextPh(N) THEN + length 102 ELSE length 200 ENDIF - FMT(vnasal/&u_n) + //FMT(vnasal/&u_n) + FMT(vietnam/O_short_2) endphoneme @@ -628,12 +672,32 @@ endphoneme phoneme iE // iê : viết, giệc vwl starttype #i endtype #e - IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + IF nextPhW(p) THEN + length 114 + ELIF nextPhW(t[) THEN + length 126 + ELIF nextPhW(c) THEN + length 140 + ELIF nextPhW(n^) THEN + length 120 + ELIF nextPhW(m) THEN + length 148 + ELIF nextPhW(n) THEN + length 163 + ELIF nextPhW(N) THEN + length 115 + ELIF nextPhW(w) THEN + length 100 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 300 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN length 240 - ELSE - length 200 - ENDIF - FMT(vietnam/ie_2) + ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN + length 324 + ELSE + length 180 + ENDIF + FMT(vietnam/ie) endphoneme phoneme Oi // oai sound @@ -687,19 +751,36 @@ phoneme kh endphoneme phoneme k - vls vel frc + vls vel stp lengthmod 3 + IF nextPhW(#u) THEN + Vowelin f1=1 f2=600 -200 -400 f3=-200 80 amp=200 len=30 rms=200 + WAV(vietnam/c_2, 255) + ELSE Vowelin f1=0 f2=2300 200 400 f3=200 80 len=30 + WAV(vietnam/c) + ENDIF Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20 - WAV(ustop/c) + //WAV(ustop/c) + endphoneme phoneme N // si**ng** vcd lbv nas + IF prevPhW(u@) THEN + // do nothing + ELSE Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk + ENDIF lengthmod 12 // longer than 'n' - - FMT(n/nm) + IF thisPh(isWordEnd) THEN + length 163 + ENDIF + IF thisPh(isWordEnd) THEN + FMT(n/nm, 50) + ELSE + FMT(nn/_nn) + ENDIF endphoneme phoneme l @@ -738,10 +819,11 @@ 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) + length 70 + Vowelin f1=1 f2=1500 -300 300 f3=-100 80 len=15 + Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk len=30 + WAV(vietnam/dda_2, 200) + endphoneme phoneme c @@ -760,11 +842,15 @@ endphoneme phoneme p vls blb stp lengthmod 2 + length 15 Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22 - WAV(ustop/p_unasp_,10) - + IF thisPh(isWordEnd) THEN + WAV(ustop/p_unasp_, 10) + ELSE + WAV(ustop/p) + ENDIF endphoneme phoneme t[ // dental variant of /t/ @@ -772,16 +858,41 @@ phoneme t[ // dental variant of /t/ vls alv stp voicingswitch d lengthmod 2 - length 5 - Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 len=15 - Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 len=15 - WAV(ustop/t, 50) + length 15 + IF prevPhW(#@) THEN + Vowelout f1=0 f2=1200 -50 50 f3=50 80 rms=20 len=15 + ELIF prevPhW(y@) THEN + Vowelout f1=2 f2=1200 -100 150 f3=150 80 rms=20 len=15 + ELIF prevPhW(#i) THEN + Vowelout f1=0 f2=2000 -300 250 f3=-50 80 rms=20 len=15 + ELIF prevPhW(E) THEN + Vowelout f1=0 f2=1900 -200 200 f3=-100 80 rms=20 len=15 + ELIF prevPhW(e) OR prevPhW(iE) THEN + Vowelout f1=2 f2=1800 -400 250 f3=-200 80 rms=20 len=15 + ELIF prevPhW(u) THEN + Vowelout f1=2 f2=1000 -1000 250 f3=-400 80 rms=20 len=15 + ELIF prevPhW(y) THEN + Vowelout f1=1 f2=1500 -300 250 f3=-400 80 rms=20 len=15 + ELIF prevPhW(#a) THEN + Vowelout f1=2 f2=1500 -300 250 f3=-500 80 rms=20 len=15 + ELIF prevPhW(o) THEN + Vowelout f1=2 f2=1000 -100 250 f3=-200 80 rms=20 len=15 + ELIF prevPhW(O) THEN + Vowelout f1=1 f2=1000 -300 200 f3=-100 80 rms=20 len=15 + ELSE + Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 len=15 + ENDIF + WAV(ustop/t_, 25) ELSE vls dnt stp voicingswitch d[ lengthmod 2 - length 5 - Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 len=15 + IF nextPhW(#u) THEN + length 30 + ELSE + length 15 + ENDIF + Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 len=35 Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 len=15 IF nextPh(isPause2) THEN @@ -793,10 +904,11 @@ endphoneme phoneme w liquid - length 20 + starttype #u IF nextPh(isVowel) THEN + length 20 NextVowelStarts VowelStart(w/w@) VowelStart(w/wa) @@ -808,21 +920,74 @@ phoneme w VowelEnding(w/xw, -30) IF nextPh(isVowel) AND prevPhW(t[) THEN - FMT(vnasal/u_n, 60) - ENDIF - IF prevPhW(isNasal) THEN + FMT(vnasal/u_n, 60) addWav(vietnam/w, 50) + ELIF prevPhW(isNasal) THEN FMT(w/w) ELSEIF prevPhW(h) THEN // none, [hw] ELSE - FMT(w/_w) + //FMT(w/_w) addWav(vietnam/w) + FMT(vietnam/_w) ENDIF ELSE // no vowel follows - Vowelout len=50 - IF prevPh(#i) THEN - FMT(w/iw_) - ENDIF - FMT(w/w_) + length 80 + Vowelout len=20 rms=20 + + //FMT(w/w_) + FMT(vietnam/w_, 150) ENDIF -endphoneme \ No newline at end of file +endphoneme + +phoneme n^ // (a)nh + vcd pal nas pzd + ipa ɲ + Vowelout f1=3 f2=2500 300 500 f3=100 80 len=45 brk rate + lengthmod 4 + + IF KlattSynth THEN + VowelStart(klatt/n^@) + FMT(klatt/n^) + ENDIF + + NextVowelStarts + VowelStart(n^/n^@) + VowelStart(n^/n^a) + VowelStart(n^/n^e) + VowelStart(n^/n^i) + VowelStart(n^/n^o) + VowelStart(n^/n^u) + EndSwitch + + IF thisPh(isWordEnd) THEN + IF nextPhW(n^) THEN + length 75 + ELIF prevPhW(n^) THEN + length 100 + ENDIF + FMT(vietnam/n^_) + ELSE + FMT(n^/_n^) + ENDIF +endphoneme + +phoneme h + vls glt frc + lengthmod 3 + ipa h + + IF nextPh(#@) THEN + WAV(h/h@) + ELIF nextPh(#a) THEN + WAV(h/ha) + ELIF nextPh(#e) THEN + WAV(h/he) + ELIF nextPh(#i) THEN + WAV(vietnam/hi) + ELIF nextPh(#o) THEN + WAV(h/ho) + ELIF nextPh(#u) THEN + WAV(vietnam/hu, 25) + ENDIF + WAV(h/h_, 70) // no vowel following +endphoneme diff --git a/phsource/vietnam/@_2 b/phsource/vietnam/@_2 new file mode 100644 index 00000000..eb43e460 Binary files /dev/null and b/phsource/vietnam/@_2 differ diff --git a/phsource/vietnam/O_short b/phsource/vietnam/O_short new file mode 100644 index 00000000..30a9c337 Binary files /dev/null and b/phsource/vietnam/O_short differ diff --git a/phsource/vietnam/O_short_2 b/phsource/vietnam/O_short_2 new file mode 100644 index 00000000..1e1158df Binary files /dev/null and b/phsource/vietnam/O_short_2 differ diff --git a/phsource/vietnam/V_2 b/phsource/vietnam/V_2 new file mode 100644 index 00000000..d63f8fc9 Binary files /dev/null and b/phsource/vietnam/V_2 differ diff --git a/phsource/vietnam/_w b/phsource/vietnam/_w new file mode 100644 index 00000000..0f5ff6fd Binary files /dev/null and b/phsource/vietnam/_w differ diff --git a/phsource/vietnam/a_2 b/phsource/vietnam/a_2 index 1e68a9db..894e9006 100644 Binary files a/phsource/vietnam/a_2 and b/phsource/vietnam/a_2 differ diff --git a/phsource/vietnam/aa b/phsource/vietnam/aa new file mode 100644 index 00000000..dea55b25 Binary files /dev/null and b/phsource/vietnam/aa differ diff --git a/phsource/vietnam/c.wav b/phsource/vietnam/c.wav new file mode 100644 index 00000000..7fde6b32 Binary files /dev/null and b/phsource/vietnam/c.wav differ diff --git a/phsource/vietnam/c_2.wav b/phsource/vietnam/c_2.wav new file mode 100644 index 00000000..c4adb96a Binary files /dev/null and b/phsource/vietnam/c_2.wav differ diff --git a/phsource/vietnam/dd_2.wav b/phsource/vietnam/dd_2.wav new file mode 100644 index 00000000..5516619f Binary files /dev/null and b/phsource/vietnam/dd_2.wav differ diff --git a/phsource/vietnam/dda.wav b/phsource/vietnam/dda.wav new file mode 100644 index 00000000..218f3bf2 Binary files /dev/null and b/phsource/vietnam/dda.wav differ diff --git a/phsource/vietnam/dda_2.wav b/phsource/vietnam/dda_2.wav new file mode 100644 index 00000000..9532aa8b Binary files /dev/null and b/phsource/vietnam/dda_2.wav differ diff --git a/phsource/vietnam/e b/phsource/vietnam/e index 585266a7..82c28e69 100644 Binary files a/phsource/vietnam/e and b/phsource/vietnam/e differ diff --git a/phsource/vietnam/e_2 b/phsource/vietnam/e_2 new file mode 100644 index 00000000..1f496322 Binary files /dev/null and b/phsource/vietnam/e_2 differ diff --git a/phsource/vietnam/e_e b/phsource/vietnam/e_e new file mode 100644 index 00000000..4b5efa0c Binary files /dev/null and b/phsource/vietnam/e_e differ diff --git a/phsource/vietnam/e_e_2 b/phsource/vietnam/e_e_2 new file mode 100644 index 00000000..ddd014b8 Binary files /dev/null and b/phsource/vietnam/e_e_2 differ diff --git a/phsource/vietnam/e_short_1 b/phsource/vietnam/e_short_1 new file mode 100644 index 00000000..e7115445 Binary files /dev/null and b/phsource/vietnam/e_short_1 differ diff --git a/phsource/vietnam/hi.wav b/phsource/vietnam/hi.wav new file mode 100644 index 00000000..c2b51e8e Binary files /dev/null and b/phsource/vietnam/hi.wav differ diff --git a/phsource/vietnam/hu.wav b/phsource/vietnam/hu.wav new file mode 100644 index 00000000..c83eaf7d Binary files /dev/null and b/phsource/vietnam/hu.wav differ diff --git a/phsource/vietnam/i b/phsource/vietnam/i new file mode 100644 index 00000000..aed36c38 Binary files /dev/null and b/phsource/vietnam/i differ diff --git a/phsource/vietnam/i_2 b/phsource/vietnam/i_2 new file mode 100644 index 00000000..2557b103 Binary files /dev/null and b/phsource/vietnam/i_2 differ diff --git a/phsource/vietnam/ie b/phsource/vietnam/ie new file mode 100644 index 00000000..42ca144f Binary files /dev/null and b/phsource/vietnam/ie differ diff --git a/phsource/vietnam/n^_ b/phsource/vietnam/n^_ new file mode 100644 index 00000000..1ec84c1f Binary files /dev/null and b/phsource/vietnam/n^_ differ diff --git a/phsource/vietnam/o# b/phsource/vietnam/o# new file mode 100644 index 00000000..cd11f701 Binary files /dev/null and b/phsource/vietnam/o# differ diff --git a/phsource/vietnam/o_2 b/phsource/vietnam/o_2 new file mode 100644 index 00000000..1cfb4587 Binary files /dev/null and b/phsource/vietnam/o_2 differ diff --git a/phsource/vietnam/oo b/phsource/vietnam/oo new file mode 100644 index 00000000..88093a70 Binary files /dev/null and b/phsource/vietnam/oo differ diff --git a/phsource/vietnam/u b/phsource/vietnam/u new file mode 100644 index 00000000..809e74e1 Binary files /dev/null and b/phsource/vietnam/u differ diff --git a/phsource/vietnam/u@ b/phsource/vietnam/u@ new file mode 100644 index 00000000..48321cbb Binary files /dev/null and b/phsource/vietnam/u@ differ diff --git a/phsource/vietnam/w.wav b/phsource/vietnam/w.wav new file mode 100644 index 00000000..fadea96b Binary files /dev/null and b/phsource/vietnam/w.wav differ diff --git a/phsource/vietnam/w_ b/phsource/vietnam/w_ new file mode 100644 index 00000000..810027e3 Binary files /dev/null and b/phsource/vietnam/w_ differ diff --git a/phsource/vietnam/y b/phsource/vietnam/y new file mode 100644 index 00000000..b67cd6b4 Binary files /dev/null and b/phsource/vietnam/y differ diff --git a/phsource/vietnam/y@ b/phsource/vietnam/y@ new file mode 100644 index 00000000..c30e1780 Binary files /dev/null and b/phsource/vietnam/y@ differ diff --git a/phsource/vietnam/y_2 b/phsource/vietnam/y_2 new file mode 100644 index 00000000..4831e441 Binary files /dev/null and b/phsource/vietnam/y_2 differ diff --git a/src/windows/Debug/output_@.wav b/src/windows/Debug/output_@.wav new file mode 100644 index 00000000..75ca577d Binary files /dev/null and b/src/windows/Debug/output_@.wav differ diff --git a/src/windows/Debug/output_e.wav b/src/windows/Debug/output_e.wav new file mode 100644 index 00000000..50dfdba5 Binary files /dev/null and b/src/windows/Debug/output_e.wav differ diff --git a/src/windows/Debug/output_i.wav b/src/windows/Debug/output_i.wav new file mode 100644 index 00000000..7445bd21 Binary files /dev/null and b/src/windows/Debug/output_i.wav differ diff --git a/tests/language-pronunciation.test b/tests/language-pronunciation.test index 26dca7f2..3847d391 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[_| 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^_| 'e-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,O6j_| N'y@2j_| s'i1n^_| z'a:1_| d_'e2w_| d_,y@6c_| t['y6_| z'O1_| v,a:2_| _b'i2n^_| d_'a4N_| v'e2_| n^'@1n_| f'@4m_| v,a:2_| kw'iE2n_| l'@:6j_|\nm,O6j_| k,O1n_| N'y@2j_| d_'e2w_| d_,y@6c_| t['a:6w_| hw'a: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:4j_| d_'o3j_| s'y4_| v,@:3j_| n^'a1w_| tS'O#1N_| t['i2n^_| 'e-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." ##### Fallback to other languages in different scripts (language switch).