Browse Source

Merge pull request #607

master
Valdis Vitolins 6 years ago
parent
commit
15f8741bce

+ 157
- 192
dictsource/vi_rules View File

.group a .group a
a 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 ?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 ?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 a (L01 _^_EN
ai (L02 _^_EN ai (L02 _^_EN
a (@ _^_EN a (@ _^_EN
.group à .group à
à a:2 à a:2
ài a:I2
ày aI2
ài a:j2
ày aj2
?2 ày a:I2 ?2 ày a:I2
à (L03 e-2 à (L03 e-2
ào a:U2
àu aU2
ào a:w2
àu aw2
?2 àu a:U2 ?2 àu a:U2
.group á .group á
á a:3 á 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 áu a:U3
?2 áy a:I3 ?2 áy a:I3
á (L03 e-3 á (L03 e-3
.group ả .group ả
ả a:4 ả 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 ảu a:U4
?2 ảy a:I4 ?2 ảy a:I4
ả (L03 e-4 ả (L03 e-4
.group ã .group ã
ã a:5 ã 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 ãu a:U5
?2 ãy a:I5 ?2 ãy a:I5
ã (L03 e-5 ã (L03 e-5
.group ạ .group ạ
ạ a:6 ạ 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 ạu a:U6
?2 ạy a:I6 ?2 ạy a:I6
ạ (L03 e-6 ạ (L03 e-6
.group â .group â
â @ â @
ây @I ây @I
âu @U1
âu @w1
?2 â (L03 a ?2 â (L03 a
?1 â (L03 a ?1 â (L03 a
.group ầ .group ầ
ầ @2 ầ @2
ầy @I2 ầy @I2
ầu @U2
ầu @w2
?2 ầ (L03 a2 ?2 ầ (L03 a2
?1 ầ (L03 a2 ?1 ầ (L03 a2
.group ấ .group ấ
ấ @3 ấ @3
ấy @I3 ấy @I3
ấu @U3
ấu @w3
?2 ấ (L03 a3 ?2 ấ (L03 a3
?1 ấ (L03 a3 ?1 ấ (L03 a3
.group ẩ .group ẩ
ẩ @4 ẩ @4
ẩy @I4 ẩy @I4
ẩu @U4
ẩu @w4
.group ẫ .group ẫ
ẫ @5 ẫ @5
ẫy @I5 ẫy @I5
ẫu @U5
ẫu @w5
.group ậ .group ậ
ậ @6 ậ @6
ậy @I6 ậy @I6
ậu @U6
ậu @w6
?2 ậ (L03 a6 ?2 ậ (L03 a6
?1 ậ (L03 a6 ?1 ậ (L03 a6
//=========================== //===========================
.group e .group e
e 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 e (L01 _^_EN
ey (_ _^_EN ey (_ _^_EN
e (@ _^_EN e (@ _^_EN
.group è .group è
è E2 è E2
èo EU2
èo Ew2
.group é .group é
é E3 é E3
éo EU3
éo Ew3
.group ẻ .group ẻ
ẻ E4 ẻ E4
ẻo EU4
ẻo Ew4
.group ẽ .group ẽ
ẽ E5 ẽ E5
ẽo EU5
ẽo Ew5
.group ẹ .group ẹ
ẹ E6 ẹ E6
ẹo EU6
ẹo Ew6
.group ê .group ê
ê e ê e
êu eU1
êu ew1
?2 ê (L03 @: ?2 ê (L03 @:
?2 ê (L02 @: ?2 ê (L02 @:
.group ề .group ề
ề e2 ề e2
ều eU2
ều ew2
?2 ề (L03 @:2 ?2 ề (L03 @:2
?2 ề (L02 @:2 ?2 ề (L02 @:2
.group ế .group ế
ế e3 ế e3
ếu eU3
ếu ew3
?2 ế (L03 @:3 ?2 ế (L03 @:3
.group ể .group ể
ể e4 ể e4
ểu eU4
ểu ew4
?2 ể (L03 @:4 ?2 ể (L03 @:4
?2 ể (L02 @:4 ?2 ể (L02 @:4
.group ễ .group ễ
ễ e5 ễ e5
ễu eU5
ễu ew5
?2 ễ (L03 @:5 ?2 ễ (L03 @:5
?2 ễ (L02 @:5 ?2 ễ (L02 @:5
.group ệ .group ệ
ệ e6 ệ e6
ệu eU6
ệu ew6
?2 ệ (L03 @:6 ?2 ệ (L03 @:6
?2 ệ (L02 @:6 ?2 ệ (L02 @:6
.group i .group i
i i i i
//i (A j
A) i j
ia i@ ia i@
ià i@2 ià i@2
iá i@3 iá i@3
iể iE4 iể iE4
iễ iE5 iễ iE5
iệ iE6 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 (L01 _^_EN
i (@ _^_EN i (@ _^_EN
?2 i (L03 @ ?2 i (L03 @
ì i2 ì i2
ì (A j2 ì (A j2
ìa i@2 ìa i@2
ìu iU2
ìu iw2
?2 ì (L03 @2 ?2 ì (L03 @2
?1 ì (L03 @2 ?1 ì (L03 @2
?2 ì (L02 @2 ?2 ì (L02 @2
í i3 í i3
í (A j3 í (A j3
ía i@3 ía i@3
íu iU3
íu iw3
?2 í (L03 @3 ?2 í (L03 @3
?1 í (L03 @3 ?1 í (L03 @3
?2 í (L02 @3 ?2 í (L02 @3
ỉ i4 ỉ i4
ỉ (A j4 ỉ (A j4
ỉa i@4 ỉa i@4
ỉu iU4
ỉu iw4
?2 ỉ (L03 @4 ?2 ỉ (L03 @4
?1 ỉ (L03 @4 ?1 ỉ (L03 @4
?2 ỉ (L02 @4 ?2 ỉ (L02 @4
ĩ i5 ĩ i5
ĩ (A j5 ĩ (A j5
ĩa i@5 ĩa i@5
ĩu iU5
ĩu iw5
?2 ĩ (L03 @5 ?2 ĩ (L03 @5
?1 ĩ (L03 @5 ?1 ĩ (L03 @5
?2 ĩ (L02 @5 ?2 ĩ (L02 @5
ị i6 ị i6
ị (A j6 ị (A j6
ịa i@6 ịa i@6
ịu iU6
ịu iw6
?2 ị (L03 @6 ?2 ị (L03 @6
?1 ị (L03 @6 ?1 ị (L03 @6
?2 ị (L02 @6 ?2 ị (L02 @6
.group o .group o
o 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 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 ò .group ò
ò O2 ò O2
òi OI2
òa o@2 //ò (A w2
òng O#2
òa wa:2 //ò (A w2
òng O#N2
òe wE2 òe wE2
.group ó .group ó
ó O3 ó O3
ói OI3
óa o@3 //ó (A w3
óng O#3
óa wa:3 //ó (A w3
óng O#N3
óe wE3 óe wE3
óc O#3k óc O#3k
.group ỏ .group ỏ
ỏ O4 ỏ O4
ỏi OI4
ỏa o@4 //ỏ (A w4
ỏng O#4
ỏa wa:4 //ỏ (A w4
ỏng O#N4
ỏe wE4 ỏe wE4
.group õ .group õ
õ O5 õ O5
õi OI5
õa o@5 //õ (A w5
õng O#5
õa wa:5 //õ (A w5
õng O#N5
õe wE5 õe wE5
.group ọ .group ọ
ọ O6 ọ O6
ọi OI6
ọa o@6 //ọ (A w6
ọng O#6
ọa oa:6 //ọ (A w6
ọng O#N6
ọe wE6 ọe wE6
ọc O#6k ọc O#6k
.group ô .group ô
ô o ô o
ôi oI
ông o# // ông sound
ôi oj
ông o#N // ông sound
?2 ôi O- //south dialect ?2 ôi O- //south dialect
ôc o#k ôc o#k
.group ồ .group ồ
ồ o2 ồ o2
ồi oI2
ồng o#2
ồi oj2
ồng o#N2
?2 ồi O-2 ?2 ồi O-2
.group ố .group ố
ố o3 ố o3
ối oI3
ống o#3
ối oj3
ống o#N3
?2 ối O-3 ?2 ối O-3
ốc o#3k ốc o#3k
.group ổ .group ổ
ổ o4 ổ o4
ổi oI4
ổng o#4
ổi oj4
ổng o#N4
?2 ổi O-4 ?2 ổi O-4
.group ỗ .group ỗ
ỗ o5 ỗ o5
ỗi oI5
ỗng o#5
ỗi oj5
ỗng o#N5
?2 ỗi O-5 ?2 ỗi O-5
.group ộ .group ộ
ộ o6 ộ o6
ội oI6
// ộng o#6
ội oj6
ộng o#N6
?2 ội O-6 ?2 ội O-6
ộc o#6k ộc o#6k
.group ơ .group ơ
ơ @: ơ @:
ơi @:I
ơi @:j
ơu @:U ơu @:U
?2 ơi @- //south dialect ?2 ơi @- //south dialect
.group ờ .group ờ
ờ @:2 ờ @:2
ời @:I2
ời @:j2
ờu @:U2 ờu @:U2
?2 ời @-2 ?2 ời @-2
.group ớ .group ớ
ớ @:3 ớ @:3
ới @:I3
ới @:j3
ớu @:U3 ớu @:U3
?2 ới @-3 ?2 ới @-3
.group ở .group ở
ở @:4 ở @:4
ởi @:I4
ởi @:j4
ởu @:U4 ởu @:U4
?2 ởi @-4 ?2 ởi @-4
.group ỡ .group ỡ
ỡ @:5 ỡ @:5
ỡi @:I5
ỡi @:j5
ỡu @:U5 ỡu @:U5
?2 ỡi @-5 ?2 ỡi @-5
.group ợ .group ợ
ợ @:6 ợ @:6
ợi @:I6
ợi @:j6
ợu @:U6 ợu @:U6
?2 ợi @-6 ?2 ợi @-6
u (A w u (A w
A) u w A) u w
gi) u u 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@ ua u@
uà u@2 uà u@2
uá u@3 uá u@3
u (L01 _^_EN u (L01 _^_EN
u (@ _^_EN u (@ _^_EN
// ua (L01 _^_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 ù .group ù
ù u2 ù u2
ù (A u2
ùy ui2
ùi uI2
ù (A w2
ùy wi2
ùi uj2
ùa u@2 ùa u@2
//ùng u#2 //ùng u#2
.group ú .group ú
ú u3 ú u3
ú (A u3
úy ui3
úi uI3
ú (A w3
úy wi3
úi uj3
úa u@3 úa u@3
//úng u#3 //úng u#3
?2 ú u-3 ?2 ú u-3
.group ủ .group ủ
ủ u4 ủ u4
ủ (A u4
ủy ui4
ủi uI4
ủ (A w4
ủy wi4
ủi uj4
ủa u@4 ủa u@4
//ủng u#4 //ủng u#4
.group ũ .group ũ
ũ u5 ũ u5
ũ (A u5
ũy ui5
ũi uI5
ũ (A w5
ũy wi5
ũi uj5
ũa u@5 ũa u@5
//ũng u#5 //ũng u#5
?2 ũ u-5 ?2 ũ u-5
.group ụ .group ụ
ụ u6 ụ u6
ụ (A u6
ụy ui6
ụi uI6
ụ (A w6
ụy wi6
ụi uj6
ụa u@6 ụa u@6
//ụng u#6 //ụng u#6
?2 ụ u-6 ?2 ụ u-6
.group ư .group ư
ư y ư y
ưi yI
ưa y@ ưa y@
ươ y@ ươ y@
ườ y@2 ườ y@2
ưở y@4 ưở y@4
ưỡ y@5 ưỡ y@5
ượ y@6 ượ y@6
ưu yw
ưu iw
ươi y@j ươi y@j
ười y@j2 ười y@j2
ưới y@j3 ưới y@j3
.group ừ .group ừ
ừ y2 ừ y2
ừi yI2
ừa y@2 ừa y@2
ừu y2w2
ừu iw2
.group ứ .group ứ
ứ y3 ứ y3
ứi yI3
ứa y@3 ứa y@3
ứu y3w3
ứu iw3
.group ử .group ử
ử y4 ử y4
ửi yI4
ửa y@4 ửa y@4
ửu y4w4
ửu iw4
.group ữ .group ữ
ữ y5 ữ y5
ữi yI5
ữa y@5 ữa y@5
ữu y5w5
ữu iw5
.group ự .group ự
ự y6 ự y6
ựi yI6
ựa y@6 ựa y@6
ựu y6w6
ựu iw6
yả i@4 yả i@4
yã i@5 yã i@5
yạ i@6 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êu i@U
y (L01 _^_EN y (L01 _^_EN
bu) y _^_EN bu) y _^_EN

+ 5
- 2
espeak-ng-data/lang/aav/vi View File

name Vietnamese (Northern) name Vietnamese (Northern)
language vi language vi


words 1
pitch 90 170
words 1 2
pitch 95 175


tone 100 225 800 100 2000 50 5400 75 8000 200

BIN
phsource/n/nm View File


+ 249
- 84
phsource/ph_vietnam View File



phoneme 1 // ngang tone: level phoneme 1 // ngang tone: level
stress stress
Tone(30, 28, envelope/p_level, NULL) // 28 29
Tone(27, 25, envelope/p_level, NULL) // 28 29
endphoneme endphoneme






phoneme 3 // sắc Tone(rising phoneme 3 // sắc Tone(rising
stress stress
Tone(30, 55, envelope/p_rise, NULL) // 30 60
Tone(20, 50, envelope/p_rise, NULL) // 30 60
endphoneme endphoneme




phoneme a phoneme a
vwl starttype #@ endtype #@ vwl starttype #@ endtype #@
IF nextPhW(p) THEN IF nextPhW(p) THEN
length 142
length 78
ELIF nextPhW(t[) THEN ELIF nextPhW(t[) THEN
length 126
length 84
ELIF nextPhW(c) THEN ELIF nextPhW(c) THEN
length 136
length 82
ELIF nextPhW(m) THEN ELIF nextPhW(m) THEN
length 155
length 90
ELIF nextPhW(n) THEN ELIF nextPhW(n) THEN
length 185
length 100
ELIF nextPhW(N) THEN ELIF nextPhW(N) THEN
length 173
length 90
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 240 length 240
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
length 240
length 140
ELSE ELSE
length 180
length 100
ENDIF 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 endphoneme


phoneme a: phoneme a:
ELIF nextPhW(n) THEN ELIF nextPhW(n) THEN
length 185 length 185
ELIF nextPhW(N) THEN ELIF nextPhW(N) THEN
length 173
length 200
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 280
length 300
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
length 240 length 240
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
ELSE ELSE
length 180 length 180
ENDIF ENDIF
FMT(vowel/a_8)
//FMT(vietnam/a_2)
//FMT(vowel/a_8)
FMT(vietnam/aa)
endphoneme endphoneme




ELSE ELSE
length 180 length 180
ENDIF ENDIF
FMT(vowel/e_e) //ee_3)
//FMT(vowel/e_e) //ee_3)
FMT(vietnam/e_e_2)
endphoneme endphoneme


phoneme e phoneme e
ELIF nextPhW(N) THEN ELIF nextPhW(N) THEN
length 115 length 115
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 270
length 300
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
length 240 length 240
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
IF nextPh(n^) THEN IF nextPh(n^) THEN
FMT(vowel/e) FMT(vowel/e)
ELSE ELSE
FMT(vietnam/e)
FMT(vietnam/e, 150)
ENDIF ENDIF
endphoneme endphoneme




phoneme e- phoneme e-
vwl starttype #e endtype #a 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 endphoneme


phoneme i phoneme i
length 180 length 180
ENDIF ENDIF
IF nextPh(n^) OR nextPh(c) THEN IF nextPh(n^) OR nextPh(c) THEN
FMT(vnasal/ii_n)
//FMT(vnasal/ii_n)
FMT(vietnam/i)
ELSE ELSE
FMT(vowel/i_4)
//FMT(vowel/i_4)
FMT(vietnam/i_2, 100)
ENDIF ENDIF
endphoneme endphoneme


ELIF nextPhW(N) THEN ELIF nextPhW(N) THEN
length 102 length 102
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 280
length 300
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
length 240 length 240
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
ELSE ELSE
length 180 length 180
ENDIF ENDIF
FMT(vdiph2/o_oo) //vowel/oo)
//FMT(vdiph2/o_oo) //vowel/oo)
FMT(vietnam/oo)
endphoneme endphoneme


phoneme O+ phoneme O+
ELSE ELSE
length 180 length 180
ENDIF ENDIF
FMT(vowel/o) // o_2)
//FMT(vowel/o) // o_2)
FMT(vietnam/o_2)
endphoneme endphoneme




ELIF nextPhW(N) THEN ELIF nextPhW(N) THEN
length 80 length 80
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 280
length 300
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
length 240 length 240
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
ELSE ELSE
length 180 length 180
ENDIF ENDIF
FMT(vnasal/u_n) //vowel/u_5)
//FMT(vnasal/u_n) //vowel/u_5)
FMT(vietnam/u)
endphoneme endphoneme


phoneme y phoneme y
ELIF nextPhW(t[) THEN ELIF nextPhW(t[) THEN
length 76 length 76
ELIF nextPhW(c) THEN ELIF nextPhW(c) THEN
length 70
length 90
ELIF nextPhW(m) THEN ELIF nextPhW(m) THEN
length 143 length 143
ELIF nextPhW(n) THEN ELIF nextPhW(n) THEN
length 136 length 136
ELIF nextPhW(N) THEN ELIF nextPhW(N) THEN
length 101 length 101
ELIF nextPhW(w) OR nextPhW(j) THEN
length 110
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 270
length 300
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
length 240 length 240
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
ELSE ELSE
length 180 length 180
ENDIF ENDIF
FMT(vowel/u#_5)
//FMT(vowel/u#_5)
FMT(vietnam/y_2, 60)
endphoneme endphoneme




length 180 length 180
ENDIF ENDIF
// FMT(vowel/V) //vowel/@_2) // FMT(vowel/V) //vowel/@_2)
FMT(vietnam/V)
FMT(vietnam/V_2)
endphoneme endphoneme




ELIF nextPhW(N) THEN ELIF nextPhW(N) THEN
length 156 length 156
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 280
length 300
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
length 240 length 240
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
ELSE ELSE
length 180 length 180
ENDIF ENDIF
FMT(vowel/@_2)
//FMT(vowel/@_2)
FMT(vietnam/@_2)
endphoneme endphoneme






phoneme y@ phoneme y@
vwl starttype #i endtype #@ 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 length 240
ELSE
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
length 240
ELSE
length 200 length 200
ENDIF
FMT(vdiph2/y-y#)
ENDIF
//FMT(vdiph2/y-y#)
FMT(vietnam/y@)
endphoneme endphoneme


phoneme u@ phoneme u@
vwl starttype #u endtype #@ 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 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 endphoneme


// Addition Dipthongs // Addition Dipthongs
IF nextPhW(k) THEN IF nextPhW(k) THEN
length 120 length 120
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN 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 ELSE
length 200 length 200
ENDIF ENDIF
FMT(vnasal/a#u_n)
//FMT(vnasal/a#u_n)
FMT(vietnam/o#)
endphoneme endphoneme


phoneme O# // ong phoneme O# // ong
length 240 length 240
ELIF nextPh(k) THEN ELIF nextPh(k) THEN
length 140 length 140
ELIF nextPh(N) THEN
length 102
ELSE ELSE
length 200 length 200
ENDIF ENDIF
FMT(vnasal/&u_n)
//FMT(vnasal/&u_n)
FMT(vietnam/O_short_2)
endphoneme endphoneme






phoneme iE // iê : viết, giệc phoneme iE // iê : viết, giệc
vwl starttype #i endtype #e 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 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 endphoneme


phoneme Oi // oai sound phoneme Oi // oai sound
endphoneme endphoneme


phoneme k phoneme k
vls vel frc
vls vel stp
lengthmod 3 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 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 Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20
WAV(ustop/c)
//WAV(ustop/c)
endphoneme endphoneme


phoneme N // si**ng** phoneme N // si**ng**
vcd lbv nas 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 Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk
ENDIF
lengthmod 12 // longer than 'n' 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 endphoneme


phoneme l phoneme l
vcd alv stp vcd alv stp
// lengthmod 5 // lengthmod 5
ipa ɗ 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 endphoneme
phoneme c phoneme c
phoneme p phoneme p
vls blb stp vls blb stp
lengthmod 2 lengthmod 2
length 15
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22 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 endphoneme


phoneme t[ // dental variant of /t/ phoneme t[ // dental variant of /t/
vls alv stp vls alv stp
voicingswitch d voicingswitch d
lengthmod 2 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 ELSE
vls dnt stp vls dnt stp
voicingswitch d[ voicingswitch d[
lengthmod 2 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 Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 len=15


IF nextPh(isPause2) THEN IF nextPh(isPause2) THEN


phoneme w phoneme w
liquid liquid
length 20
starttype #u starttype #u
IF nextPh(isVowel) THEN IF nextPh(isVowel) THEN
length 20
NextVowelStarts NextVowelStarts
VowelStart(w/w@) VowelStart(w/w@)
VowelStart(w/wa) VowelStart(w/wa)


VowelEnding(w/xw, -30) VowelEnding(w/xw, -30)
IF nextPh(isVowel) AND prevPhW(t[) THEN 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) FMT(w/w)
ELSEIF prevPhW(h) THEN ELSEIF prevPhW(h) THEN
// none, [hw] // none, [hw]
ELSE ELSE
FMT(w/_w)
//FMT(w/_w) addWav(vietnam/w)
FMT(vietnam/_w)
ENDIF ENDIF
ELSE ELSE
// no vowel follows // no vowel follows
Vowelout len=50
IF prevPh(#i) THEN
FMT(w/iw_)
length 80
Vowelout len=20 rms=20
//FMT(w/w_)
FMT(vietnam/w_, 150)
ENDIF
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 ENDIF
FMT(w/w_)
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 ENDIF
endphoneme
WAV(h/h_, 70) // no vowel following
endphoneme

BIN
phsource/vietnam/@_2 View File


BIN
phsource/vietnam/O_short View File


BIN
phsource/vietnam/O_short_2 View File


BIN
phsource/vietnam/V_2 View File


BIN
phsource/vietnam/_w View File


BIN
phsource/vietnam/a_2 View File


BIN
phsource/vietnam/aa View File


BIN
phsource/vietnam/c.wav View File


BIN
phsource/vietnam/c_2.wav View File


BIN
phsource/vietnam/dd_2.wav View File


BIN
phsource/vietnam/dda.wav View File


BIN
phsource/vietnam/dda_2.wav View File


BIN
phsource/vietnam/e View File


BIN
phsource/vietnam/e_2 View File


BIN
phsource/vietnam/e_e View File


BIN
phsource/vietnam/e_e_2 View File


BIN
phsource/vietnam/e_short_1 View File


BIN
phsource/vietnam/hi.wav View File


BIN
phsource/vietnam/hu.wav View File


BIN
phsource/vietnam/i View File


BIN
phsource/vietnam/i_2 View File


BIN
phsource/vietnam/ie View File


BIN
phsource/vietnam/n^_ View File


BIN
phsource/vietnam/o# View File


BIN
phsource/vietnam/o_2 View File


BIN
phsource/vietnam/oo View File


BIN
phsource/vietnam/u View File


BIN
phsource/vietnam/u@ View File


BIN
phsource/vietnam/w.wav View File


BIN
phsource/vietnam/w_ View File


BIN
phsource/vietnam/y View File


BIN
phsource/vietnam/y@ View File


BIN
phsource/vietnam/y_2 View File


BIN
src/windows/Debug/[email protected] View File


BIN
src/windows/Debug/output_e.wav View File


BIN
src/windows/Debug/output_i.wav View File


+ 1
- 1
tests/language-pronunciation.test View File

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 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 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'[email protected]:\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 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'[email protected]:\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). ##### Fallback to other languages in different scripts (language switch).



Loading…
Cancel
Save