

phoneme i
  vwl starttype #i endtype #i
  length 180
  IF thisPh(isTranslationGiven) THEN
    // don't reduce the vowel if phonemes are explicitly given
  ELSE
    IF thisPh(isFinalVowel) THEN
      ChangePhoneme(I)
    ENDIF
    IF nextPh(isNotVowel) AND next2Ph(isNotVowel) THEN
      ChangePhoneme(I)
    ENDIF
  ENDIF
  FMT(vowel/i_6)
endphoneme

phoneme I
  vwl starttype #i endtype #i
  length 180
  FMT(vowel/ii_5)
endphoneme


phoneme y
  vwl starttype #u endtype #u
  length 180
  IF thisPh(isTranslationGiven) THEN
    // don't reduce the vowel if phonemes are explicitly given
  ELSE
    IF thisPh(isFinalVowel) THEN
      ChangePhoneme(Y)
    ENDIF
    IF nextPh(isNotVowel) AND next2Ph(isNotVowel) THEN
      ChangePhoneme(Y)
    ENDIF
  ENDIF
  FMT(vowel/y_5)
endphoneme

phoneme Y
  vwl starttype #u endtype #u
  length 180
  FMT(vowel/u#)
endphoneme



phoneme e
  vwl starttype #e endtype #e
  length 200
  IF thisPh(isTranslationGiven) THEN
    // don't reduce the vowel if phonemes are explicitly given
  ELSE
    IF nextPh(isWordEnd) OR next2PhW(isNotVowel) THEN
      IF nextPh(isRhotic) OR nextPh(isNasal) OR nextPh(l) OR nextPh(L) THEN
        ChangePhoneme(&)
      ENDIF
    ENDIF

    IF thisPh(isFinalVowel) THEN
      ChangePhoneme(E)
    ENDIF
    IF nextPh(isNotVowel) AND next2Ph(isNotVowel) THEN
      ChangePhoneme(E)
    ENDIF
  ENDIF
  FMT(vowel/e_mid2)
endphoneme

phoneme E
  vwl starttype #e endtype #e
  length 200
  FMT(vowel/e_mid)
endphoneme

phoneme &
  vwl starttype #a endtype #a
  length 200
  FMT(vowel/ee_6)
endphoneme


phoneme W
  vwl starttype #@ endtype #@
  length 200
  FMT(vowel/y#)
endphoneme


phoneme a
  vwl starttype #a endtype #a
  length 200
  IF thisPh(isUnstressed) AND thisPh(isWordEnd) THEN
    FMT(vowel/a#_2)
  ENDIF
  FMT(vowel/aa_6)
endphoneme



phoneme u
  vwl starttype #u endtype #u
  length 180
  IF thisPh(isTranslationGiven) THEN
    // don't reduce the vowel if phonemes are explicitly given
  ELSE
    IF thisPh(isFinalVowel) THEN
      ChangePhoneme(U)
    ENDIF
    IF nextPh(isNotVowel) AND next2Ph(isNotVowel) THEN
      ChangePhoneme(U)
    ENDIF
  ENDIF
  FMT(vowel/u_2)
endphoneme

phoneme U
  vwl starttype #u endtype #u
  length 180
  FMT(vowel/uu_2)
endphoneme


phoneme @
  vwl starttype #@ endtype #@
  ipa ɯ
  length 180
  FMT(vowel/u#_7)
endphoneme



phoneme o
  vwl starttype #o endtype #o
  length 200
  IF thisPh(isTranslationGiven) THEN
    // don't reduce the vowel if phonemes are explicitly given
  ELSE
    IF thisPh(isFinalVowel) THEN
      ChangePhoneme(O)
    ENDIF
    IF nextPh(isNotVowel) AND next2Ph(isNotVowel) THEN
      ChangePhoneme(O)
    ENDIF
  ENDIF
  FMT(vowel/o_mid)
endphoneme

phoneme O
  vwl starttype #o endtype #o
  length 200
  FMT(vowel/oo)
endphoneme



phoneme : //  Lengthen previous vowel by "length"
  virtual
  length 140
endphoneme


phoneme c
  vls pal stp
  lengthmod 2
  Vowelin f1=0  f2=2700 200 500  f3=400 80 len=60
  Vowelout f1=0  f2=2700 300 500  f3=300 80
  IF nextPh(isPause2) THEN
    WAV(ustop/ki, 80)
  ENDIF
  WAV(ustop/ki)
endphoneme


phoneme J
  vcd pla stp
  lengthmod 5

  IF PreVoicing THEN
    FMT(dzh/xdz_pzd)
  ENDIF

  Vowelin f1=2  f2=2700 400 600  f3=300 80
  Vowelout f1=2 f2=2700 400 600  f3=300 80 colr=1

  IF KlattSynth THEN
    FMT(klatt/dz_pzd) addWav(ustop/ki, 60)
  ENDIF


  FMT(dzh/dz_pzd) addWav(ustop/ki, 60)
endphoneme


phoneme G
import_phoneme en/r/
lengthmod 7
endphoneme


phoneme R
  liquid trl
  lengthmod 6
  IF prevPhW(isVowel) AND nextPhW(isVowel) THEN
    ChangePhoneme(*)
  ENDIF
  CALL base1/R
endphoneme

