mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
511 lines
7.7 KiB
Plaintext
511 lines
7.7 KiB
Plaintext
|
||
phoneme t2 // [t] which doesn't reduce
|
||
import_phoneme base/t
|
||
endphoneme
|
||
|
||
|
||
phoneme t# // reduced [t] as in "city"
|
||
vcd alv stop
|
||
ipa ɾ
|
||
lengthmod 5
|
||
Vowelin f1=1 f2=1700 -300 300 f3=-100 80
|
||
Vowelout f1=2 f2=1700 -300 300 f3=-100 80
|
||
|
||
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, 70)
|
||
endphoneme
|
||
|
||
|
||
phoneme d# // change to [d] or [t] depending on whether previous phoneme is voiced
|
||
vls alv stop
|
||
IF prevPh(isVoiced) THEN
|
||
ChangePhoneme(d)
|
||
ELSE
|
||
ChangePhoneme(t)
|
||
ENDIF
|
||
endphoneme
|
||
|
||
|
||
phoneme z# // change to [z] or [s] depending on whether previous phoneme is voiced
|
||
vls alv frc sibilant
|
||
IF prevPh(isVoiced) THEN
|
||
ChangePhoneme(z)
|
||
ELSE
|
||
ChangePhoneme(s)
|
||
ENDIF
|
||
endphoneme
|
||
|
||
|
||
|
||
phoneme l // use dark [l/2] before not-vowel
|
||
liquid
|
||
lengthmod 7
|
||
|
||
IF nextPhW(isVowel) THEN
|
||
ELSE
|
||
IF prevPh(isVowel) OR prevPh(j) OR prevPh(w) THEN
|
||
ChangePhoneme(l/2)
|
||
ELSE
|
||
ChangePhoneme(l/)
|
||
ENDIF
|
||
ENDIF
|
||
|
||
CALL base/l
|
||
endphoneme
|
||
|
||
|
||
phoneme g-
|
||
vcd vel stop
|
||
lengthmod 5
|
||
Vowelin f1=2 f2=2300 200 300 f3=-300 80
|
||
Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
|
||
|
||
IF PreVoicing THEN
|
||
FMT(g/xg)
|
||
ENDIF
|
||
|
||
IF nextPh(isPause2) THEN
|
||
FMT(g/g_) addWav(x/g2_)
|
||
ENDIF
|
||
FMT(g/g) addWav(x/g2_)
|
||
endphoneme
|
||
|
||
|
||
phoneme r- // linking r, used in English between certain vowels and a following vowel
|
||
liquid rhotic
|
||
ipa ɹ
|
||
lengthmod 0
|
||
|
||
NextVowelStarts
|
||
VowelStart(r2/r2@)
|
||
VowelStart(r2/r2a)
|
||
VowelStart(r2/r2e)
|
||
VowelStart(r2/r2i)
|
||
VowelStart(r2/r2o)
|
||
VowelStart(r2/r2u)
|
||
EndSwitch
|
||
|
||
IF prevPh(isVowel) THEN
|
||
VowelEnding(r/xr, -60)
|
||
ENDIF
|
||
|
||
FMT(r/r)
|
||
endphoneme
|
||
|
||
|
||
phoneme z/2 // used for 's suffix
|
||
vcd alv frc sibilant
|
||
lengthmod 6
|
||
IF prevPh(isSibilant) THEN
|
||
InsertPhoneme(I2)
|
||
ENDIF
|
||
|
||
IF prevPh(isVoiced) THEN
|
||
ELSE
|
||
ChangePhoneme(s)
|
||
ENDIF
|
||
ChangePhoneme(z)
|
||
endphoneme
|
||
|
||
|
||
//*******************************************************************
|
||
// VOWELS
|
||
//*******************************************************************
|
||
|
||
phoneme @ // Schwa
|
||
vowel starttype #@ endtype #@
|
||
unstressed
|
||
length 140
|
||
IfNextVowelAppend(r-)
|
||
IF thisPh(isWordEnd) THEN
|
||
FMT(vowel/@_6)
|
||
ENDIF
|
||
FMT(vowel/@)
|
||
endphoneme
|
||
|
||
|
||
phoneme 3 // Schwa, used for rhotic schwa in American
|
||
CALL @
|
||
ipa ə
|
||
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/@)
|
||
endphoneme
|
||
|
||
|
||
phoneme @5 // Schwa, changes to U before a vowel
|
||
vowel starttype #@ endtype #@
|
||
unstressed
|
||
length 140
|
||
IF nextPh(isVowel) OR nextPh(isPause) THEN
|
||
ChangePhoneme(U)
|
||
ENDIF
|
||
FMT(vowel/@)
|
||
endphoneme
|
||
|
||
|
||
phoneme @L
|
||
vowel starttype #@ endtype l
|
||
ipa əl
|
||
unstressed
|
||
length 160
|
||
CALL vowelstart_l
|
||
FMT(vwl_en/@L)
|
||
endphoneme
|
||
|
||
|
||
phoneme a
|
||
vowel starttype #a endtype #a
|
||
length 160
|
||
ChangeIfDiminished(a#)
|
||
IF thisPh(isUnstressed) THEN
|
||
FMT(vowel/a_8)
|
||
ENDIF
|
||
FMT(vowel/a)
|
||
endphoneme
|
||
|
||
|
||
phoneme a#
|
||
vowel starttype #@ endtype #@
|
||
ipa ɐ
|
||
unstressed
|
||
length 150
|
||
FMT(vowel/a#_3)
|
||
endphoneme
|
||
|
||
|
||
phoneme aa // 'bath' etc.
|
||
vowel starttype #a endtype #a
|
||
ipa a
|
||
length 185
|
||
IfNextVowelAppend(r-)
|
||
FMT(vowel/a)
|
||
endphoneme
|
||
|
||
|
||
phoneme E
|
||
vowel starttype #e endtype #e
|
||
length 140
|
||
ChangeIfDiminished(I2)
|
||
FMT(vowel/ee_5)
|
||
endphoneme
|
||
|
||
|
||
phoneme I
|
||
vowel starttype #i endtype #i
|
||
length 130
|
||
IfNextVowelAppend(;)
|
||
FMT(vowel/ii_2)
|
||
endphoneme
|
||
|
||
|
||
phoneme I2
|
||
vowel starttype #i endtype #i
|
||
unstressed
|
||
length 130
|
||
IfNextVowelAppend(;)
|
||
FMT(vowel/ii_4)
|
||
endphoneme
|
||
|
||
phoneme I# // used for [I] which may be [@] in some accents
|
||
vowel starttype #i endtype #i
|
||
unstressed
|
||
length 130
|
||
IfNextVowelAppend(;)
|
||
ChangePhoneme(I2)
|
||
endphoneme
|
||
|
||
phoneme i // optional variant of [I] for end of words
|
||
vowel starttype #i endtype #i
|
||
ipa ɪ
|
||
length 140
|
||
IfNextVowelAppend(;)
|
||
FMT(vowel/ii_7)
|
||
endphoneme
|
||
|
||
|
||
phoneme 0
|
||
vowel starttype #o endtype #o
|
||
length 140
|
||
ChangeIfDiminished(@)
|
||
FMT(vowel/0)
|
||
endphoneme
|
||
|
||
|
||
phoneme V
|
||
vowel starttype #a endtype #@
|
||
length 140
|
||
|
||
ChangeIfDiminished(@)
|
||
FMT(vowel/V_2)
|
||
endphoneme
|
||
|
||
|
||
phoneme U
|
||
vowel starttype #o endtype #o
|
||
length 150
|
||
FMT(vowel/uu)
|
||
endphoneme
|
||
|
||
|
||
|
||
phoneme A:
|
||
vowel starttype #a endtype #a
|
||
length 230
|
||
IfNextVowelAppend(r-)
|
||
FMT(vowel/aa_2)
|
||
endphoneme
|
||
|
||
|
||
phoneme A@ // Used for [A:] when followed by 'r'
|
||
vowel starttype #a endtype #a
|
||
ipa ɑː
|
||
length 230
|
||
IfNextVowelAppend(r-)
|
||
FMT(vowel/aa_2)
|
||
endphoneme
|
||
|
||
|
||
phoneme 3:
|
||
vowel starttype #@ endtype #@
|
||
length 210
|
||
IfNextVowelAppend(r-)
|
||
ChangeIfDiminished(@)
|
||
FMT(vowel/3_en)
|
||
endphoneme
|
||
|
||
|
||
phoneme i:
|
||
vowel starttype #i endtype #i
|
||
length 175
|
||
IfNextVowelAppend(;)
|
||
IF prevPh(w) THEN
|
||
VowelStart(w/wi2)
|
||
ENDIF
|
||
FMT(vowel/i_en)
|
||
endphoneme
|
||
|
||
|
||
phoneme O:
|
||
vowel starttype #o endtype #o
|
||
length 230
|
||
ChangeIfDiminished(@)
|
||
FMT(vowel/oo_en)
|
||
endphoneme
|
||
|
||
|
||
phoneme O
|
||
vowel starttype #o endtype #o
|
||
length 200
|
||
ChangeIfDiminished(@)
|
||
FMT(vowel/oo_en)
|
||
endphoneme
|
||
|
||
|
||
phoneme O@
|
||
vowel starttype #o endtype #o
|
||
ipa ɔː
|
||
length 240
|
||
IfNextVowelAppend(r-)
|
||
FMT(vowel/oo_en)
|
||
endphoneme
|
||
|
||
|
||
phoneme o@
|
||
vowel starttype #o endtype #o
|
||
ipa ɔː
|
||
length 250
|
||
IfNextVowelAppend(r-)
|
||
FMT(vowel/oo_en)
|
||
endphoneme
|
||
|
||
|
||
phoneme u:
|
||
vowel starttype #u endtype #u
|
||
length 210
|
||
IF nextPh(l/2) THEN
|
||
FMT(vwl_en/u_L)
|
||
ENDIF
|
||
IF prevPhW(j) THEN
|
||
length 180
|
||
ENDIF
|
||
FMT(vdiph2/uw_2)
|
||
endphoneme
|
||
|
||
|
||
phoneme aU
|
||
vowel starttype #a endtype #u
|
||
length 230
|
||
FMT(vdiph/au)
|
||
endphoneme
|
||
|
||
|
||
phoneme oU
|
||
vowel starttype #@ endtype #u
|
||
ipa əʊ
|
||
length 220
|
||
FMT(vdiph/@u_en)
|
||
endphoneme
|
||
|
||
|
||
phoneme aI
|
||
vowel starttype #a endtype #i
|
||
length 240
|
||
IF nextPh(#a) THEN
|
||
AppendPhoneme(;)
|
||
ENDIF
|
||
FMT(vdiph/ai_2)
|
||
endphoneme
|
||
|
||
|
||
phoneme eI
|
||
vowel starttype #e endtype #i
|
||
length 210
|
||
FMT(vdiph/eei)
|
||
endphoneme
|
||
|
||
|
||
phoneme OI
|
||
vowel starttype #o endtype #i
|
||
length 230
|
||
FMT(vdiph/ooi)
|
||
endphoneme
|
||
|
||
|
||
phoneme e@
|
||
vowel starttype #e endtype #@
|
||
length 230
|
||
IfNextVowelAppend(r-)
|
||
FMT(vowel/ee_1)
|
||
endphoneme
|
||
|
||
|
||
phoneme i@
|
||
vowel starttype #i endtype #@
|
||
length 250
|
||
IfNextVowelAppend(r-)
|
||
FMT(vdiph2/ii@)
|
||
endphoneme
|
||
|
||
|
||
phoneme i@3
|
||
vowel starttype #i endtype #@
|
||
length 250
|
||
IfNextVowelAppend(r-)
|
||
FMT(vdiph2/ii@)
|
||
endphoneme
|
||
|
||
|
||
phoneme U@
|
||
vowel starttype #u endtype #@
|
||
length 200
|
||
IfNextVowelAppend(r-)
|
||
IF thisPh(isUnstressed) THEN
|
||
FMT(vdiph2/8@)
|
||
ENDIF
|
||
FMT(vdiph2/uu@)
|
||
endphoneme
|
||
|
||
|
||
phoneme aI@
|
||
vowel starttype #a endtype #@
|
||
length 280
|
||
IfNextVowelAppend(r-)
|
||
FMT(vwl_en/aI@)
|
||
endphoneme
|
||
|
||
|
||
phoneme aI3
|
||
vowel starttype #a endtype #@
|
||
length 280
|
||
ChangePhoneme(aI@)
|
||
endphoneme
|
||
|
||
|
||
phoneme aU@
|
||
vowel starttype #a endtype #@
|
||
length 280
|
||
IfNextVowelAppend(r-)
|
||
FMT(vwl_en/aU@)
|
||
endphoneme
|
||
|
||
|
||
|
||
|
||
phoneme IR // used for "ir" when [3:] is split (Scottish)
|
||
vowel starttype #@ endtype #@
|
||
length 190
|
||
ipa əɹ
|
||
IF nextPhW(r-) THEN
|
||
ipa ə
|
||
ENDIF
|
||
IfNextVowelAppend(r-)
|
||
FMT(vowelr/V_r)
|
||
endphoneme
|
||
|
||
|
||
phoneme VR // used for "or"/"ur" when [3:] is split (Scottish)
|
||
vowel starttype #@ endtype #@
|
||
length 210
|
||
ipa ʌɹ
|
||
IF nextPhW(r-) THEN
|
||
ipa ʌ
|
||
ENDIF
|
||
IfNextVowelAppend(r-)
|
||
FMT(vowelr/V3_r)
|
||
endphoneme
|
||
|
||
|
||
phoneme o:
|
||
vowel starttype #o endtype #o
|
||
length 220
|
||
FMT(vowel/o)
|
||
endphoneme
|
||
|
||
|
||
phoneme A~
|
||
vowel starttype #a endtype #a
|
||
length 260
|
||
FMT(vnasal/aa_n2)
|
||
endphoneme
|
||
|
||
|
||
phoneme O~
|
||
vowel starttype #o endtype #o
|
||
length 240
|
||
FMT(vnasal/oo_n2)
|
||
endphoneme
|
||
|
||
|
||
phoneme e:
|
||
vowel starttype #e endtype #e
|
||
length 210
|
||
FMT(vowel/e)
|
||
endphoneme
|
||
|
||
|
||
phoneme @# // TEST: [@] which is slightly more 'front'
|
||
vowel starttype #i endtype #i
|
||
unstressed
|
||
length 130
|
||
FMT(vowel/@_3)
|
||
endphoneme
|
||
|