//*******************************************************************
// VOWELS
//*******************************************************************
phoneme @ // Schwa
vwl starttype #@ endtype #@
unstressed
length 140
IfNextVowelAppend(r-)
FMT(vowel/@_3)
endphoneme
phoneme 3 // Schwa, used for rhotic schwa in American
vwl starttype #@ endtype #@
unstressed
length 140
IF nextPh(isVowel) THEN
ChangePhoneme(@)
ENDIF
IfNextVowelAppend(r-)
IF nextPh(isPause) THEN
FMT(vowelr/V3_r)
ENDIF
FMT(vowel/V)
endphoneme
phoneme @2 // Schwa, changes to I before a vowel
vwl starttype #@ endtype #@
unstressed
length 120
IF nextPh(isVowel) THEN
ChangePhoneme(I2)
ENDIF
ChangePhoneme(@)
endphoneme
phoneme @5 // Schwa, changes to U before a vowel
vwl starttype #@ endtype #@
unstressed
length 140
IF nextPh(isVowel) OR nextPh(isPause) THEN
ChangePhoneme(U)
ENDIF
ChangePhoneme(@)
endphoneme
phoneme a
vwl starttype #a endtype #a
length 200
ChangeIfDiminished(a#)
ChangeIfNotStressed(a/)
FMT(vowel/a_3)
endphoneme
phoneme a/
vwl starttype #a endtype #a
length 160
ChangeIfDiminished(a#)
FMT(vowel/a_3)
endphoneme
phoneme a#
vwl starttype #@ endtype #@
ipa ɐ
unstressed
length 140
IfNextVowelAppend(r-)
FMT(vowel/a#)
endphoneme
phoneme aa // 'bath' etc.
vwl starttype #a endtype #a
ipa a:
length 220
IfNextVowelAppend(r-)
FMT(vowel/a_3)
endphoneme
phoneme E
vwl starttype #e endtype #e
length 170
IF nextPhW(n) THEN
ChangeIfDiminished(@)
ELSE
ChangeIfDiminished(I2)
ENDIF
FMT(vowel/e_e)
endphoneme
phoneme I
vwl starttype #@ endtype #@
length 110
IF nextPh(l/2) THEN
VowelEnding(l/L2_@L, -30)
FMT(vowel/@_3)
ENDIF
FMT(vowel/e#)
endphoneme
phoneme I2
vwl starttype #@ endtype #@
unstressed
length 110
CALL I
endphoneme
phoneme I#
vwl starttype #@ endtype #@
ChangePhoneme(I2)
endphoneme
phoneme i // optional variant of [I] for end of words
vwl starttype #i endtype #e
ipa e
length 150
IfNextVowelAppend(;)
FMT(vowel/e_5)
endphoneme
phoneme 0
vwl starttype #o endtype #o
length 200
ChangeIfDiminished(@)
FMT(vowel/oo_2)
endphoneme
phoneme 02 // becomes V in en-us
vwl starttype #o endtype #o
length 140
ChangePhoneme(V)
endphoneme
phoneme V
vwl starttype #a endtype #@
length 140
ChangeIfDiminished(@)
FMT(vowel/V_4)
endphoneme
phoneme U
vwl starttype #u endtype #u
ipa ʉ
length 140
FMT(vowel/u#_4)
endphoneme
phoneme A:
vwl starttype #a endtype #a
length 220
ipa a:
IfNextVowelAppend(r-)
IF nextPh(r) THEN
length 250
FMT(vowelr/aa_r)
ENDIF
FMT(vowel/a_3)
endphoneme
phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in American
vwl starttype #a endtype #@
length 250
ipa aː
IF NOT nextPhW(r) THEN
AppendPhoneme(r)
ENDIF
FMT(vowelr/aa_r)
endphoneme
phoneme 3:
vwl starttype #e endtype #@
length 230
ChangeIfNotStressed(VR) // also need "replace 02 3: VR" in voice file
ipa e
FMT(vowelr/e_r)
endphoneme
phoneme i:
vwl starttype #i endtype #i
length 130
IfNextVowelAppend(;)
IF prevPh(w) THEN
VowelStart(w/wi2)
ENDIF
IF nextPh(isVFricative) OR nextPh(isPause) THEN
length 180
ENDIF
FMT(vowel/i_5)
endphoneme
phoneme O:
vwl starttype #o endtype #o
length 200
ChangeIfDiminished(@)
IF nextPh(r) THEN
FMT(vwl_en_us/or)
ENDIF
FMT(vowel/oo)
endphoneme
phoneme O@
vwl starttype #o endtype #@
length 230
ipa ɔ
IF NOT nextPhW(r) THEN
AppendPhoneme(r)
ENDIF
FMT(vowelr/oo_r)
endphoneme
phoneme o@
vwl starttype #o endtype #@
length 230
ipa o
IF NOT nextPhW(r) THEN
AppendPhoneme(r)
ENDIF
FMT(vowelr/oo_r)
endphoneme
phoneme O
vwl starttype #o endtype #o
length 150
ChangeIfDiminished(@)
FMT(vowel/0_3)
endphoneme
phoneme u:
vwl starttype #u endtype #u
ipa ʉː
length 160
IF nextPh(isVFricative) THEN
length 200
ENDIF
IF nextPh(isPause) THEN
length 200
FMT(vowel/u#_4)
ENDIF
FMT(vowel/u#)
endphoneme
phoneme aU
vwl starttype #a endtype #u
ipa ʌʉ
length 200
FMT(vdiph/au#)
endphoneme
phoneme oU
vwl starttype #o endtype #u
ipa oː
length 190
FMT(vowel/o_3)
endphoneme
phoneme aI
vwl starttype #a endtype #i
length 190
IF nextPh(isVowel) OR nextPh(isVFricative) THEN
ChangePhoneme(aI2)
ENDIF
IF nextPh(l/2) THEN
// before l/2 vwl_en/aI@_2+vwl_en/@L_2
FMT(vwl_en/aI@_2)
ENDIF
// FMT(vdiph/&i_2
FMT(vdiph/ai_7)
endphoneme
phoneme aI2
vwl starttype #a endtype #i
length 240
FMT(vdiph/ai_7)
endphoneme
phoneme eI
vwl starttype #e endtype #i
ipa eː
length 190
FMT(vowel/e_2)
endphoneme
phoneme OI
vwl starttype #o endtype #i
length 210
FMT(vdiph/0i_2)
endphoneme
phoneme e@
vwl starttype #e endtype #@
length 220
ipa e
IF NOT nextPhW(r) THEN
AppendPhoneme(r)
ENDIF
FMT(vdiph2/e@)
endphoneme
phoneme i@3
vwl starttype #i endtype #@
ipa ɪ
length 240
IF NOT nextPhW(r) THEN
AppendPhoneme(r)
ENDIF
FMT(vowelr/i_r)
endphoneme
phoneme U@
vwl starttype #u endtype #@
ipa ʉɹ
IF nextPh(r-) THEN
ipa ʉ
ENDIF
length 240
IfNextVowelAppend(r-)
FMT(vdiph2/u#@)
endphoneme
phoneme aU@
vwl starttype #a endtype #@
length 270
IfNextVowelAppend(r-)
FMT(vwl_en/aU@)
endphoneme
phoneme aI@
vwl starttype #a endtype #@
length 270
IfNextVowelAppend(r-)
FMT(vwl_en/aI@_2)
endphoneme
phoneme aI3
vwl starttype #a endtype #@
length 280
ChangePhoneme(aI@)
endphoneme
phoneme @L
vwl starttype #@ endtype l
ipa əl
unstressed
length 160
CALL vowelstart_l
FMT(vwl_en/@L_2)
endphoneme
//==============
// Consonants
//==============
phoneme r/ // used for [r] when not preceding a vowel
liquid
lengthmod 2 //
FMT(NULL)
endphoneme
phoneme r
liquid rhotic trl
lengthmod 7
IF nextPh(isNotVowel) THEN
ChangePhoneme(r/)
ENDIF
CALL base1/r
ipa r
endphoneme