//========================================================= // German //========================================================= phoneme @ // Schwa vowel starttype #@ endtype #@ unstressed length 125 IF nextPh(r/) THEN FMT(vowel/a#_3) // replace [@r] by [3] ENDIF FMT(vowel/@_3) endphoneme phoneme 3 // open Schwa vowel starttype #@ endtype #@ unstressed length 125 FMT(vowel/a#_3) endphoneme phoneme a vowel starttype #a endtype #a length 110 IF nextPh(*) THEN length 150 ENDIF FMT(vowel/a) endphoneme phoneme E vowel starttype #e endtype #e length 120 IF nextPh(*) THEN length 160 ENDIF FMT(vowel/e_mid2) endphoneme phoneme E2 // as[E] but reduces to @ if unstressed vowel starttype #e endtype #e length 120 ChangeIfDiminished(@) IF nextPh(*) THEN length 160 ENDIF FMT(vowel/e_mid2) endphoneme phoneme I vowel starttype #i endtype #i length 120 IF nextPh(*) THEN length 160 ENDIF IfNextVowelAppend(;) FMT(vowel/ii) endphoneme phoneme I: vowel starttype #i endtype #i length 190 FMT(vowel/ii) endphoneme phoneme O vowel starttype #o endtype #o length 120 IF nextPh(*) THEN length 160 ENDIF FMT(vowel/oo) endphoneme phoneme U vowel starttype #u endtype #u length 140 IF nextPh(*) THEN length 180 ENDIF FMT(vowel/uu_2) endphoneme phoneme A: vowel starttype #a endtype #a length 250 FMT(vowel/aa_6) endphoneme phoneme A // reduces to [a] if not stressed vowel starttype #a endtype #a length 240 ChangeIfNotStressed(a) FMT(vowel/aa_6) endphoneme phoneme i: vowel starttype #i endtype #i length 180 IF nextPh(*) THEN length 220 ENDIF IF prevPh(w) THEN VowelStart(w/wi2) ENDIF FMT(vowel/i_2) endphoneme phoneme i2 vowel starttype #i endtype #i length 180 IF nextPh(*) THEN length 220 ENDIF ChangeIfNotStressed(I) IF prevPh(w) THEN VowelStart(w/wi2) ENDIF FMT(vowel/i_2) endphoneme phoneme u: vowel starttype #u endtype #u length 190 IF nextPh(*) THEN length 230 ENDIF FMT(vowel/u) endphoneme phoneme aU vowel starttype #a endtype #u length 220 FMT(vdiph/aau_2) endphoneme phoneme aI vowel starttype #a endtype #i length 210 FMT(vdiph/ai_5) endphoneme phoneme EI vowel starttype #e endtype #i length 210 FMT(vdiph/eei) endphoneme phoneme OY vowel starttype #o endtype #i length 220 FMT(vdiph/oi) endphoneme phoneme E: vowel starttype #e endtype #e length 190 FMT(vowel/e_mid2) endphoneme phoneme e: vowel starttype #e endtype #e length 190 IF nextPh(*) THEN length 230 ENDIF FMT(vowel/e_2) endphoneme phoneme o: vowel starttype #o endtype #o length 200 IF nextPh(*) THEN length 240 ENDIF FMT(vowel/o) endphoneme phoneme y: vowel starttype #u endtype #u length 200 IF nextPh(*) THEN length 240 ENDIF FMT(vowel/y) endphoneme phoneme y vowel starttype #u endtype #u length 130 IF nextPh(*) THEN length 170 ENDIF FMT(vowel/yy_4) endphoneme phoneme Y: vowel starttype #@ endtype #@ length 220 IF nextPh(*) THEN length 260 ENDIF FMT(vowel/y#) endphoneme phoneme W vowel starttype #@ endtype #@ length 160 IF nextPh(*) THEN length 200 ENDIF FMT(vowel/oe) endphoneme // CONSONANTS //=========== phoneme ts import_phoneme consonants/ts endphoneme phoneme pF vls blb afr 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 palatal 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 palatal 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 base/j ENDIF ELSE // no vowel follows Vowelout len=70 FMT(j/j_) ENDIF endphoneme // This is actually the ENGLISH "rolling r". For german, we now use * in the dictionary, // so this phoneme will only be used in english words in german texts. phoneme r liquid rhotic trill lengthmod 7 CALL base/r endphoneme