mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 13:38:47 +00:00
994 lines
19 KiB
Plaintext
994 lines
19 KiB
Plaintext
|
|
//====================================================
|
|
// Vietnamese Phonemes
|
|
//====================================================
|
|
|
|
|
|
phoneme 1 // ngang tone: level
|
|
stress
|
|
Tone(27, 25, envelope/p_level, NULL) // 28 29
|
|
endphoneme
|
|
|
|
|
|
phoneme 2 // huyền tone: low falling
|
|
stress
|
|
Tone(20, 8, envelope/p_fall, NULL) //20 8
|
|
endphoneme
|
|
|
|
|
|
phoneme 3 // sắc Tone(rising
|
|
stress
|
|
Tone(20, 50, envelope/p_rise, NULL) // 30 60
|
|
endphoneme
|
|
|
|
|
|
phoneme 4 // hỏi Tone(curve (dipping rising)
|
|
stress
|
|
Tone(10, 31, envelope/p_fallrise, NULL) //33 31
|
|
endphoneme
|
|
|
|
|
|
phoneme 5 // ngã tone: broken (creaking rising)
|
|
stress
|
|
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(34, 10, envelope/p_512, envelope/vi_6amp) //40 20
|
|
endphoneme
|
|
|
|
|
|
phoneme 7 // Tone(1 (ngang) at end of clause
|
|
stress
|
|
Tone(30, 28, envelope/p_fall, NULL) //40 20
|
|
endphoneme
|
|
|
|
|
|
|
|
// Vowels
|
|
//=======
|
|
|
|
|
|
phoneme a
|
|
vwl starttype #@ endtype #@
|
|
IF nextPhW(p) THEN
|
|
length 78
|
|
ELIF nextPhW(t[) THEN
|
|
length 84
|
|
ELIF nextPhW(c) THEN
|
|
length 82
|
|
ELIF nextPhW(m) THEN
|
|
length 90
|
|
ELIF nextPhW(n) THEN
|
|
length 100
|
|
ELIF nextPhW(N) THEN
|
|
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 140
|
|
ELSE
|
|
length 100
|
|
ENDIF
|
|
|
|
FMT(vietnam/a_2) //a_4)
|
|
|
|
endphoneme
|
|
|
|
phoneme a:
|
|
vwl starttype #a endtype #a
|
|
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 200
|
|
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 333
|
|
ELSE
|
|
length 180
|
|
ENDIF
|
|
//FMT(vowel/a_8)
|
|
FMT(vietnam/aa)
|
|
endphoneme
|
|
|
|
|
|
phoneme E
|
|
vwl starttype #e endtype #e
|
|
|
|
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
|
|
//FMT(vowel/e_e) //ee_3)
|
|
FMT(vietnam/e_e_2)
|
|
endphoneme
|
|
|
|
phoneme e
|
|
vwl starttype #e endtype #e
|
|
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 300
|
|
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
|
|
IF nextPh(n^) THEN
|
|
FMT(vowel/e)
|
|
ELSE
|
|
FMT(vietnam/e, 150)
|
|
ENDIF
|
|
endphoneme
|
|
|
|
|
|
phoneme e-
|
|
vwl starttype #e endtype #a
|
|
length 140
|
|
FMT(vietnam/e_short_1)
|
|
//FMT(vdiph/aai_3)
|
|
endphoneme
|
|
|
|
phoneme i
|
|
vwl starttype #i endtype #i
|
|
IfNextVowelAppend(;)
|
|
IF prevPhW(w) THEN
|
|
VowelStart(w/wi)
|
|
ENDIF
|
|
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
|
|
//FMT(vnasal/ii_n)
|
|
FMT(vietnam/i)
|
|
ELSE
|
|
//FMT(vowel/i_4)
|
|
FMT(vietnam/i_2, 100)
|
|
ENDIF
|
|
endphoneme
|
|
|
|
|
|
phoneme O
|
|
vwl starttype #o endtype #o
|
|
IF nextPhW(p) THEN
|
|
length 129
|
|
ELIF nextPhW(t[) THEN
|
|
length 125
|
|
ELIF nextPhW(c) THEN
|
|
length 80
|
|
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 300
|
|
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
|
|
//FMT(vdiph2/o_oo) //vowel/oo)
|
|
FMT(vietnam/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 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
|
|
//FMT(vowel/o) // o_2)
|
|
FMT(vietnam/o_2)
|
|
endphoneme
|
|
|
|
|
|
phoneme u
|
|
vwl starttype #u endtype #u
|
|
|
|
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 300
|
|
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
|
|
//FMT(vnasal/u_n) //vowel/u_5)
|
|
FMT(vietnam/u)
|
|
endphoneme
|
|
|
|
phoneme y
|
|
vwl starttype #u endtype #u
|
|
IF nextPhW(p) THEN
|
|
length 102
|
|
ELIF nextPhW(t[) THEN
|
|
length 76
|
|
ELIF nextPhW(c) THEN
|
|
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 300
|
|
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
|
|
//FMT(vowel/u#_5)
|
|
FMT(vietnam/y_2, 60)
|
|
endphoneme
|
|
|
|
|
|
|
|
phoneme @
|
|
vwl starttype #@ endtype #a
|
|
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
|
|
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
|
|
length 240
|
|
ELSE
|
|
length 180
|
|
ENDIF
|
|
// FMT(vowel/V) //vowel/@_2)
|
|
FMT(vietnam/V_2)
|
|
endphoneme
|
|
|
|
|
|
phoneme @:
|
|
vwl starttype #@ endtype #@
|
|
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
|
|
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
|
|
length 333
|
|
ELSE
|
|
length 180
|
|
ENDIF
|
|
//FMT(vowel/@_2)
|
|
FMT(vietnam/@_2)
|
|
endphoneme
|
|
|
|
|
|
|
|
// Diphthongs
|
|
//===========
|
|
|
|
phoneme aI
|
|
vwl starttype #a endtype #i
|
|
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 240 //250
|
|
FMT(vdiph/ai)
|
|
endphoneme
|
|
|
|
|
|
phoneme @I
|
|
vwl starttype #@ endtype #i
|
|
length 240 //250
|
|
FMT(vdiph/@i)
|
|
endphoneme
|
|
|
|
|
|
phoneme @:I
|
|
vwl starttype #@ endtype #i
|
|
length 240 //250
|
|
FMT(vdiph/y#i)
|
|
endphoneme
|
|
|
|
|
|
phoneme eI
|
|
vwl starttype #e endtype #i
|
|
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
|
|
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 240
|
|
FMT(vdiph/ooi_4)
|
|
endphoneme
|
|
|
|
|
|
phoneme oI
|
|
vwl starttype #o endtype #i
|
|
length 240
|
|
FMT(vdiph/oi)
|
|
endphoneme
|
|
|
|
|
|
phoneme uI
|
|
vwl starttype #u endtype #i
|
|
length 240
|
|
FMT(vdiph/ui)
|
|
endphoneme
|
|
|
|
phoneme yI
|
|
vwl starttype #u endtype #i
|
|
length 240
|
|
FMT(vdiph/u-i)
|
|
endphoneme
|
|
|
|
|
|
|
|
|
|
phoneme aU
|
|
vwl starttype #a endtype #u
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
|
|
length 240
|
|
ELSE
|
|
length 200
|
|
ENDIF
|
|
FMT(vdiph/@u)
|
|
endphoneme
|
|
|
|
|
|
|
|
phoneme i@
|
|
vwl starttype #i endtype #@
|
|
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 #@
|
|
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
|
|
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
|
|
length 240
|
|
ELSE
|
|
length 200
|
|
ENDIF
|
|
//FMT(vdiph2/y-y#)
|
|
FMT(vietnam/y@)
|
|
endphoneme
|
|
|
|
phoneme u@
|
|
vwl starttype #u endtype #@
|
|
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
|
|
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
|
|
length 333
|
|
ELSE
|
|
length 240
|
|
ENDIF
|
|
//FMT(vdiph2/uu@)-
|
|
FMT(vietnam/u@)
|
|
endphoneme
|
|
|
|
// Addition Dipthongs
|
|
|
|
phoneme o# // ông
|
|
vwl starttype #o endtype #o
|
|
IF nextPhW(k) THEN
|
|
length 120
|
|
ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
|
|
length 360
|
|
ELIF nextPhW(N) THEN
|
|
length 99
|
|
ELIF nextPhW(k) THEN
|
|
length 88
|
|
ELSE
|
|
length 200
|
|
ENDIF
|
|
//FMT(vnasal/a#u_n)
|
|
FMT(vietnam/o#)
|
|
endphoneme
|
|
|
|
phoneme O# // ong
|
|
vwl starttype #o endtype #o
|
|
IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
|
|
length 240
|
|
ELIF nextPh(k) THEN
|
|
length 140
|
|
ELIF nextPh(N) THEN
|
|
length 102
|
|
ELSE
|
|
length 200
|
|
ENDIF
|
|
//FMT(vnasal/&u_n)
|
|
FMT(vietnam/O_short_2)
|
|
endphoneme
|
|
|
|
|
|
phoneme o@
|
|
vwl starttype #o endtype #a
|
|
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
|
|
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
|
|
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
|
|
ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
|
|
length 324
|
|
ELSE
|
|
length 180
|
|
ENDIF
|
|
FMT(vietnam/ie)
|
|
endphoneme
|
|
|
|
phoneme Oi // oai sound
|
|
vwl starttype #o endtype #i
|
|
IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
|
|
length 240
|
|
ELSE
|
|
length 200
|
|
ENDIF
|
|
FMT(vdiph/ooi_3)
|
|
endphoneme
|
|
|
|
// Vowel and Dipthong for south dialect
|
|
|
|
phoneme O- // ôi southern sound
|
|
vwl starttype #o endtype #i
|
|
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
|
|
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
|
|
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(ustop/k_unasp) //ufric/x, 50)
|
|
endphoneme
|
|
|
|
phoneme k
|
|
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)
|
|
|
|
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'
|
|
IF thisPh(isWordEnd) THEN
|
|
length 163
|
|
ENDIF
|
|
IF thisPh(isWordEnd) THEN
|
|
FMT(n/nm, 50)
|
|
ELSE
|
|
FMT(nn/_nn)
|
|
ENDIF
|
|
endphoneme
|
|
|
|
phoneme l
|
|
liquid
|
|
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 len=15
|
|
//lengthmod 7
|
|
//IF nextPh(isNotVowel) THEN
|
|
// ChangePhoneme(l/2)
|
|
//ENDIF
|
|
//CALL vowelstart_l
|
|
|
|
FMT(l/l_vi)
|
|
endphoneme
|
|
|
|
phoneme t
|
|
vls alv stp
|
|
//voicingswitch d
|
|
lengthmod 2
|
|
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 len=15
|
|
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
|
|
|
|
WAV(vietnam/th, 50)
|
|
endphoneme
|
|
|
|
phoneme cr
|
|
vls pla afr sib
|
|
//voicingswitch dZ
|
|
lengthmod 2
|
|
Vowelin f1=0 f2=2300 200 400 f3=-100 80 len=15
|
|
|
|
|
|
WAV(vietnam/tr,10)
|
|
endphoneme
|
|
|
|
phoneme d_
|
|
vcd alv stp
|
|
// lengthmod 5
|
|
ipa ɗ
|
|
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
|
|
vls pal stp pzd
|
|
//voicingswitch J
|
|
lengthmod 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
|
|
|
|
|
|
WAV(vietnam/ch,5)
|
|
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
|
|
|
|
IF thisPh(isWordEnd) THEN
|
|
WAV(ustop/p_unasp_, 10)
|
|
ELSE
|
|
WAV(ustop/p)
|
|
ENDIF
|
|
endphoneme
|
|
|
|
phoneme t[ // dental variant of /t/
|
|
IF thisPh(isWordEnd) THEN
|
|
vls alv stp
|
|
voicingswitch d
|
|
lengthmod 2
|
|
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
|
|
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
|
|
WAV(ustop/t_unasp2, 5)
|
|
ENDIF
|
|
WAV(ustop/t_hi, 70)
|
|
ENDIF
|
|
endphoneme
|
|
|
|
phoneme w
|
|
liquid
|
|
|
|
starttype #u
|
|
|
|
IF nextPh(isVowel) THEN
|
|
length 20
|
|
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) addWav(vietnam/w, 50)
|
|
ELIF prevPhW(isNasal) THEN
|
|
FMT(w/w)
|
|
ELSEIF prevPhW(h) THEN
|
|
// none, [hw]
|
|
ELSE
|
|
//FMT(w/_w) addWav(vietnam/w)
|
|
FMT(vietnam/_w)
|
|
ENDIF
|
|
ELSE
|
|
// no vowel follows
|
|
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
|
|
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
|