Files
espeak-ng/phsource/ph_english_sc
T
Reece H. Dunn 9ef1f2eec6 Use base1 as the base phonemetable, not 'base'.
This is a step in the transition to using a common IPA-based
phoneme table for the pronunciations. It allows the base phonemes
to import the IPA versions during this transition phase.
2017-01-30 20:16:47 +00:00

415 lines
6.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//*******************************************************************
// 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