|
|
@@ -39,123 +39,153 @@ |
|
|
|
phoneme 1 // low fall (¹), long vowels only |
|
|
|
stress |
|
|
|
ipa ˨˩ |
|
|
|
Tone(28, 7, envelope/p_fall, NULL) //need a pitch contour of 106-88 for a |
|
|
|
Tone(28, 7, envelope/chr_fall21, NULL) //need a pitch contour of 106-88 for a |
|
|
|
endphoneme |
|
|
|
|
|
|
|
|
|
|
|
phoneme 2 // low (²) |
|
|
|
stress |
|
|
|
ipa ˨ |
|
|
|
Tone(26, 16, envelope/p_fall, NULL) //need a pitch contour of 104-96 for a |
|
|
|
Tone(27, 16, envelope/chr_level2, NULL) //need a pitch contour of 104-96 for a |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme 23 // rising (²³) |
|
|
|
stress |
|
|
|
ipa ˨˧ |
|
|
|
Tone(15, 29, envelope/p_rise, NULL) //need a pitch contour of 97-109 for a |
|
|
|
Tone(16, 30, envelope/chr_rise23, NULL) //need a pitch contour of 97-109 for a |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme 32 // falling (³²) |
|
|
|
stress |
|
|
|
ipa ˧˨ |
|
|
|
Tone(46, 16, envelope/p_fall, NULL) //need a pitch contour of 122-97 for a |
|
|
|
Tone(45, 15, envelope/chr_fall32, NULL) //need a pitch contour of 122-97 for a |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme 3 // high (³) |
|
|
|
stress |
|
|
|
ipa ˧ |
|
|
|
//Tone(109, 116, envelope/p_rise, NULL) //need a pitch contour of 108-112 for a |
|
|
|
Tone(29, 34, envelope/p_rise, NULL) //need a pitch contour of 108-112 for a |
|
|
|
Tone(29, 35, envelope/chr_level3, NULL) //need a pitch contour of 108-112 for a |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme 4 // extra high rise (⁴) |
|
|
|
stress |
|
|
|
ipa ˧˦ |
|
|
|
Tone(29, 50, envelope/p_rise, NULL) //need a pitch contour of 109-127 for a |
|
|
|
Tone(29, 52, envelope/chr_rise4, NULL) //need a pitch contour of 109-127 for a |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme 43 // extra high fall (⁴³) - end of word tone |
|
|
|
stress |
|
|
|
ipa ˦˧ |
|
|
|
//need a pitch contour of 122-75 for a~ |
|
|
|
Tone(45, 0, envelope/p_fall, NULL) |
|
|
|
Tone(44, 0, envelope/chr_fall43, NULL) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
//******************************************************************* |
|
|
|
// LANGUAGE SPECIFIC CONSONANTS (PLOSIVES/STOPS) |
|
|
|
//******************************************************************* |
|
|
|
//none. |
|
|
|
|
|
|
|
//******************************************************************* |
|
|
|
// LANGUAGE SPECIFIC VOWELS |
|
|
|
//******************************************************************* |
|
|
|
|
|
|
|
//from phonemes |
|
|
|
phoneme : // lengthen previous vowel by "length" |
|
|
|
virtual |
|
|
|
length 175 |
|
|
|
length 300 |
|
|
|
endphoneme |
|
|
|
|
|
|
|
// ạ, a |
|
|
|
//from ph_en |
|
|
|
phoneme A: |
|
|
|
vwl starttype #a endtype #a |
|
|
|
length 175 |
|
|
|
FMT(vowel/aa_2) |
|
|
|
phoneme 0 |
|
|
|
vwl starttype #o endtype #o |
|
|
|
length 300 |
|
|
|
FMT(vowel/0_3) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
// ạ, a, end of word vowel |
|
|
|
//from ph_english |
|
|
|
phoneme A~ |
|
|
|
vwl starttype #a endtype #a |
|
|
|
length 175 |
|
|
|
FMT(vnasal/aa_n2) |
|
|
|
phoneme 0` |
|
|
|
vwl starttype #o endtype #o |
|
|
|
length 100 |
|
|
|
FMT(vowel/0_3) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
// e, ẹ |
|
|
|
//from ph_base2 |
|
|
|
phoneme E |
|
|
|
vwl starttype #e endtype #e |
|
|
|
length 175 |
|
|
|
FMT(vowel/ee_1) |
|
|
|
phoneme 0~ |
|
|
|
vwl starttype #o endtype #o |
|
|
|
length 300 |
|
|
|
FMT(vnasal/aa_n4) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme 0~` |
|
|
|
vwl starttype #o endtype #o |
|
|
|
length 100 |
|
|
|
FMT(vnasal/aa_n4) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme e |
|
|
|
vwl starttype #e endtype #e |
|
|
|
length 300 |
|
|
|
FMT(vowel/e_mid) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme e` |
|
|
|
vwl starttype #e endtype #e |
|
|
|
length 100 |
|
|
|
FMT(vowel/e_mid) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
// e, ẹ, final word vowel |
|
|
|
//from ph_konkani |
|
|
|
phoneme E~ |
|
|
|
vwl starttype #e endtype #e |
|
|
|
length 175 |
|
|
|
phoneme e~ |
|
|
|
vwl starttype #e endtype #e |
|
|
|
length 300 |
|
|
|
FMT(vnasal/ee_n2) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
// i, ị |
|
|
|
//from ph_en |
|
|
|
phoneme I |
|
|
|
vwl starttype #i endtype #i |
|
|
|
length 175 |
|
|
|
FMT(vowel/ii_2) |
|
|
|
phoneme e~` |
|
|
|
vwl starttype #e endtype #e |
|
|
|
length 100 |
|
|
|
FMT(vnasal/ee_n2) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme i |
|
|
|
vwl starttype #i endtype #i |
|
|
|
length 300 |
|
|
|
//IfNextVowelAppend(;) |
|
|
|
FMT(vowel/i) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme i` |
|
|
|
vwl starttype #i endtype #i |
|
|
|
length 100 |
|
|
|
//IfNextVowelAppend(;) |
|
|
|
FMT(vowel/i) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme i~ |
|
|
|
vwl starttype #i endtype #i |
|
|
|
length 300 |
|
|
|
//IfNextVowelAppend(;) |
|
|
|
FMT(vnasal/i_n) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
// i, ị, final word vowel |
|
|
|
//from ph_konkani |
|
|
|
phoneme I~ |
|
|
|
vwl starttype #i endtype #i |
|
|
|
length 175 |
|
|
|
FMT(vnasal/ii_n) |
|
|
|
phoneme i~` |
|
|
|
vwl starttype #i endtype #i |
|
|
|
length 100 |
|
|
|
//IfNextVowelAppend(;) |
|
|
|
FMT(vnasal/i_n) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
// o, ọ |
|
|
|
//from ph_base2 |
|
|
|
phoneme o |
|
|
|
vwl starttype #o endtype #o |
|
|
|
length 175 |
|
|
|
length 300 |
|
|
|
FMT(vowel/o) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme o` |
|
|
|
vwl starttype #o endtype #o |
|
|
|
length 100 |
|
|
|
FMT(vowel/o) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
// o, ọ, final word vowel |
|
|
|
phoneme o~ |
|
|
|
vwl starttype #o endtype #o |
|
|
|
length 175 |
|
|
|
length 300 |
|
|
|
FMT(vnasal/o_n) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme o~` |
|
|
|
vwl starttype #o endtype #o |
|
|
|
|
|
|
|
length 100 |
|
|
|
FMT(vnasal/o_n) |
|
|
|
endphoneme |
|
|
|
|
|
|
@@ -163,59 +193,210 @@ endphoneme |
|
|
|
//from ph_base2 |
|
|
|
phoneme u |
|
|
|
vwl starttype #u endtype #u |
|
|
|
length 175 |
|
|
|
length 300 |
|
|
|
FMT(vowel/u_bck) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme u` |
|
|
|
vwl starttype #u endtype #u |
|
|
|
length 100 |
|
|
|
FMT(vowel/u_bck) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
// u, ụ, final word vowel |
|
|
|
phoneme u~ |
|
|
|
vwl starttype #u endtype #u |
|
|
|
length 175 |
|
|
|
length 300 |
|
|
|
FMT(vnasal/u_n) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme u~` |
|
|
|
vwl starttype #u endtype #u |
|
|
|
length 100 |
|
|
|
FMT(vnasal/u_n) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
//ṿ, v |
|
|
|
//from ph_french |
|
|
|
phoneme W~ |
|
|
|
vwl starttype #@ endtype #@ |
|
|
|
length 175 |
|
|
|
FMT(vnasal/W_n) |
|
|
|
phoneme V~ |
|
|
|
vwl lng starttype #@ endtype #@ |
|
|
|
length 300 |
|
|
|
FMT(vnasal/V_n, 100) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme V~` |
|
|
|
vwl lng starttype #@ endtype #@ |
|
|
|
length 100 |
|
|
|
FMT(vnasal/V_n) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme h |
|
|
|
vls glt apr |
|
|
|
ipa h |
|
|
|
|
|
|
|
IF prevPhW(isVowel) AND nextPhW(isNotVowel) THEN |
|
|
|
length 25 |
|
|
|
lengthmod 1 |
|
|
|
ENDIF |
|
|
|
|
|
|
|
IF nextPhW(#@) THEN |
|
|
|
length 50 |
|
|
|
WAV(h/h@, 70) |
|
|
|
ELIF nextPhW(#a) THEN |
|
|
|
WAV(h/ha) |
|
|
|
ELIF nextPhW(#e) THEN |
|
|
|
length 60 |
|
|
|
WAV(h/he, 75) |
|
|
|
ELIF nextPhW(#i) THEN |
|
|
|
length 75 |
|
|
|
WAV(h/hi) |
|
|
|
ELIF nextPhW(#o) THEN |
|
|
|
length 75 |
|
|
|
WAV(h/ho) |
|
|
|
ELIF nextPhW(#u) THEN |
|
|
|
length 80 |
|
|
|
WAV(h/hu) |
|
|
|
ELSE |
|
|
|
length 60 |
|
|
|
WAV(h/h_) // no vowel following |
|
|
|
ENDIF |
|
|
|
endphoneme |
|
|
|
|
|
|
|
// fix specific consonents to last long enough to be heard |
|
|
|
phoneme lxx |
|
|
|
import_phoneme base2/l |
|
|
|
length 75 |
|
|
|
Tone(105, 93, envelope/p_fall, NULL) |
|
|
|
phoneme h` |
|
|
|
vls glt apr |
|
|
|
ipa h |
|
|
|
length 10 |
|
|
|
WAV(h/h_) // no vowel following |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme mxx |
|
|
|
import_phoneme base2/m |
|
|
|
length 75 |
|
|
|
Tone(105, 93, envelope/p_fall, NULL) |
|
|
|
phoneme s |
|
|
|
vls alv frc sib |
|
|
|
voicingswitch z |
|
|
|
lengthmod 3 |
|
|
|
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 |
|
|
|
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 |
|
|
|
|
|
|
|
IF nextPh(isPause) THEN |
|
|
|
WAV(ufric/s_) |
|
|
|
ELIF nextPh(p) OR nextPh(t) OR nextPh(k) THEN |
|
|
|
WAV(ufric/s!) |
|
|
|
ENDIF |
|
|
|
WAV(ufric/s) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme nxx |
|
|
|
import_phoneme base2/n |
|
|
|
length 75 |
|
|
|
Tone(105, 93, envelope/p_fall, NULL) |
|
|
|
phoneme g |
|
|
|
vcd vel stp |
|
|
|
voicingswitch k |
|
|
|
lengthmod 5 |
|
|
|
Vowelin f1=2 f2=2300 200 300 f3=-300 80 |
|
|
|
Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk |
|
|
|
|
|
|
|
// IF PreVoicing THEN |
|
|
|
//FMT(g/xg) |
|
|
|
//ENDIF |
|
|
|
|
|
|
|
IF nextPh(isPause2) THEN |
|
|
|
//addWav(ustop/k_) |
|
|
|
FMT(g/g_) addWav(ustop/k_) |
|
|
|
//addWav(x/g_) |
|
|
|
ELSE |
|
|
|
//addWav(ustop/k_asp) |
|
|
|
FMT(g/g) addWav(ustop/k_asp) |
|
|
|
//addWav(x/g) |
|
|
|
ENDIF |
|
|
|
|
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme wxx |
|
|
|
import_phoneme base2/w |
|
|
|
length 175 |
|
|
|
Tone(105, 93, envelope/p_fall, NULL) |
|
|
|
phoneme t |
|
|
|
vls alv stp |
|
|
|
voicingswitch d |
|
|
|
lengthmod 2 |
|
|
|
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 |
|
|
|
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 |
|
|
|
|
|
|
|
IF nextPh(isPause2) THEN |
|
|
|
WAV(ustop/t_) |
|
|
|
ELIF nextPh(@-) THEN |
|
|
|
WAV(ustop/t_dnt, 50) |
|
|
|
ELSE |
|
|
|
WAV(ustop/t_dnt, 100) |
|
|
|
ENDIF |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme dZ // **j**udge |
|
|
|
ipa dZ |
|
|
|
vcd pla afr sib |
|
|
|
voicingswitch tS |
|
|
|
lengthmod 5 |
|
|
|
Vowelin f1=2 f2=2300 200 400 f3=100 80 |
|
|
|
Vowelout f1=2 f2=2300 250 300 f3=100 80 brk |
|
|
|
|
|
|
|
IF PreVoicing THEN |
|
|
|
FMT(dzh/xdz_pzd, 250) |
|
|
|
ENDIF |
|
|
|
|
|
|
|
IF nextPh(isPause2) THEN |
|
|
|
FMT(dzh/dz_pzd_, 250) addWav(x/dz_pzd_, 250) |
|
|
|
ENDIF |
|
|
|
FMT(dzh/dz_pzd, 250) addWav(x/dz_pzd, 250) |
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme jxx |
|
|
|
import_phoneme base1/j |
|
|
|
length 75 |
|
|
|
Tone(105, 93, envelope/p_fall, NULL) |
|
|
|
phoneme n |
|
|
|
vcd alv nas |
|
|
|
Vowelout f1=2 f2=1500 -300 250 f3=-100 80 rms=20 brk |
|
|
|
Vowelin rate |
|
|
|
lengthmod 4 |
|
|
|
|
|
|
|
IF KlattSynth THEN |
|
|
|
Vowelin f1=0 f2=1500 -200 200 f3=0 80 |
|
|
|
FMT(klatt/n) |
|
|
|
ENDIF |
|
|
|
|
|
|
|
NextVowelStarts |
|
|
|
VowelStart(n/n@) |
|
|
|
VowelStart(n/na) |
|
|
|
VowelStart(n/ne) |
|
|
|
VowelStart(n/ni) |
|
|
|
VowelStart(n/no) |
|
|
|
VowelStart(n/nu) |
|
|
|
EndSwitch |
|
|
|
|
|
|
|
IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN |
|
|
|
FMT(n/nj) |
|
|
|
ELIF prevPh(isPause) OR prevPh(n) THEN |
|
|
|
FMT(n/_n) |
|
|
|
ELIF nextPh(isNotVowel) THEN |
|
|
|
FMT(n/n_) |
|
|
|
ENDIF |
|
|
|
|
|
|
|
endphoneme |
|
|
|
|
|
|
|
phoneme hxx |
|
|
|
import_phoneme base1/h |
|
|
|
length 75 |
|
|
|
Tone(105, 93, envelope/p_fall, NULL) |
|
|
|
//lengthmod 1 |
|
|
|
endphoneme |
|
|
|
phoneme m |
|
|
|
vcd blb nas |
|
|
|
Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk |
|
|
|
lengthmod 4 |
|
|
|
|
|
|
|
IF KlattSynth THEN |
|
|
|
Vowelin f1=0 f2=1000 -50 -200 f3=-200 80 |
|
|
|
IF nextPh(isPause2) THEN |
|
|
|
FMT(klatt/m_) |
|
|
|
ENDIF |
|
|
|
FMT(klatt/m) |
|
|
|
ENDIF |
|
|
|
|
|
|
|
NextVowelStarts |
|
|
|
VowelStart(m/m@) |
|
|
|
VowelStart(m/ma) |
|
|
|
VowelStart(m/me) |
|
|
|
VowelStart(m/mi) |
|
|
|
VowelStart(m/mo) |
|
|
|
VowelStart(m/mu) |
|
|
|
EndSwitch |
|
|
|
|
|
|
|
IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN |
|
|
|
FMT(m/mj) |
|
|
|
ELIF prevPh(isPause) THEN |
|
|
|
FMT(m/_m) |
|
|
|
ELIF nextPh(isNotVowel) THEN |
|
|
|
FMT(m/m_) |
|
|
|
ENDIF |
|
|
|
endphoneme |