//******************************************************************* // VOWELS //******************************************************************* phoneme 3 // Schwa, used for rhotic schwa in American vowel starttype #@ endtype #@ unstressed length 210 IfNextVowelAppend(r-) FMT(vwl_en_us/3_us) endphoneme phoneme @ // Schwa vowel starttype #@ endtype #@ unstressed length 130 IF nextPh(isRhotic) THEN ChangePhoneme(3) ENDIF FMT(vowel/@_4) endphoneme phoneme @/ // Schwa, end of word vowel starttype #@ endtype #@ unstressed length 130 FMT(vowel/@_low2) endphoneme phoneme @2 // Schwa, changes to I before a vowel vowel starttype #@ endtype #@ unstressed length 120 IF nextPh(isVowel) THEN ChangePhoneme(I2) ENDIF FMT(vowel/@_low2) endphoneme phoneme @L vowel starttype #@ endtype l unstressed length 160 FMT(vwl_en/@L) endphoneme phoneme a vowel starttype #e endtype #@ length 210 ChangeIfDiminished(a#) IF nextPh(isNasal) THEN FMT(vnasal/ee_n2) ENDIF FMT(vwl_en_us/a) endphoneme phoneme aa // 'bath' etc. import_phoneme en-us/a endphoneme phoneme a# vowel starttype #@ endtype #@ unstressed length 150 FMT(vowel/a#_3) endphoneme phoneme E vowel starttype #e endtype #e length 195 ChangeIfDiminished(I2) FMT(vwl_en_us/ee) endphoneme phoneme I vowel starttype #i endtype #i length 160 IfNextVowelAppend(;) ChangeIfDiminished(I2) FMT(vowel/ii_4) endphoneme phoneme I2 vowel starttype #i endtype #i unstressed length 160 IfNextVowelAppend(;) FMT(vowel/ii#_3) endphoneme phoneme i // optional variant of [I] for end of words vowel starttype #i endtype #i unstressed length 170 IfNextVowelAppend(;) FMT(vowel/ii_final) endphoneme phoneme 0 vowel starttype #a endtype #a length 200 ChangeIfDiminished(@) IF nextPh(r) THEN FMT(vwl_en_us/oor) ENDIF FMT(vowel/aa_8) endphoneme phoneme V vowel starttype #a endtype #@ length 170 ChangeIfDiminished(@) FMT(vowel/V_6) endphoneme phoneme U vowel starttype #o endtype #o length 145 FMT(vowel/8_2) endphoneme phoneme A: vowel starttype #a endtype #a length 210 IF nextPh(r) THEN FMT(vwl_en_us/ar) ENDIF FMT(vowel/aa_8) endphoneme phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in American vowel starttype #a endtype #a length 260 IfNextVowelAppend(r-) FMT(vwl_en_us/ar) endphoneme phoneme 3: vowel starttype #@ endtype #@ length 240 IfNextVowelAppend(r-) FMT(vwl_en_us/3_us2) endphoneme phoneme i: vowel starttype #i endtype #i length 170 IfNextVowelAppend(;) FMT(vowel/i_en) endphoneme phoneme O: vowel starttype #o endtype #o length 210 ChangeIfDiminished(@) IF nextPh(r) THEN FMT(vwl_en_us/oor) ENDIF FMT(vowel/0_3) endphoneme phoneme O@ vowel starttype #o endtype #@ length 250 IfNextVowelAppend(r) FMT(vwl_en_us/oor) endphoneme phoneme o@ vowel starttype #o endtype #@ length 250 IfNextVowelAppend(r) FMT(vwl_en_us/or) endphoneme phoneme O vowel starttype #o endtype #o length 200 ChangeIfDiminished(@) FMT(vowel/aa#) endphoneme phoneme u: vowel starttype #u endtype #u length 190 FMT(vdiph2/uw) endphoneme phoneme aU vowel starttype #a endtype #o length 235 FMT(vdiph/aoo) endphoneme phoneme oU vowel starttype #@ endtype #u length 230 FMT(vdiph/8u) endphoneme phoneme aI vowel starttype #a endtype #i length 250 FMT(vdiph/aae) endphoneme phoneme eI vowel starttype #e endtype #i length 230 FMT(vdiph2/ei_4) endphoneme phoneme OI vowel starttype #o endtype #i length 285 FMT(vdiph/ooi_4) endphoneme phoneme e@ vowel starttype #e endtype #@ length 280 IfNextVowelAppend(r) FMT(vwl_en_us/er) endphoneme phoneme i@3 vowel starttype #i endtype #@ length 280 IfNextVowelAppend(r) FMT(vwl_en_us/ir) endphoneme phoneme U@ vowel starttype #@ endtype #@ length 250 IfNextVowelAppend(r-) FMT(vwl_en_us/ur) endphoneme phoneme aI@ vowel starttype #a endtype #@ length 300 IfNextVowelAppend(r-) FMT(vwl_en_us/ai@) endphoneme phoneme aU@ vowel starttype #a endtype #@ length 300 IfNextVowelAppend(r-) FMT(vwl_en_us/aU@) endphoneme //============== // Consonants //============== phoneme r/ // used for [r] when not preceding a vowel liquid lengthmod 2 // // formants NULL endphoneme phoneme t vls alv stop voicingswitch d lengthmod 2 IF prevPh(isVowel) OR prevPh(n) THEN IF nextPh(isVowel) AND nextPh(isUnstressed) AND thisPh(notWordStart) AND nextPh(notWordStart) THEN ChangePhoneme(t#) ENDIF ENDIF 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(r) OR nextPh(R) OR nextPh(R2) THEN WAV(ustop/tr) ELIF nextPh(@-) THEN WAV(ustop/t_dnt, 50) ENDIF WAV(ustop/t, 90) endphoneme