mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 21:39: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.
443 lines
6.5 KiB
Plaintext
443 lines
6.5 KiB
Plaintext
|
||
|
||
//=========================================================
|
||
// German
|
||
//=========================================================
|
||
|
||
|
||
|
||
phoneme @ // Schwa
|
||
vwl starttype #@ endtype #@
|
||
unstressed
|
||
length 120
|
||
IF nextPh(r) THEN
|
||
IF next2Ph(isVowel) THEN
|
||
ELSE
|
||
ChangePhoneme(3)
|
||
ENDIF
|
||
ENDIF
|
||
FMT(vowel/@_4)
|
||
endphoneme
|
||
|
||
|
||
phoneme 3 // open Schwa+r
|
||
vwl starttype #@ endtype #@
|
||
unstressed flag1
|
||
length 160
|
||
IF thisPh(isFinalVowel) THEN
|
||
length 210
|
||
ENDIF
|
||
FMT(vowel/a#_3) // in eSpeak 1.44, this used vowel/V_3 at end-of-word
|
||
endphoneme
|
||
|
||
|
||
phoneme a
|
||
vwl starttype #a endtype #a
|
||
length 110
|
||
IF nextPh(isRhotic) THEN
|
||
length 125
|
||
ENDIF
|
||
FMT(vowel/a)
|
||
endphoneme
|
||
|
||
|
||
phoneme E
|
||
vwl starttype #e endtype #e
|
||
length 120
|
||
IF nextPh(*) THEN
|
||
length 135
|
||
ENDIF
|
||
FMT(vowel/e_mid2)
|
||
endphoneme
|
||
|
||
|
||
phoneme E2 // as[E] but reduces to @ if unstressed
|
||
vwl starttype #e endtype #e
|
||
length 120
|
||
ChangeIfDiminished(@)
|
||
IF nextPh(*) THEN
|
||
length 135
|
||
ENDIF
|
||
FMT(vowel/e_mid2)
|
||
endphoneme
|
||
|
||
|
||
phoneme I
|
||
vwl starttype #i endtype #i
|
||
length 120
|
||
IF nextPh(*) THEN
|
||
length 135
|
||
ENDIF
|
||
IfNextVowelAppend(;)
|
||
FMT(vowel/ii)
|
||
endphoneme
|
||
|
||
|
||
phoneme I:
|
||
vwl starttype #i endtype #i
|
||
length 190
|
||
FMT(vowel/ii)
|
||
endphoneme
|
||
|
||
|
||
phoneme O
|
||
vwl starttype #o endtype #o
|
||
length 120
|
||
IF nextPh(*) THEN
|
||
length 135
|
||
ENDIF
|
||
FMT(vowel/oo)
|
||
endphoneme
|
||
|
||
|
||
phoneme U
|
||
vwl starttype #u endtype #u
|
||
length 120
|
||
IF nextPh(*) THEN
|
||
length 135
|
||
ENDIF
|
||
|
||
IF nextPh(r) AND next2Ph(isNotVowel) THEN
|
||
ChangePhoneme(UR)
|
||
ENDIF
|
||
FMT(vowel/uu_2)
|
||
endphoneme
|
||
|
||
|
||
phoneme A:
|
||
vwl starttype #a endtype #a
|
||
length 250
|
||
FMT(vowel/aa_6)
|
||
endphoneme
|
||
|
||
|
||
phoneme A // reduces to [a] if not stressed
|
||
vwl starttype #a endtype #a
|
||
length 250
|
||
ChangeIfUnstressed(a)
|
||
FMT(vowel/aa_6)
|
||
endphoneme
|
||
|
||
|
||
phoneme i:
|
||
vwl starttype #i endtype #i
|
||
length 180
|
||
IF prevPh(w) THEN
|
||
VowelStart(w/wi2)
|
||
ENDIF
|
||
|
||
// IF nextPh(r) AND next2Ph(isNotVowel) THEN
|
||
// ChangePhoneme(iR)
|
||
// ENDIF
|
||
FMT(vowel/i_2)
|
||
endphoneme
|
||
|
||
|
||
phoneme i2
|
||
vwl starttype #i endtype #i
|
||
length 180
|
||
ChangeIfNotStressed(I)
|
||
IF prevPh(w) THEN
|
||
VowelStart(w/wi2)
|
||
ENDIF
|
||
FMT(vowel/i_2)
|
||
endphoneme
|
||
|
||
|
||
phoneme u:
|
||
vwl starttype #u endtype #u
|
||
length 190
|
||
FMT(vowel/u)
|
||
endphoneme
|
||
|
||
|
||
phoneme aU
|
||
vwl starttype #a endtype #u
|
||
length 220
|
||
FMT(vdiph/aau_6)
|
||
endphoneme
|
||
|
||
|
||
phoneme aI
|
||
vwl starttype #a endtype #i
|
||
length 210
|
||
FMT(vdiph/ai_5)
|
||
endphoneme
|
||
|
||
|
||
phoneme EI
|
||
vwl starttype #e endtype #i
|
||
length 210
|
||
FMT(vdiph/eei)
|
||
endphoneme
|
||
|
||
|
||
|
||
phoneme OY
|
||
vwl starttype #o endtype #i
|
||
length 220
|
||
FMT(vdiph/oi)
|
||
endphoneme
|
||
|
||
|
||
phoneme E:
|
||
vwl starttype #e endtype #e
|
||
length 200
|
||
FMT(vowel/e_8)
|
||
endphoneme
|
||
|
||
|
||
phoneme e:
|
||
vwl starttype #e endtype #e
|
||
length 200
|
||
FMT(vowel/e_2)
|
||
endphoneme
|
||
|
||
|
||
phoneme o:
|
||
vwl starttype #o endtype #o
|
||
length 210
|
||
FMT(vowel/o)
|
||
endphoneme
|
||
|
||
|
||
phoneme y:
|
||
vwl starttype #u endtype #u
|
||
length 200
|
||
FMT(vowel/y)
|
||
endphoneme
|
||
|
||
|
||
phoneme y
|
||
vwl starttype #u endtype #u
|
||
ipa ʏ
|
||
length 110
|
||
IF nextPh(*) THEN
|
||
length 115
|
||
ENDIF
|
||
FMT(vowel/yy_4)
|
||
endphoneme
|
||
|
||
|
||
phoneme Y:
|
||
vwl starttype #@ endtype #@
|
||
length 180
|
||
FMT(vowel/y#)
|
||
endphoneme
|
||
|
||
|
||
phoneme W
|
||
vwl starttype #@ endtype #@
|
||
length 150
|
||
IF nextPh(*) THEN
|
||
length 160
|
||
ENDIF
|
||
FMT(vowel/oe)
|
||
endphoneme
|
||
|
||
|
||
|
||
// CONSONANTS
|
||
//===========
|
||
|
||
phoneme t
|
||
vls alv stp
|
||
voicingswitch d
|
||
lengthmod 2
|
||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
|
||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
|
||
|
||
IF nextPh(isPause2) THEN
|
||
WAV(ustop/t_)
|
||
ELIF nextPh(r) THEN
|
||
WAV(ustop/t_)
|
||
ELIF nextPh(@-) THEN
|
||
WAV(ustop/t_dnt, 50)
|
||
ENDIF
|
||
WAV(ustop/t, 90)
|
||
endphoneme
|
||
|
||
|
||
|
||
phoneme ts
|
||
import_phoneme consonants/ts
|
||
endphoneme
|
||
|
||
|
||
phoneme pF
|
||
vls bld afr
|
||
ipa pf
|
||
Vowelout f1=0 f2=1000 -500 -350 f3=-200 80
|
||
lengthmod 2
|
||
WAV(ufric/f) // could replace this with a [pf] wav file
|
||
endphoneme
|
||
|
||
|
||
phoneme g# // for "ig" -> [IC] or [Ig]
|
||
vls pal frc
|
||
lengthmod 3
|
||
|
||
IF nextPhW(isVoiced) THEN
|
||
ChangePhoneme(g)
|
||
ELSE
|
||
ChangePhoneme(C)
|
||
ENDIF
|
||
endphoneme
|
||
|
||
|
||
|
||
phoneme l/ // used for [l] when not before a vowel
|
||
liquid
|
||
lengthmod 7
|
||
|
||
IF nextPh(isVowel) THEN
|
||
ChangePhoneme(l)
|
||
ENDIF
|
||
|
||
PrevVowelEndings
|
||
VowelEnding(l/L1_@L, -60)
|
||
VowelEnding(l/L1_aL, -40)
|
||
VowelEnding(l/L1_eL, -30)
|
||
VowelEnding(l/L1_iL, -30)
|
||
VowelEnding(l/L1_oL, -40)
|
||
VowelEnding(l/L1_uL, -40)
|
||
EndSwitch
|
||
|
||
FMT(l/l_3)
|
||
endphoneme
|
||
|
||
|
||
phoneme j
|
||
liquid pal
|
||
lengthmod 7
|
||
|
||
IF nextPh(isVowel) THEN
|
||
NextVowelStarts
|
||
VowelStart(j/j@)
|
||
VowelStart(j/ja)
|
||
VowelStart(j/je)
|
||
VowelStart(j/ji)
|
||
VowelStart(j/jo)
|
||
VowelStart(j/ju)
|
||
EndSwitch
|
||
|
||
VowelEnding(j/xj, -30)
|
||
|
||
IF prevPh(isPause) THEN
|
||
FMT(j/_j_short) // difference from base1/j
|
||
ENDIF
|
||
ELSE
|
||
// no vowel follows
|
||
Vowelout len=70
|
||
FMT(j/j_)
|
||
ENDIF
|
||
endphoneme
|
||
|
||
|
||
phoneme r // note, following consonant must be 'ustop/t_' not 'ustop/tr' etc.
|
||
liquid alv rhotic
|
||
lengthmod 6
|
||
|
||
IF prevPhW(@-) THEN
|
||
ELSE
|
||
IF nextPhW(isVowel) THEN
|
||
IF prevPhW(isVowel) THEN
|
||
ChangePhoneme(R)
|
||
ELSE
|
||
IF prevPhW(t) THEN
|
||
PauseBefore 30
|
||
ELSEIF prevPhW(d) OR prevPhW(b) OR prevPhW(g) OR prevPhW(k) OR prevPhW(p) THEN
|
||
PauseBefore 15
|
||
ELSE
|
||
InsertPhoneme(@-)
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF prevPh(isFlag1) THEN
|
||
ChangePhoneme(NULL) // 'r' is already included in the previous vowel
|
||
ENDIF
|
||
|
||
CALL base1/*
|
||
endphoneme
|
||
|
||
|
||
|
||
phoneme iR // TEST "vier" = [f'iR] not successful
|
||
vwl starttype #i endtype #@
|
||
ipa iɐ
|
||
flag1
|
||
length 240
|
||
FMT(vdiph2/i@_3)
|
||
endphoneme
|
||
|
||
|
||
phoneme UR
|
||
vwl starttype #u endtype #@
|
||
ipa ʊɐ
|
||
flag1
|
||
length 180
|
||
FMT(vwl_de/uu_@)
|
||
endphoneme
|
||
|
||
|
||
|
||
|
||
phoneme oU // for English words
|
||
import_phoneme en-us/oU
|
||
endphoneme
|
||
|
||
phoneme A~
|
||
vwl starttype #a endtype #a
|
||
length 260
|
||
FMT(vnasal/aa_n4)
|
||
endphoneme
|
||
|
||
|
||
phoneme l2 // as [l] but devoice previous phoneme
|
||
liquid lengthmod 7
|
||
ChangePhoneme (l)
|
||
endphoneme
|
||
|
||
phoneme b
|
||
vcd alv frc sib
|
||
voicingswitch p
|
||
IF nextPh(l2) THEN
|
||
ChangePhoneme(p)
|
||
ENDIF
|
||
CALL base1/b
|
||
endphoneme
|
||
|
||
phoneme d
|
||
vcd alv stp
|
||
voicingswitch t
|
||
IF nextPh(l2) THEN
|
||
ChangePhoneme(t)
|
||
ENDIF
|
||
lengthmod 5
|
||
Vowelin f1=1 f2=1700 -300 300 f3=-100 80
|
||
Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk
|
||
|
||
IF PreVoicing THEN
|
||
FMT(d/xd)
|
||
ENDIF
|
||
|
||
IF nextPh(isPause2) THEN
|
||
FMT(d/d_) addWav(x/d_)
|
||
ELIF nextPh(r) THEN
|
||
FMT(d/dr) addWav(x/d)
|
||
ENDIF
|
||
|
||
FMT(d/d) addWav(x/d)
|
||
endphoneme
|
||
|
||
phoneme g
|
||
vcd vel stp
|
||
voicingswitch k
|
||
IF nextPh(l2) THEN
|
||
ChangePhoneme(k)
|
||
ENDIF
|
||
CALL base1/g
|
||
endphoneme
|