mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 13:38:47 +00:00
These are causing problems with several of the voices. Revert "ipa: n (vcd alv nas)." commit8869c72d97. Revert "ipa: m (vcd blb nas)." commit581b366bb0. Revert "ipa: ɳ (vcd rfx nas)." commit7cc3a6c0c2. Revert "ipa: ɲ (vcd pal nas)." commiteda7bc03d6. Revert "ipa: ŋ (vcd vel nas)." commitefeca3b275. Revert "ipa: document the supported pulmonic consonants in ph_ipa as an IPA chart." commit675cec2fac. Revert "ipa: ɹ (vcd alv apr)." commit0f41dae8e9. Revert "ipa: t (vls alv stp)." commita49729cd70. Revert "ipa: ensure that each phoneme has an ipa annotation." commit3cdb952ea3. Revert "ipa: t̪ (vls dnt stp)." commitdd30a61186. Revert "ipa: d (vcd alv stp)" commita96f748470. Revert "ipa: d̪ (vcd dnt stp)" commit39f7e7b2f6. Revert "ipa: d͡ʒ (vcd pla sib afr)" commit16be8f19bf. Revert "ipa: d͡ʑ (vcd alp sib afr)." commit883187cfb5. Revert "ipa: ɟ (vcd pal stp)." commit2e682bcdc5. Revert "ipa: g (vcd vel stp)." commit679b939474. Revert "ipa: b (vcd blb stp)." commitfb6bd384ee. Revert "ipa: j (vcd pal apr)." commit1d36966b9f. Revert "ipa: w (vcd ptr vel apr)." commitefade0fc71. Revert "ipa: β (vcd blb frc)." commit063ee44a4f. Revert "ipa: v (vcd lbd frc)." commit3374b13ad6. Revert "ipa: ʋ (vcd lbd apr)." commit0a55fe6ad4. Revert "ipa: fix the 'Other Symbols' table." commit440fb6d4bb. Revert "ipa: ð (vcd dnt frc)." commit6eb518ee0f. Revert "ipa: d (vcd alv frc)." commit0574f488c3. Revert "ipa: ʒ (vcd pla frc)." commit7312b1b2a2. Revert "ipa: ʐ (vcd rfx frc)." commitdc937cf1de. Revert "ipa: ʑ (vcd alp sib frc)." commit8b55428ece. Revert "ipa: ʝ (vcd pal frc)." commit736fa69471. Revert "ipa: ɣ (vcd vel frc)." commit237af08312. Revert "ipa: ʁ (vcd uvl frc)." commit09601af6f5. Revert "ipa: t͡ʃ (vls pla sib afr)" commitd170b0c024. Revert "ipa: t͡ɕ (vls alp sib afr)" commit88bdbe9256. Revert "ipa: c (vls pal stp)" commite836376922. Revert "ipa: q (vls uvl stp)" commit695a9007aa. Revert "ipa: l (vcd alv lat apr)." commita5e5202ca5. Revert "ipa: ɫ (vcd alv fzd lat apr)." commit217eceeb34. Revert "ipa: ɭ (vcd rfx lat apr)." commitb7428eb443. Revert "ipa: ʎ (vcd pal lat apr)." commit74c3ff5c97. Revert "ipa: ʟ (vcd vel lat apr)." commit9796200f26. Revert "ipa: p (vls blb stp)." commit302decc882. Revert "ipa: k (vls vel stp)." commitd4a2846837. Revert "ipa: f (vls lbd frc)." commit175d3c0299. Revert "ipa: θ (vls dnt frc)." commitd2a04674e8. Revert "ipa: s (vls alv sib frc)." commitce810f3cd8. Revert "ipa: ʃ (vls pla sib frc)." commitdce61376d8. Revert "ipa: ʂ (vls rfx sib frc)." commit1135ff1013. Revert "ipa: zʲ (vls alv sib frc pzd)." commitd8aa055697. Revert "ipa: sʲ (vls alv sib frc pzd)." commite51dc6e61a. Revert "ipa: ɕ (vls alp sib frc)." commitcc7127d26e. Revert "ipa: ɬ (vls alv lat frc)." commite338295e19. Revert "ipa: ç (vls pal frc)." commitf05a32bf0f. Revert "ipa: x (vls vel frc)." commitc88c43eecc. Revert "ipa: χ (vls uvl frc)." commit5cb8ce12bd. Revert "ipa: h (vls glt frc)." commit98355a0f47. Revert "ipa: t͡s (vls alv sib afr)." commitdd66fe41e3. Revert "ipa: t͡s (vls alv sib afr)." commit2c45f60588. Revert "ipa: d͡z (vcd alv sib afr)" commit1cd9bf80b3. Revert "ipa: ʍ (vls ptr vel frc)" commit923bfdb82c. Revert "base1: Restore the original eSpeak definitions for /l/. The ipa table versions are causing issues." commit299c91aca1.
652 lines
9.8 KiB
Plaintext
652 lines
9.8 KiB
Plaintext
|
|
phoneme t2 // [t] which doesn't reduce
|
|
vcd alv stp
|
|
ChangePhoneme(t)
|
|
endphoneme
|
|
|
|
|
|
phoneme t# // reduced [t] as in "city" in en-us
|
|
vcd alv stp
|
|
ChangePhoneme(t)
|
|
endphoneme
|
|
|
|
|
|
phoneme d# // change to [d] or [t] depending on whether previous phoneme is voiced
|
|
vls alv stp
|
|
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 sib
|
|
IF prevPh(isVoiced) THEN
|
|
ChangePhoneme(z)
|
|
ELSE
|
|
ChangePhoneme(s)
|
|
ENDIF
|
|
endphoneme
|
|
|
|
|
|
|
|
phoneme l // use dark [l/2] before not-vowel
|
|
liquid
|
|
lengthmod 7
|
|
|
|
IF NOT nextPhW(isVowel) THEN
|
|
IF prevPh(isVowel) OR prevPh(j) OR prevPh(w) THEN
|
|
ChangePhoneme(l/2)
|
|
ELSE
|
|
ChangePhoneme(l/)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
CALL base1/l
|
|
endphoneme
|
|
|
|
|
|
phoneme r- // linking r, used in English between certain vowels and a following vowel
|
|
liquid rhotic
|
|
ipa ɹ
|
|
|
|
IF NOT thisPh(isWordEnd) AND NOT prevPh(@) AND NOT prevPh(3) THEN
|
|
ChangePhoneme(r)
|
|
ENDIF
|
|
|
|
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 sib
|
|
lengthmod 6
|
|
IF prevPh(isSibilant) THEN
|
|
InsertPhoneme(I2)
|
|
ENDIF
|
|
|
|
IF NOT prevPh(isVoiced) THEN
|
|
ChangePhoneme(s)
|
|
ENDIF
|
|
ChangePhoneme(z)
|
|
endphoneme
|
|
|
|
|
|
phoneme w#
|
|
vls glt apr // [h]
|
|
ipa ʍ
|
|
|
|
IF nextPh(isVowel) THEN
|
|
NextVowelStarts
|
|
VowelStart(w/w@)
|
|
VowelStart(w/wa)
|
|
VowelStart(w/we)
|
|
VowelStart(w/wi)
|
|
VowelStart(w/wo)
|
|
VowelStart(w/wu)
|
|
EndSwitch
|
|
ENDIF
|
|
|
|
WAV(h/hu, 70)
|
|
endphoneme
|
|
|
|
|
|
phoneme n
|
|
vcd alv nas
|
|
ipa n
|
|
IF nextPh(isVelar) THEN // /n/ is velarized to /N/ when before velar stops
|
|
ChangePhoneme(N)
|
|
ENDIF
|
|
CALL base1/n
|
|
endphoneme
|
|
|
|
|
|
//*******************************************************************
|
|
// VOWELS
|
|
//*******************************************************************
|
|
|
|
phoneme @
|
|
vwl starttype #@ endtype #@
|
|
unstressed
|
|
length 140
|
|
IfNextVowelAppend(r-)
|
|
IF thisPh(isWordEnd) THEN
|
|
FMT(vowel/@_6, 90)
|
|
ENDIF
|
|
FMT(vowel/@)
|
|
endphoneme
|
|
|
|
|
|
phoneme 3
|
|
CALL @
|
|
ipa ə
|
|
endphoneme
|
|
|
|
|
|
phoneme @2 // Schwa, changes to I before a vowel. th**e**, used only for "the".
|
|
vwl starttype #@ endtype #@
|
|
unstressed
|
|
length 120
|
|
IF nextPh(isVowel) THEN
|
|
ChangePhoneme(I2)
|
|
ENDIF
|
|
ChangePhoneme(@)
|
|
endphoneme
|
|
|
|
|
|
phoneme @5 // Schwa, changes to U before a vowel. t**o**, used only for "to".
|
|
vwl starttype #@ endtype #@
|
|
unstressed
|
|
length 140
|
|
IF nextPh(isVowel) OR nextPh(isPause) THEN
|
|
ChangePhoneme(U)
|
|
ENDIF
|
|
ChangePhoneme(@)
|
|
endphoneme
|
|
|
|
|
|
phoneme @L // simp**le**
|
|
vwl starttype #@ endtype l
|
|
ipa ə|l
|
|
unstressed
|
|
length 160
|
|
CALL vowelstart_l
|
|
FMT(vwl_en/@L)
|
|
endphoneme
|
|
|
|
|
|
phoneme a
|
|
vwl starttype #a endtype #a
|
|
length 160
|
|
ChangeIfDiminished(a#)
|
|
IF thisPh(isUnstressed) THEN
|
|
FMT(vowel/a_8)
|
|
ENDIF
|
|
FMT(vowel/a)
|
|
endphoneme
|
|
|
|
|
|
phoneme a2 // don't reduce to a#
|
|
vwl
|
|
ChangePhoneme(a)
|
|
endphoneme
|
|
|
|
|
|
phoneme a# // **a**bout. This may be \[@\] or may be a more open schwa.
|
|
vwl starttype #@ endtype #@
|
|
ipa ɐ
|
|
unstressed
|
|
length 150
|
|
|
|
IF NOT thisPh(isUnstressed) THEN
|
|
ChangePhoneme(a) // syllable has an explicit stress
|
|
ENDIF
|
|
|
|
FMT(vowel/a#_3)
|
|
endphoneme
|
|
|
|
|
|
phoneme aa
|
|
vwl starttype #a endtype #a
|
|
ipa a
|
|
length 200
|
|
|
|
IF MbrolaSynth THEN
|
|
ChangePhoneme(A:)
|
|
ENDIF
|
|
|
|
IfNextVowelAppend(r-)
|
|
FMT(vowel/a_6, 88)
|
|
endphoneme
|
|
|
|
|
|
phoneme E
|
|
vwl starttype #e endtype #e
|
|
length 140
|
|
IF nextPhW(n) THEN
|
|
ChangeIfDiminished(@)
|
|
ELSE
|
|
ChangeIfDiminished(I2)
|
|
ENDIF
|
|
FMT(vowel/ee_5)
|
|
endphoneme
|
|
|
|
|
|
phoneme E# // [@] in unstressed syllables, if next vowel is stressed
|
|
vwl starttype #e endtype #e
|
|
|
|
IF thisPh(isUnstressed) AND nextVowel(isVowel) AND nextVowel(isStressed) THEN
|
|
ChangePhoneme(@)
|
|
ENDIF
|
|
|
|
ChangePhoneme(E)
|
|
endphoneme
|
|
|
|
|
|
phoneme E2 // does not reduce in unstressed syllables
|
|
vwl starttype #e endtype #e
|
|
length 140
|
|
ChangePhoneme(E) // a second change ([E] to [I2]) won't happen
|
|
endphoneme
|
|
|
|
|
|
|
|
phoneme I
|
|
vwl starttype #i endtype #i
|
|
length 130
|
|
IfNextVowelAppend(;)
|
|
FMT(vowel/ii_2)
|
|
endphoneme
|
|
|
|
|
|
phoneme I2 // **i**ntend. As \[I\], but also indicates an unstressed syllable.
|
|
vwl starttype #i endtype #i
|
|
unstressed
|
|
length 130
|
|
|
|
IF MbrolaSynth THEN
|
|
ChangePhoneme(I)
|
|
ENDIF
|
|
|
|
IfNextVowelAppend(;)
|
|
|
|
IF thisPh(isAfterStress) AND thisPh(isFinalVowel) THEN
|
|
FMT(vowel/ii#_3)
|
|
ENDIF
|
|
FMT(vowel/ii_4)
|
|
endphoneme
|
|
|
|
|
|
phoneme I# // used for [I] which may be [@] in some accents
|
|
vwl starttype #i endtype #i
|
|
unstressed
|
|
length 130
|
|
|
|
IF MbrolaSynth THEN
|
|
ChangePhoneme(I)
|
|
ENDIF
|
|
|
|
IfNextVowelAppend(;)
|
|
ChangePhoneme(I2)
|
|
endphoneme
|
|
|
|
|
|
phoneme i
|
|
vwl starttype #i endtype #i
|
|
unstressed
|
|
ipa i
|
|
length 150
|
|
IfNextVowelAppend(;)
|
|
|
|
// IF NOT thisPh(isFinalVowel) THEN
|
|
// ChangePhoneme(I)
|
|
// ENDIF
|
|
|
|
FMT(vowel/ii_7)
|
|
endphoneme
|
|
|
|
|
|
phoneme 0
|
|
vwl starttype #o endtype #o
|
|
length 140
|
|
ChangeIfDiminished(@)
|
|
FMT(vowel/0)
|
|
endphoneme
|
|
|
|
|
|
phoneme 0# // [@] in unstressed syllables
|
|
vwl starttype #o endtype #o
|
|
|
|
IF thisPh(isUnstressed) AND nextVowel(isVowel) AND NOT nextVowel(isUnstressed) THEN
|
|
ChangePhoneme(@)
|
|
ENDIF
|
|
|
|
ChangePhoneme(0)
|
|
endphoneme
|
|
|
|
|
|
phoneme 02 // becomes V in en-us
|
|
vwl starttype #o endtype #o
|
|
length 140
|
|
ChangePhoneme(0)
|
|
endphoneme
|
|
|
|
|
|
phoneme O2
|
|
vwl starttype #o endtype #o
|
|
length 140
|
|
ChangePhoneme(0)
|
|
endphoneme
|
|
|
|
|
|
phoneme V
|
|
vwl starttype #a endtype #@
|
|
length 140
|
|
|
|
ChangeIfDiminished(@)
|
|
FMT(vowel/V_2)
|
|
endphoneme
|
|
|
|
|
|
phoneme U
|
|
vwl starttype #o endtype #o
|
|
length 150
|
|
|
|
IF prevPhW(j) THEN
|
|
length 130
|
|
FMT(vowel/8_2)
|
|
ENDIF
|
|
|
|
FMT(vowel/uu)
|
|
endphoneme
|
|
|
|
|
|
|
|
phoneme A:
|
|
vwl starttype #a endtype #a
|
|
length 230
|
|
IfNextVowelAppend(r-)
|
|
FMT(vowel/aa_2)
|
|
endphoneme
|
|
|
|
|
|
phoneme A@
|
|
vwl starttype #a endtype #a
|
|
ipa ɑː
|
|
length 230
|
|
IfNextVowelAppend(r-)
|
|
FMT(vowel/aa_2)
|
|
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(@)
|
|
FMT(vowel/3_en)
|
|
endphoneme
|
|
|
|
|
|
phoneme i:
|
|
vwl starttype #i endtype #i
|
|
length 175
|
|
IfNextVowelAppend(;)
|
|
IF prevPh(w) THEN
|
|
VowelStart(w/wi2)
|
|
ENDIF
|
|
FMT(vowel/i_en)
|
|
endphoneme
|
|
|
|
|
|
phoneme O:
|
|
vwl starttype #o endtype #o
|
|
length 230
|
|
ChangeIfDiminished(@)
|
|
FMT(vowel/oo_en)
|
|
endphoneme
|
|
|
|
|
|
phoneme O
|
|
vwl starttype #o endtype #o
|
|
length 200
|
|
ChangeIfDiminished(@)
|
|
FMT(vowel/oo_en)
|
|
endphoneme
|
|
|
|
|
|
phoneme O@
|
|
vwl starttype #o endtype #o
|
|
ipa ɔː
|
|
length 240
|
|
IfNextVowelAppend(r-)
|
|
FMT(vowel/oo_en)
|
|
endphoneme
|
|
|
|
|
|
phoneme o@
|
|
vwl starttype #o endtype #o
|
|
ipa ɔː
|
|
length 250
|
|
|
|
IF MbrolaSynth THEN
|
|
ChangePhoneme(O@)
|
|
ENDIF
|
|
|
|
IfNextVowelAppend(r-)
|
|
FMT(vowel/oo_en)
|
|
endphoneme
|
|
|
|
|
|
phoneme u:
|
|
vwl starttype #u endtype #u
|
|
length 210
|
|
IF nextPh(l/2) THEN
|
|
FMT(vwl_en/u_L)
|
|
ENDIF
|
|
IF prevPhW(j) AND NOT thisPh(isWordEnd) THEN
|
|
length 160
|
|
ENDIF
|
|
FMT(vdiph2/uw_2)
|
|
endphoneme
|
|
|
|
|
|
phoneme aU
|
|
vwl starttype #a endtype #u
|
|
length 230
|
|
FMT(vdiph/au)
|
|
endphoneme
|
|
|
|
|
|
phoneme oU
|
|
vwl starttype #@ endtype #u
|
|
ipa əʊ
|
|
length 220
|
|
FMT(vdiph/@u_en)
|
|
endphoneme
|
|
|
|
|
|
phoneme oU#
|
|
vwl
|
|
IF thisPh(isStressed) THEN
|
|
ChangePhoneme(0)
|
|
ENDIF
|
|
|
|
IF nextVowel(isStressed) OR prevVowel(isStressed) THEN
|
|
ChangePhoneme(@)
|
|
ENDIF
|
|
|
|
ChangePhoneme(oU)
|
|
endphoneme
|
|
|
|
|
|
phoneme aI
|
|
vwl starttype #a endtype #i
|
|
length 240
|
|
IF nextPh(#a) THEN
|
|
AppendPhoneme(;)
|
|
ENDIF
|
|
FMT(vdiph/ai_2)
|
|
endphoneme
|
|
|
|
|
|
phoneme eI
|
|
vwl starttype #e endtype #i
|
|
length 210
|
|
FMT(vdiph/eei)
|
|
endphoneme
|
|
|
|
|
|
phoneme OI
|
|
vwl starttype #o endtype #i
|
|
length 230
|
|
FMT(vdiph/ooi)
|
|
endphoneme
|
|
|
|
|
|
phoneme e@
|
|
vwl starttype #e endtype #@
|
|
length 230
|
|
IfNextVowelAppend(r-)
|
|
FMT(vowel/ee_1)
|
|
endphoneme
|
|
|
|
|
|
phoneme i@
|
|
vwl starttype #i endtype #@
|
|
length 250
|
|
IfNextVowelAppend(r-)
|
|
FMT(vdiph2/ii@)
|
|
endphoneme
|
|
|
|
|
|
phoneme i@3
|
|
vwl starttype #i endtype #@
|
|
length 250
|
|
|
|
IF MbrolaSynth THEN
|
|
ChangePhoneme(i@)
|
|
ENDIF
|
|
|
|
IfNextVowelAppend(r-)
|
|
FMT(vdiph2/ii@)
|
|
endphoneme
|
|
|
|
|
|
phoneme U@
|
|
vwl starttype #u endtype #@
|
|
length 200
|
|
IfNextVowelAppend(r-)
|
|
IF thisPh(isUnstressed) THEN
|
|
FMT(vdiph2/8@)
|
|
ENDIF
|
|
FMT(vdiph2/uu@)
|
|
endphoneme
|
|
|
|
|
|
phoneme aI@ // sc**ie**nce
|
|
vwl starttype #a endtype #@
|
|
length 280
|
|
IfNextVowelAppend(r-)
|
|
FMT(vwl_en/aI@)
|
|
endphoneme
|
|
|
|
|
|
phoneme aI3
|
|
vwl starttype #a endtype #@
|
|
length 280
|
|
ChangePhoneme(aI@)
|
|
endphoneme
|
|
|
|
|
|
phoneme aU@ // h**our**
|
|
vwl starttype #a endtype #@
|
|
length 280
|
|
IfNextVowelAppend(r-)
|
|
FMT(vwl_en/aU@)
|
|
endphoneme
|
|
|
|
|
|
|
|
|
|
phoneme IR // used for "ir" when [3:] is split (Scottish)
|
|
vwl 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)
|
|
vwl starttype #@ endtype #@
|
|
length 210
|
|
ipa ʌɹ
|
|
IF nextPhW(r-) THEN
|
|
ipa ʌ
|
|
ENDIF
|
|
IfNextVowelAppend(r-)
|
|
FMT(vowelr/V3_r)
|
|
endphoneme
|
|
|
|
|
|
phoneme o:
|
|
vwl starttype #o endtype #o
|
|
length 220
|
|
FMT(vowel/o)
|
|
endphoneme
|
|
|
|
|
|
phoneme A~
|
|
vwl starttype #a endtype #a
|
|
length 260
|
|
FMT(vnasal/aa_n2)
|
|
endphoneme
|
|
|
|
|
|
phoneme O~
|
|
vwl starttype #o endtype #o
|
|
length 240
|
|
FMT(vnasal/oo_n2)
|
|
endphoneme
|
|
|
|
|
|
phoneme e:
|
|
vwl starttype #e endtype #e
|
|
length 210
|
|
FMT(vowel/e)
|
|
endphoneme
|
|
|
|
|
|
phoneme e# // **E**XPLORE
|
|
vwl
|
|
ChangePhoneme(E)
|
|
endphoneme
|
|
|
|
|
|
phoneme a#2 // for word 'an'
|
|
vwl
|
|
IF next2Ph(isVowel) THEN
|
|
ChangePhoneme(a#)
|
|
ELSE
|
|
ChangePhoneme(a)
|
|
ENDIF
|
|
endphoneme
|
|
|
|
|
|
phoneme @# // TEST: [@] which is slightly more 'front'
|
|
vwl starttype #i endtype #i
|
|
unstressed
|
|
length 130
|
|
FMT(vowel/@_3)
|
|
endphoneme
|
|
|