//==================================================== // Tone Numbers //==================================================== phoneme 1 // tone: yinping ipa ˨˦ stress Tone(40, 80, envelope/p_rise, NULL) endphoneme phoneme 2 // tone: yangping ipa ˩˩ stress Tone(20, 20, envelope/p_level, NULL) endphoneme phoneme 3 // tone: shang ipa ˧˩ stress Tone(60, 20, envelope/p_fall, NULL) endphoneme phoneme 4 // tone: qu ipa ˥˥ stress Tone(100, 100, envelope/p_level, NULL) endphoneme phoneme 5 // tone: yinru stress ipa ˨ Tone(40, 40, envelope/p_level, NULL) endphoneme phoneme 6 // tone: yangru stress ipa ˥ Tone(100, 100, envelope/p_level, NULL) endphoneme //==================================================== // Consonant //==================================================== phoneme p vls blb stp lengthmod 2 Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 rms=30 Vowelout f1=1 f2=1000 -500 -350 f3=-300 80 rms=22 IF nextPh(isPause2) THEN WAV(NULL) ENDIF WAV(ustop/p) endphoneme phoneme t vls alv stp lengthmod 2 Vowelin f1=0 f2=1700 -300 300 f3=100 80 Vowelout f1=1 f2=1700 -300 250 f3=-100 80 rms=20 IF nextPh(isPause2) THEN WAV(NULL) ENDIF WAV(ustop/t) endphoneme phoneme N vcd vel nas Vowelout f1=2 f2=1900 0 300 f3=400 80 len=50 rms=15 brk lengthmod 7 NextVowelStarts VowelStart(nn/nn@) VowelStart(nn/nna) VowelStart(nn/nne) VowelStart(nn/nni) VowelStart(nn/nno) VowelStart(nn/nnu) EndSwitch IF prevPh(isPause) THEN FMT(nn/_nn) ELIF nextPh(isNotVowel) THEN length 190 FMT(nn/nn2_) ENDIF endphoneme phoneme n^ // ng(i)- vcd pal nas Vowelout f1=2 f2=1900 0 300 f3=400 80 len=50 rms=15 brk lengthmod 7 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 prevPh(isPause) THEN FMT(n^/_n^) ELIF nextPh(isNotVowel) THEN length 190 FMT(n^/n^_) ENDIF endphoneme phoneme n vcd alv nas Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk lengthmod 2 NextVowelStarts VowelStart(n/n@) VowelStart(n/na) VowelStart(n/ne) VowelStart(n/ni) VowelStart(n/no) VowelStart(n/nu) EndSwitch IF nextPh(isNotVowel) THEN length 190 FMT(n/n_long_) ENDIF FMT(n/_n) endphoneme phoneme m vcd blb nas Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk lengthmod 4 NextVowelStarts VowelStart(m/m@) VowelStart(m/ma) VowelStart(m/me) VowelStart(m/mi) VowelStart(m/mo) VowelStart(m/mu) EndSwitch IF nextPh(isNotVowel) THEN length 190 FMT(m/m_) ENDIF FMT(m/_m) endphoneme phoneme p vls blb stp lengthmod 2 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) endphoneme phoneme ph vls blb stp lengthmod 2 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_asp) endphoneme phoneme f vls lbd frc lengthmod 2 Vowelout f1=0 f2=1000 -500 -350 f3=-200 80 WAV(ufric/f) endphoneme phoneme v vcd lbd frc voicingswitch f lengthmod 6 Vowelin f1=0 f2=1000 -300 -200 f3=-300 100 Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50 IF KlattSynth THEN Vowelout f1=1 f2=1000 -500 -300 f3=-300 60 len=50 brk IF nextPh(isPause2) THEN FMT(klatt/v_) addWav(vocw/v) ENDIF FMT(klatt/v) addWav(vocw/v, 150) ENDIF IF nextPh(isPause2) THEN FMT(voc/v_) addWav(vocw/v) ENDIF IF thisPh(isWordStart) AND nextPhW(isLiquid) THEN length 70 ENDIF FMT(voc/v) addWav(vocw/v) endphoneme phoneme t vls alv stp lengthmod 2 Vowelin f1=0 f2=1700 -300 300 f3=-100 80 rms=40 Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 WAV(ustop/t_unasp2, 40) endphoneme phoneme th vls alv stp lengthmod 2 Vowelin f1=0 f2=1700 -300 300 f3=-100 80 Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 WAV(ustop/t_) endphoneme phoneme l liquid lengthmod 7 IF prevPh(isPause) THEN FMT(l/_l) ENDIF FMT(l/l) endphoneme phoneme k vls uvl stp lengthmod 2 Vowelin f1=1 f2=1700 0 200 f3=-300 80 f4 Vowelout f1=1 f2=1700 0 200 f3=-300 80 f4 rms=30 WAV(ustop/k_unasp_, 75) endphoneme phoneme kh vls uvl stp lengthmod 2 Vowelin f1=1 f2=1700 0 200 f3=-300 80 f4 Vowelout f1=1 f2=1700 0 200 f3=-300 80 f4 rms=30 WAV(ustop/k_asp, 80) endphoneme phoneme h vls glt apr 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(h/hi) ELIF nextPh(#o) THEN WAV(h/ho) ELIF nextPh(#u) THEN WAV(h/hu) ENDIF WAV(h/h_, 70) // no vowel following endphoneme phoneme tS; vls alp sib afr ipa tɕ lengthmod 2 Vowelin f1=0 f2=2700 400 600 f3=300 80 WAV(ustop/tsh_pzd_unasp) endphoneme phoneme tS;h vls alp sib afr ipa tɕh lengthmod 2 Vowelin f1=0 f2=2700 400 600 f3=300 80 WAV(ustop/tsh_pzd, 80) endphoneme phoneme S; vls pla frc sib lengthmod 2 ipa ɕ Vowelin f1=0 f2=2700 400 600 f3=300 80 WAV(ufric/sh_pzd2, 20) endphoneme phoneme ts vls alv afr sib lengthmod 2 Vowelin f1=0 f2=1700 -300 300 f3=-100 80 Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 WAV(ustop/ts_unasp, 70) endphoneme phoneme tsh vls alv afr sib lengthmod 2 Vowelin f1=0 f2=1700 -300 300 f3=-100 80 Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 WAV(ustop/ts, 60) endphoneme 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 j liquid pal lengthmod 1 IF nextPh(isVowel) THEN NextVowelStarts VowelStart(j/j@) VowelStart(j/ja) VowelStart(j/je) VowelStart(j/ji) VowelStart(j/jo) VowelStart(j/ju) EndSwitch VowelEnding(j/xj, -30) FMT(j/_j) ELSE // no vowel follows Vowelout len=70 FMT(j/j_) ENDIF endphoneme //Syllablic consonants //===================== phoneme m- vwl starttype #@ endtype #@ ipa mU+0329 lengthmod 4 length 240 IF thisPh(isWordStart) THEN length 240 ENDIF IF KlattSynth THEN FMT(klatt/m-syl) ENDIF FMT(m/m-syl) endphoneme phoneme n- vwl starttype #@ endtype #@ ipa nU+0329 lengthmod 4 length 240 IF thisPh(isWordStart) THEN length 240 ENDIF IF KlattSynth THEN FMT(klatt/n-syl) ENDIF FMT(n/n-syl) endphoneme phoneme N- vwl starttype #e endtype #e ipa ŋU+0329 lengthmod 4 length 240 FMT(nn/nn-syl) endphoneme //==================================================== // Vowels and Diphtnongs //==================================================== phoneme i vwl starttype #i endtype #i length 250 FMT(vowel/i) endphoneme phoneme i. vwl starttype #i endtype #i length 250 FMT(vowel/i#_6) endphoneme phoneme a vwl starttype #a endtype #a length 250 FMT(vowel/a) endphoneme phoneme e vwl starttype #e endtype #e length 250 FMT(vowel/e) endphoneme phoneme o vwl starttype #o endtype #o length 250 FMT(vowel/oo) endphoneme phoneme u //try more before N vwl starttype #u endtype #u length 250 FMT(vowel/u) endphoneme phoneme ai vwl starttype #a endtype #i length 250 FMT(vdiph/ai_6) endphoneme phoneme au vwl starttype #a endtype #u length 250 FMT(vdiph/au) endphoneme phoneme eu vwl starttype #e endtype #u length 250 FMT(vdiph/eu) endphoneme phoneme ia vwl starttype #i endtype #a length 250 FMT(vwl_zh/iaa) endphoneme phoneme iau vwl starttype #i endtype #u length 250 FMT(vwl_zh/iaau) endphoneme phoneme ie vwl starttype #i endtype #e length 250 FMT(vwl_zh/ie) endphoneme phoneme io vwl starttype #i endtype #o length 250 FMT(vdiph2/iioo) endphoneme phoneme iu vwl starttype #i endtype #u length 250 FMT(vdiph2/iu) endphoneme phoneme oi vwl starttype #o endtype #i length 250 FMT(vdiph/ooi) endphoneme phoneme ua vwl starttype #u endtype #a length 250 FMT(vwl_zh/uaa) endphoneme phoneme uai vwl starttype #u endtype #i length 250 FMT(vwl_zh/uai) endphoneme phoneme ue vwl starttype #u endtype #e length 250 FMT(vwl_zh/uei) endphoneme phoneme ui vwl starttype #u endtype #i length 250 FMT(vdiph/ui) endphoneme phoneme o- // er vwl starttype #o endtype #o length 180 FMT(vowel/o-) endphoneme