//*******************************************************************
// VOWELS
//*******************************************************************
phoneme 3 // Schwa, used for rhotic schwa in American
vwl starttype #@ endtype #@
ipa ɚ
unstressed
length 210
IfNextVowelAppend(r-)
FMT(vwl_en_us/3_us)
endphoneme
phoneme @ // Schwa
vwl starttype #@ endtype #@
unstressed
length 130
IF nextPh(isRhotic) THEN
ChangePhoneme(3)
ENDIF
IF thisPh(isWordEnd) THEN
FMT(vowel/@_6)
ENDIF
FMT(vowel/@_4)
endphoneme
phoneme @2 // Schwa, changes to I before a vowel
vwl starttype #@ endtype #@
unstressed
length 120
IF nextPh(isVowel) THEN
ChangePhoneme(I2)
ENDIF
FMT(vowel/@_low2)
endphoneme
phoneme a
vwl starttype #e endtype #@
ipa æ
length 210
ChangeIfDiminished(a#)
IF nextPh(isNasal) AND NOT KlattSynth THEN
FMT(vnasal/ee_n2)
ELSEIF nextPh(r) AND thisPh(isStressed) THEN
length 190
FMT(vwl_en_us/ar)
ENDIF
FMT(vwl_en_us/a)
endphoneme
phoneme aa // 'bath' etc.
import_phoneme en-us/a
endphoneme
phoneme a#
vwl starttype #@ endtype #@
ipa ɐ
unstressed
length 150
IF thisPh(isStressed) THEN
ChangePhoneme(a)
ENDIF
IF nextPhW(r) THEN
ChangePhoneme(3)
ENDIF
FMT(vowel/a#_3)
endphoneme
phoneme E
vwl starttype #e endtype #e
length 190
IF nextPhW(n) THEN
ChangeIfDiminished(@)
ELSE
ChangeIfDiminished(I2)
ENDIF
FMT(vwl_en_us/ee)
endphoneme
phoneme I
vwl starttype #i endtype #i
length 160
IfNextVowelAppend(;)
ChangeIfDiminished(I2)
IF nextPhW(r) THEN
length 200
ENDIF
FMT(vowel/ii_4)
endphoneme
phoneme I2
vwl starttype #i endtype #i
unstressed
length 160
IfNextVowelAppend(;)
FMT(vowel/ii#_3)
endphoneme
phoneme I#
vwl starttype #i endtype #i
unstressed
length 160
ipa ᵻ
// FMT(vowel/@_fnt)
FMT(vowel/ii#)
endphoneme
phoneme 0
vwl starttype #a endtype #a
length 220
ipa ɑː
ChangeIfDiminished(@)
IF nextPh(r) THEN
ChangePhoneme(O:)
ENDIF
FMT(vowel/aa_8)
endphoneme
phoneme 02 // becomes V in en-us
vwl starttype #o endtype #o
length 140
ChangePhoneme(V)
endphoneme
phoneme O2
vwl starttype #o endtype #o
length 220
FMT(vowel/aa#) // Same as /O/, but not diminished.
endphoneme
phoneme V
vwl starttype #a endtype #@
length 170
ChangeIfDiminished(@)
FMT(vowel/V_6)
endphoneme
phoneme U
vwl starttype #o endtype #o
length 145
FMT(vowel/8_2)
endphoneme
phoneme A:
vwl starttype #a endtype #a
length 220
IF nextPhW(r) THEN
FMT(vwl_en_us/aar)
ENDIF
FMT(vowel/aa_8)
endphoneme
phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in American
vwl starttype #a endtype #a
ipa ɑː|ɹ
IF nextPh(r-) THEN
ipa ɑː
ENDIF
length 260
IfNextVowelAppend(r-)
FMT(vwl_en_us/aar)
endphoneme
phoneme A# // [a] in British [A:] in American
vwl starttype #a endtype #a
ChangePhoneme(A:)
endphoneme
phoneme 3:
vwl starttype #@ endtype #@
length 210
IfNextVowelAppend(r-)
ChangeIfDiminished(3)
FMT(vwl_en_us/3_us2)
endphoneme
phoneme i:
vwl starttype #i endtype #i
length 180
IfNextVowelAppend(;)
FMT(vowel/i_en)
endphoneme
phoneme O:
vwl starttype #o endtype #o
length 220
ChangeIfDiminished(@)
IF nextPhW(r) THEN
FMT(vwl_en_us/oor)
ENDIF
FMT(vowel/0_3)
endphoneme
phoneme O@
vwl starttype #o endtype #@
length 250
ipa ɔː|ɹ
IF nextPhW(r) THEN
ipa ɔː
ENDIF
IfNextVowelAppend(r)
FMT(vwl_en_us/oor)
endphoneme
phoneme o@
vwl starttype #o endtype #@
length 250
ipa oː|ɹ
IF nextPhW(r) THEN
ipa oː
ENDIF
IfNextVowelAppend(r)
FMT(vwl_en_us/or)
endphoneme
phoneme O
vwl starttype #o endtype #o
length 200
ChangeIfDiminished(@)
FMT(vowel/aa#)
endphoneme
phoneme u:
vwl starttype #u endtype #u
length 190
IF prevPhW(j) AND NOT thisPh(isWordEnd) THEN
length 160
ENDIF
FMT(vdiph2/uw_6)
endphoneme
phoneme aU
vwl starttype #a endtype #o
length 235
FMT(vdiph/aoo)
endphoneme
phoneme oU
vwl starttype #@ endtype #u
length 230
FMT(vdiph/8u)
endphoneme
phoneme aI
vwl starttype #a endtype #i
length 240
IF nextPh(#a) OR nextPh(#o) THEN
AppendPhoneme(;)
ENDIF
FMT(vwl_en_us/ai)
endphoneme
phoneme eI
vwl starttype #e endtype #i
length 220
FMT(vdiph2/ei_4)
// FMT(vdiph/eei_5)
endphoneme
phoneme OI
vwl starttype #o endtype #i
length 270
FMT(vdiph/ooi_3)
endphoneme
phoneme e@
vwl starttype #e endtype #@
length 260
ipa ɛ|ɹ
IF nextPhW(r) THEN
ipa ɛ
ENDIF
IfNextVowelAppend(r)
FMT(vwl_en_us/er)
endphoneme
phoneme i
vwl starttype #i endtype #i
unstressed
ipa i
length 170
IfNextVowelAppend(;)
IF NOT thisPh(isFinalVowel) THEN
length 130
FMT(vowel/ii_4)
ENDIF
FMT(vowel/ii_final)
endphoneme
phoneme i@
vwl starttype #i endtype #@
length 250
FMT(vdiph2/ii@) // don't append [r] before a vowel
endphoneme
phoneme i@3
vwl starttype #i endtype #@
length 280
ipa ɪ|ɹ
IF nextPhW(r) THEN
ipa ɪ
ENDIF
IfNextVowelAppend(r)
FMT(vwl_en_us/ir)
endphoneme
phoneme U@
vwl starttype #@ endtype #@
length 250
ipa ʊ|ɹ
IF nextPhW(r-) THEN
ipa ʊ
ENDIF
IfNextVowelAppend(r-)
FMT(vwl_en_us/ur)
endphoneme
phoneme aI@
vwl starttype #a endtype #@
length 300
ipa aɪə
IfNextVowelAppend(r-)
FMT(vwl_en_us/ai@)
endphoneme
phoneme aI3
vwl starttype #a endtype #@
length 310
ipa aɪɚ
IfNextVowelAppend(r-)
FMT(vwl_en_us/ai3)
endphoneme
phoneme aU@
vwl starttype #a endtype #@
length 300
ipa aɪʊɹ
IF nextPhW(r) THEN
ipa aɪʊ
ENDIF
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# // reduced [t] as in "city"
vcd alv stp
ipa ɾ
lengthmod 5
Vowelin f1=1 f2=1700 -300 300 f3=-100 80
Vowelout f1=2 f2=1700 -300 300 f3=-100 80
IF nextPh(isNotVowel) THEN
ChangePhoneme(t)
ENDIF
IF KlattSynth THEN
IF PreVoicing THEN
FMT(klatt/x_tap)
ENDIF
FMT(klatt/tap2) addWav(x/d, 70)
ENDIF
IF PreVoicing THEN
FMT(d/x_tap)
ENDIF
FMT(d/tap2) addWav(x/d, 50)
endphoneme
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 nextPhW(isVowel) AND nextPh(isUnstressed) THEN
IF NOT next2PhW(n) OR nextPhW(3:) THEN
IF prevPhW(isVowel) THEN
ChangePhoneme(t#)
ELIF prevPhW(n) THEN
WAV(ustop/t, 60)
ENDIF
ENDIF
ENDIF
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
phoneme t2 // [t] which doesn't reduce
import_phoneme base1/t
endphoneme
phoneme ? // glottal stp
vls glt stp
lengthmod 1 // 5? longer preceding vowel
nolink
Vowelin glstop
Vowelout glstop
WAV(ustop/null)
endphoneme