Browse Source

Merge branch #593

master
Valdis Vitolins 6 years ago
parent
commit
3f1b415334

+ 38
- 21
dictsource/vi_rules View File

@@ -84,6 +84,7 @@ ỵ ỵ
.L03 ch nh
.L04 a u ă â o ô á à ả ã ạ ù ú ủ ũ ụ ắ ằ ẳ ẵ ặ ấ ầ ẩ ẫ ậ ó ò ỏ õ ọ ố ồ ổ ỗ ộ ư ứ ừ ử ữ ự ơ ớ ờ ở ỡ ợ
.L05 o ó ò ỏ õ ọ ô ố ồ ộ ỗ ổ
.group b
b b
_) b _b
@@ -267,7 +268,13 @@ ỵ ỵ
.group q
q k
q (_ k
qu kw //kw
qu kw //kw
quô ku@
quồ ku@2
quố ku@3
quổ ku@4
quỗ ku@5
quộ ku@6
@@ -389,7 +396,7 @@ ỵ ỵ
a (L01 _^_EN
ai (L02 _^_EN
a (@ _^_EN
a (L03 a
a (L03 e-
.group à
@@ -397,7 +404,7 @@ ỵ ỵ
ài a:I2
ày aI2
?2 ày a:I2
à (L03 e-2
@@ -419,7 +426,8 @@ ỵ ỵ
áu aU3
?2 áu a:U3
?2 áy a:I3
á (L03 e-3
.group ả
ả a:4
ải a:I4
@@ -428,6 +436,7 @@ ỵ ỵ
ảu aU4
?2 ảu a:U4
?2 ảy a:I4
ả (L03 e-4
.group ã
ã a:5
@@ -437,6 +446,7 @@ ỵ ỵ
ãu aU5
?2 ãu a:U5
?2 ãy a:I5
ã (L03 e-5
.group ạ
ạ a:6
@@ -446,6 +456,7 @@ ỵ ỵ
ạu aU6
?2 ạu a:U6
?2 ạy a:I6
ạ (L03 e-6
//================================
@@ -784,14 +795,14 @@ ỵ ỵ
oĩ OI5
oị OI6
ong O#
oe o& // Adding oe sound example: lóe sáng,toét mắt
oai Oi // oai sound
oe wE // Adding oe sound example: lóe sáng,toét mắt
oai wa:I // oai sound
o (@ _^_EN
oại Oi6
oài Oi2
oái Oi3
oải Oi4
oãi Oi5
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
@@ -799,13 +810,19 @@ ỵ ỵ
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
.group ò
ò O2
òi OI2
òa o@2 //ò (A w2
òng O#2
òe o&2
òe wE2
@@ -818,7 +835,7 @@ ỵ ỵ
ói OI3
óa o@3 //ó (A w3
óng O#3
óe o&3
óe wE3
óc O#3k
@@ -831,7 +848,7 @@ ỵ ỵ
ỏi OI4
ỏa o@4 //ỏ (A w4
ỏng O#4
ỏe o&4
ỏe wE4
@@ -844,7 +861,7 @@ ỵ ỵ
õi OI5
õa o@5 //õ (A w5
õng O#5
õe o&5
õe wE5
@@ -857,7 +874,7 @@ ỵ ỵ
ọi OI6
ọa o@6 //ọ (A w6
ọng O#6
ọe o&6
ọe wE6
ọc O#6k
@@ -873,7 +890,7 @@ ỵ ỵ
ôi oI
ông o# // ông sound
?2 ôi O- //south dialect
ôc o#k
.group ồ
@@ -891,7 +908,7 @@ ỵ ỵ
ối oI3
ống o#3
?2 ối O-3
ốc o#3k
@@ -921,7 +938,7 @@ ỵ ỵ
ội oI6
// ộng o#6
?2 ội O-6
ộc o#6k
@@ -994,8 +1011,9 @@ ỵ ỵ
.group u
u u
u (A u
u (A w
A) u w
gi) u u
ui uI
uì uI2
uí uI3
@@ -1025,7 +1043,6 @@ ỵ ỵ
u (@ _^_EN
// ua (L01 _^_EN
?2 u u-
.group ù

+ 1
- 1
espeak-ng-data/lang/aav/vi View File

@@ -2,4 +2,4 @@ name Vietnamese (Northern)
language vi

words 1
pitch 100 180
pitch 90 170

+ 16
- 0
espeak-ng-data/voices/!v/Nguyen View File

@@ -0,0 +1,16 @@
language variant
name Nguyen

pitch 95 175

formant 0 100 125 100
formant 1 96 90 80
formant 2 97 70 90
formant 3 97 60 90
formant 4 97 60 90
formant 5 75 50 90
formant 6 90 50 100
formant 7 100 50 100
formant 8 100 50 100

tone 100 200 600 150 800 100 2400 80 3600 95 5400 100

+ 294
- 74
phsource/ph_vietnam View File

@@ -54,85 +54,189 @@ endphoneme

phoneme a
vwl starttype #@ endtype #@
IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
IF nextPhW(p) THEN
length 142
ELIF nextPhW(t[) THEN
length 126
ELIF nextPhW(c) THEN
length 136
ELIF nextPhW(m) THEN
length 155
ELIF nextPhW(n) THEN
length 185
ELIF nextPhW(N) THEN
length 173
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 240
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
length 240
ELSE
ELSE
length 180
ENDIF
ENDIF
IF nextPh(N) OR nextPh(c) THEN
FMT(vnasal/a_n)
ELSE
//FMT(vietnam/a) //a_4)
FMT(vietnam/a_x)
FMT(vietnam/a, 60) //a_4)
ENDIF
endphoneme

phoneme a:
vwl starttype #a endtype #a
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
IF nextPhW(p) THEN
length 142
ELIF nextPhW(t[) THEN
length 126
ELIF nextPhW(c) THEN
length 136
ELIF nextPhW(m) THEN
length 155
ELIF nextPhW(n) THEN
length 185
ELIF nextPhW(N) THEN
length 173
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 280
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
length 240
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
length 333
ELSE
length 180 //200
length 180
ENDIF
// FMT(vowel/a_8)
FMT(vietnam/a_2)
FMT(vowel/a_8)
//FMT(vietnam/a_2)
endphoneme


phoneme E
vwl starttype #e endtype #e
IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 240
ELSE
IF nextPhW(p) THEN
length 143
ELIF nextPhW(t[) THEN
length 107
ELIF nextPhW(c) THEN
length 141
ELIF nextPhW(m) THEN
length 128
ELIF nextPhW(n) THEN
length 160
ELIF nextPhW(N) THEN
length 187
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 300
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
length 240
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
length 352
ELSE
length 180
ENDIF
ENDIF
FMT(vowel/e_e) //ee_3)
endphoneme

phoneme e
vwl starttype #e endtype #e
IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 240
ELSE
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 thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 270
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
length 240
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
length 324
ELSE
length 180
ENDIF
// FMT(vowel/e)
ENDIF
IF nextPh(n^) THEN
FMT(vowel/e)
ELSE
FMT(vietnam/e)
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)
endphoneme

phoneme i
vwl starttype #i endtype #i
IfNextVowelAppend(;)
IF prevPhW(w) THEN
VowelStart(w/wi)
ENDIF
IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 240
IF nextPhW(p) THEN
length 131
ELIF nextPhW(t[) THEN
length 113
ELIF nextPhW(c) OR nextPhW(n^) THEN
length 72
ELIF nextPhW(m) THEN
length 120
ELIF nextPhW(n) THEN
length 128
ELIF nextPhW(N) THEN
length 97
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 310
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
length 240
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
length 363
ELSE
length 180
ENDIF
IF nextPh(n^) OR nextPh(c) THEN
length 100
FMT(vnasal/ii_n)
ELSE
length 180
FMT(vowel/i_4)
FMT(vowel/i_4)
ENDIF
endphoneme


phoneme O
vwl starttype #o endtype #o
IF nextPh(kh) OR nextPh(N) THEN
IF nextPhW(p) THEN
length 129
ELIF nextPhW(t[) THEN
length 125
ELIF nextPhW(c) THEN
length 80
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 240
ELSE
ELIF nextPhW(m) THEN
length 133
ELIF nextPhW(n) THEN
length 158
ELIF nextPhW(N) THEN
length 102
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 280
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
length 240
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
length 331
ELSE
length 180
ENDIF
ENDIF
FMT(vdiph2/o_oo) //vowel/oo)
endphoneme

@@ -150,38 +254,81 @@ 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
IF nextPhW(p) THEN
length 140
ELIF nextPhW(t[) THEN
length 113
ELIF nextPhW(c) THEN
length 88
ELIF nextPhW(m) THEN
length 134
ELIF nextPhW(n) THEN
length 168
ELIF nextPhW(N) THEN
length 99
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 310
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
length 240
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
length 363
ELSE
length 180
ENDIF
ENDIF
FMT(vowel/o) // o_2)
endphoneme


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
IF nextPhW(p) THEN
length 110
ELIF nextPhW(t[) THEN
length 94
ELIF nextPhW(c) THEN
length 83
ELIF nextPhW(m) THEN
length 141
ELIF nextPhW(n) THEN
length 177
ELIF nextPhW(N) THEN
length 80
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 280
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
length 240
ELSE
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
length 333
ELSE
length 180
ENDIF
FMT(vnasal/u_n,60) //vowel/u_5)
ENDIF
FMT(vnasal/u_n) //vowel/u_5)
endphoneme

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
IF nextPhW(p) THEN
length 102
ELIF nextPhW(t[) THEN
length 76
ELIF nextPhW(c) THEN
length 70
ELIF nextPhW(m) THEN
length 143
ELIF nextPhW(n) THEN
length 136
ELIF nextPhW(N) THEN
length 101
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 270
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
length 240
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
length 328
ELSE
length 180
ENDIF
ENDIF
FMT(vowel/u#_5)
endphoneme

@@ -189,13 +336,25 @@ endphoneme

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
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 240
ELSE
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
length 240
ELSE
length 180
ENDIF
ENDIF
// FMT(vowel/V) //vowel/@_2)
FMT(vietnam/V)
endphoneme
@@ -203,11 +362,27 @@ endphoneme

phoneme @:
vwl starttype #@ endtype #@
IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 240
ELSE
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 280
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
length 240
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
length 333
ELSE
length 180
ENDIF
ENDIF
FMT(vowel/@_2)
endphoneme

@@ -408,7 +583,9 @@ endphoneme

phoneme o# // ông
vwl starttype #o endtype #o
IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
IF nextPhW(k) THEN
length 120
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 240
ELSE
length 200
@@ -521,9 +698,7 @@ 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

@@ -573,7 +748,7 @@ WAV(vietnam/dd)
vls pal stp pzd
//voicingswitch J
lengthmod 2
length 2
length 50
Vowelin f1=0 f2=2700 400 600 f3=300 80 len=15 brk
Vowelout f1=1 f2=2700 400 600 f3=200 70 len=15 colr=1

@@ -593,16 +768,61 @@ phoneme p
endphoneme

phoneme t[ // dental variant of /t/
vls dnt 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
IF thisPh(isWordEnd) THEN
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)
ELSE
vls dnt 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

IF nextPh(isPause2) THEN
WAV(ustop/t_unasp2, 5)
IF nextPh(isPause2) THEN
WAV(ustop/t_unasp2, 5)
ENDIF
WAV(ustop/t_hi, 70)
ENDIF
WAV(ustop/t_hi, 70)
endphoneme

phoneme w
liquid
length 20
starttype #u
IF nextPh(isVowel) THEN
NextVowelStarts
VowelStart(w/w@)
VowelStart(w/wa)
VowelStart(w/we)
VowelStart(w/wi)
VowelStart(w/wo)
VowelStart(w/wu)
EndSwitch

VowelEnding(w/xw, -30)
IF nextPh(isVowel) AND prevPhW(t[) THEN
FMT(vnasal/u_n, 60)
ENDIF
IF prevPhW(isNasal) THEN
FMT(w/w)
ELSEIF prevPhW(h) THEN
// none, [hw]
ELSE
FMT(w/_w)
ENDIF
ELSE
// no vowel follows
Vowelout len=50
IF prevPh(#i) THEN
FMT(w/iw_)
ENDIF
FMT(w/w_)
ENDIF
endphoneme

BIN
phsource/vietnam/e_short_2 View File


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

@@ -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'[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^_| 'a1n^_| 'E7m_|" "Tất cả mọi người sinh ra đều được tự do và bình đẳng về nhân phẩm và quyền lợi. Mọi con người đều được tạo hóa ban cho lý trí và lương tâm và cần phải đối xử với nhau trong tình anh em."
test_phonemes vi "Latn" "t['@3t[_| k'a:4_| m,OI6_| N'y@2j_| s'i1n^_| z'a:1_| d_'eU2_| d_,y@6c_| t['y6_| z'O1_| v,a:2_| _b'i2n^_| d_'a4N_| v'e2_| n^'@1n_| f'@4m_| v,a:2_| kw'i@2n_| l'@:I6_|\nm,OI6_| k,O1n_| N'y@2j_| d_'eU2_| d_,y@6c_| t['a:U6_| h'o@3_| _b'a:1n_| tS,O1_| l'i3_| tS'i3_| v,a:2_| l'y@1N_| t['@1m_| v,a:2_| k'@2n_| f,a:I4_| d_'oI3_| s'y4_| v,@:I3_| n^'aU1_| tS'O#1_| t['i2n^_| '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).


Loading…
Cancel
Save