//==================================================== // Vietnamese Phonemes //==================================================== phoneme 1 // ngang tone: level stress Tone(28, 32, envelope/p_level, NULL) endphoneme phoneme 2 // huyền tone: low falling stress Tone(20, 8, envelope/p_fall, NULL) endphoneme phoneme 3 // sắc Tone(rising stress Tone(25, 50, envelope/p_rise, NULL) endphoneme phoneme 4 // hỏi Tone(curve (dipping rising) stress Tone(30, 5, envelope/p_fallrise, NULL) endphoneme phoneme 5 // ngã tone: broken (creaking rising) stress Tone(28, 58, envelope/p_214, envelope/vi_5amp) endphoneme phoneme 6 // nặng Tone(drop (constricted) stress length 75 // reduce the length of the vowel Tone(40, 20, envelope/p_512, envelope/vi_6amp) endphoneme phoneme 7 // Tone(1 (ngang) at end of clause stress Tone(40, 20, envelope/p_fall, NULL) endphoneme // Vowels //======= phoneme a vowel starttype #@ endtype #@ length 130 FMT(vowel/a_4) endphoneme phoneme a: vowel starttype #a endtype #a length 280 FMT(vowel/a_6) endphoneme phoneme E vowel starttype #e endtype #e length 200 FMT(vowel/ee_3) endphoneme phoneme e vowel starttype #e endtype #e length 200 FMT(vowel/e) endphoneme phoneme i vowel starttype #i endtype #i length 190 IfNextVowelAppend(;) IF prevPhW(w) THEN VowelStart(w/wi) ENDIF FMT(vowel/i_4) endphoneme phoneme O vowel starttype #o endtype #o length 200 FMT(vowel/aa_4) endphoneme phoneme o vowel starttype #o endtype #o length 200 FMT(vowel/o_2) endphoneme phoneme u vowel starttype #u endtype #u length 200 FMT(vowel/u_7) endphoneme phoneme y vowel starttype #u endtype #u length 200 FMT(vowel/u#_5) endphoneme phoneme @ vowel starttype #@ endtype #a length 130 FMT(vowel/@_2) endphoneme phoneme @: vowel starttype #@ endtype #@ length 280 FMT(vowel/@_2) endphoneme // Diphthongs //=========== phoneme aI vowel starttype #a endtype #i length 250 FMT(vdiph/&i_3) endphoneme phoneme a:I vowel starttype #a endtype #i length 250 FMT(vdiph/ai) endphoneme phoneme @I vowel starttype #@ endtype #i length 250 FMT(vdiph/@i) endphoneme phoneme @:I vowel starttype #@ endtype #i length 250 FMT(vdiph/@i) endphoneme phoneme eI vowel starttype #e endtype #i length 200 FMT(vdiph/ei) endphoneme phoneme EI vowel starttype #e endtype #i length 200 FMT(vdiph/eei) endphoneme phoneme OI vowel starttype #o endtype #i length 200 FMT(vdiph/0i) endphoneme phoneme oI vowel starttype #o endtype #i length 200 FMT(vdiph/oi) endphoneme phoneme uI vowel starttype #u endtype #i length 200 FMT(vdiph/ui) endphoneme phoneme yI vowel starttype #u endtype #i length 200 FMT(vdiph/u-i) endphoneme phoneme aU vowel starttype #a endtype #u length 210 FMT(vdiph/aau_4) endphoneme phoneme a:U vowel starttype #a endtype #u length 270 FMT(vdiph/au) endphoneme phoneme eU vowel starttype #e endtype #u length 200 FMT(vdiph/eu) endphoneme phoneme EU vowel starttype #e endtype #u length 200 FMT(vdiph/eeu) endphoneme phoneme iU vowel starttype #i endtype #u length 200 FMT(vdiph2/iu) endphoneme phoneme @U vowel starttype #@ endtype #u length 200 FMT(vdiph/@u) endphoneme phoneme @:U vowel starttype #@ endtype #u length 270 FMT(vdiph/@u) endphoneme phoneme i@ vowel starttype #i endtype #@ length 240 FMT(vdiph2/ii@_3) endphoneme phoneme y@ vowel starttype #i endtype #@ length 200 FMT(vdiph2/y-y#) endphoneme phoneme u@ vowel starttype #u endtype #@ length 200 FMT(vdiph2/uu@) endphoneme phoneme kh vls vel frc lengthmod 3 Vowelin f1=0 f2=2300 200 400 f3=200 80 Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20 WAV(ufric/x, 50) endphoneme phoneme l liquid lengthmod 7 IF nextPh(isNotVowel) THEN ChangePhoneme(l/2) ENDIF CALL vowelstart_l FMT(l/l_vi) endphoneme