Files
espeak-ng/phsource/ph_german
T
Reece H. Dunn 822732dfbf Revert the ipa phoneme changes.
These are causing problems with several of the voices.

Revert "ipa: n (vcd alv nas)." commit 8869c72d97.
Revert "ipa: m (vcd blb nas)." commit 581b366bb0.
Revert "ipa: ɳ (vcd rfx nas)." commit 7cc3a6c0c2.
Revert "ipa: ɲ (vcd pal nas)." commit eda7bc03d6.
Revert "ipa: ŋ (vcd vel nas)." commit efeca3b275.
Revert "ipa: document the supported pulmonic consonants in ph_ipa as an IPA chart."
       commit 675cec2fac.
Revert "ipa: ɹ (vcd alv apr)." commit 0f41dae8e9.
Revert "ipa: t (vls alv stp)." commit a49729cd70.
Revert "ipa: ensure that each phoneme has an ipa annotation."
       commit 3cdb952ea3.
Revert "ipa: t̪ (vls dnt stp)." commit dd30a61186.
Revert "ipa: d (vcd alv stp)" commit a96f748470.
Revert "ipa: d̪ (vcd dnt stp)" commit 39f7e7b2f6.
Revert "ipa: d͡ʒ (vcd pla sib afr)" commit 16be8f19bf.
Revert "ipa: d͡ʑ (vcd alp sib afr)." commit 883187cfb5.
Revert "ipa: ɟ (vcd pal stp)." commit 2e682bcdc5.
Revert "ipa: g (vcd vel stp)." commit 679b939474.
Revert "ipa: b (vcd blb stp)." commit fb6bd384ee.
Revert "ipa: j (vcd pal apr)." commit 1d36966b9f.
Revert "ipa: w (vcd ptr vel apr)." commit efade0fc71.
Revert "ipa: β (vcd blb frc)." commit 063ee44a4f.
Revert "ipa: v (vcd lbd frc)." commit 3374b13ad6.
Revert "ipa: ʋ (vcd lbd apr)." commit 0a55fe6ad4.
Revert "ipa: fix the 'Other Symbols' table."
       commit 440fb6d4bb.
Revert "ipa: ð (vcd dnt frc)." commit 6eb518ee0f.
Revert "ipa: d (vcd alv frc)." commit 0574f488c3.
Revert "ipa: ʒ (vcd pla frc)." commit 7312b1b2a2.
Revert "ipa: ʐ (vcd rfx frc)." commit dc937cf1de.
Revert "ipa: ʑ (vcd alp sib frc)." commit 8b55428ece.
Revert "ipa: ʝ (vcd pal frc)." commit 736fa69471.
Revert "ipa: ɣ (vcd vel frc)." commit 237af08312.
Revert "ipa: ʁ (vcd uvl frc)." commit 09601af6f5.
Revert "ipa: t͡ʃ (vls pla sib afr)" commit d170b0c024.
Revert "ipa: t͡ɕ (vls alp sib afr)" commit 88bdbe9256.
Revert "ipa: c (vls pal stp)" commit e836376922.
Revert "ipa: q (vls uvl stp)" commit 695a9007aa.
Revert "ipa: l (vcd alv lat apr)." commit a5e5202ca5.
Revert "ipa: ɫ (vcd alv fzd lat apr)." commit 217eceeb34.
Revert "ipa: ɭ (vcd rfx lat apr)." commit b7428eb443.
Revert "ipa: ʎ (vcd pal lat apr)." commit 74c3ff5c97.
Revert "ipa: ʟ (vcd vel lat apr)." commit 9796200f26.
Revert "ipa: p (vls blb stp)." commit 302decc882.
Revert "ipa: k (vls vel stp)." commit d4a2846837.
Revert "ipa: f (vls lbd frc)." commit 175d3c0299.
Revert "ipa: θ (vls dnt frc)." commit d2a04674e8.
Revert "ipa: s (vls alv sib frc)." commit ce810f3cd8.
Revert "ipa: ʃ (vls pla sib frc)." commit dce61376d8.
Revert "ipa: ʂ (vls rfx sib frc)." commit 1135ff1013.
Revert "ipa: zʲ (vls alv sib frc pzd)." commit d8aa055697.
Revert "ipa: sʲ (vls alv sib frc pzd)." commit e51dc6e61a.
Revert "ipa: ɕ (vls alp sib frc)." commit cc7127d26e.
Revert "ipa: ɬ (vls alv lat frc)." commit e338295e19.
Revert "ipa: ç (vls pal frc)." commit f05a32bf0f.
Revert "ipa: x (vls vel frc)." commit c88c43eecc.
Revert "ipa: χ (vls uvl frc)." commit 5cb8ce12bd.
Revert "ipa: h (vls glt frc)." commit 98355a0f47.
Revert "ipa: t͡s (vls alv sib afr)." commit dd66fe41e3.
Revert "ipa: t͡s (vls alv sib afr)." commit 2c45f60588.
Revert "ipa: d͡z (vcd alv sib afr)" commit 1cd9bf80b3.
Revert "ipa: ʍ (vls ptr vel frc)" commit 923bfdb82c.
Revert "base1: Restore the original eSpeak definitions for /l/. The ipa table versions are causing issues."
       commit 299c91aca1.
2017-05-06 08:29:18 +01:00

443 lines
6.5 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.
//=========================================================
// 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