mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-10 16:21:29 +00:00
Indicate language changes in IPA phoneme output. Phoneme definitions FMT(), second parameter is amplitude percentage. Phoneme definitions CALL(), If phoneme type is not defined, copy the static attributes from the called phoneme. Unpronouncable word check: stop when an apostrophe is reached. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@250 d46cf337-b52f-0410-862d-fd96e6ae7743
460 lines
6.8 KiB
Plaintext
460 lines
6.8 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 l // use dark [l/2] before not-vowel
|
|
liquid
|
|
lengthmod 7
|
|
|
|
IF nextPhW(isVowel) THEN
|
|
ELSE
|
|
IF prevPh(isNotVowel) THEN
|
|
ChangePhoneme(l/)
|
|
ELSE
|
|
ChangePhoneme(l/2)
|
|
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
|
|
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_7)
|
|
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 // optional variant of [I] for end of words
|
|
vowel starttype #i endtype #i
|
|
length 140
|
|
IfNextVowelAppend(;)
|
|
FMT(vowel/ii_en)
|
|
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
|
|
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) OR nextPh(#o) 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-)
|
|
FMT(vdiph2/uu@)
|
|
endphoneme
|
|
|
|
|
|
phoneme aI@
|
|
vowel starttype #a endtype #@
|
|
length 280
|
|
IfNextVowelAppend(r-)
|
|
FMT(vwl_en/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
|
|
|
|
|