
//====================================================
//  Estonian
//====================================================

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

phoneme a
  vwl starttype #a endtype #a
  length 170
//  ChangeIfUnstressed(A)
  FMT(vowel/aa_9)
endphoneme

phoneme a:
  vwl starttype #a endtype #a
  length 340
  FMT(vowel/aa)
endphoneme

//phoneme A
//  vwl starttype #a endtype #a
//  length 170
//  FMT(vowel/a#_2)
//endphoneme

phoneme A1
  vwl starttype #a endtype #a
  length 255
  FMT(vowel/aa_8)
endphoneme

phoneme e
  vwl starttype #e endtype #e
  length 160
//  ChangeIfUnstressed(E)
  FMT(vowel/e#)
endphoneme

phoneme e:
  vwl starttype #e endtype #e
  length 320
  FMT(vowel/e_7)
endphoneme

//phoneme E
//  vwl starttype #e endtype #e
//  length 160
//  FMT(vowel/ee_4)
//endphoneme

phoneme E1
  vwl starttype #e endtype #e
  length 240
  FMT(vowel/ee#_2)
endphoneme

phoneme i
  vwl starttype #i endtype #i
  length 140
//  ChangeIfUnstressed(I)
  FMT(vowel/i_8)
endphoneme

phoneme i:
  vwl starttype #i endtype #i
  length 280
  FMT(vowel/i_7)
endphoneme

//phoneme I
//  vwl starttype #i endtype #i
//  length 140
//  FMT(vowel/i_3)
//endphoneme

phoneme I1
  vwl starttype #i endtype #i
  length 210
  FMT(vowel/ii_3)
endphoneme

phoneme i1
  vwl starttype #i endtype #i
  length 30
  FMT(vowel/i#_7)
endphoneme

phoneme o
  vwl starttype #o endtype #o
  length 160
//  ChangeIfUnstressed(O)
  FMT(vowel/o_mid)
endphoneme

phoneme o:
  vwl starttype #o endtype #o
  length 320
  FMT(vowel/o)
endphoneme

//phoneme O
//  vwl starttype #o endtype #o
//  length 150
//  FMT(vowel/o_mid)
//endphoneme

phoneme O1
  vwl starttype #o endtype #o
  length 225
  FMT(vowel/oo_4)
endphoneme

phoneme u
  vwl starttype #u endtype #u
  length 145
//  ChangeIfUnstressed(U)
  FMT(vowel/u_bck2)
endphoneme

phoneme u:    // TEST
  vwl starttype #u endtype #u
  length 290
  FMT(vowel/u_bck3)
endphoneme

//phoneme U    // TEST
//  vwl starttype #u endtype #u
//  length 145
//  FMT(vowel/u_5)
//endphoneme

phoneme U1    // TEST
  vwl starttype #u endtype #u
  length 218
  FMT(vowel/u_5)
endphoneme

// Ãµ
phoneme 8
  vwl starttype #@ endtype #@
  length 165
  FMT(vowel/8_7)
endphoneme

phoneme 8:
  vwl starttype #@ endtype #@
  length 330
  FMT(vowel/8_4)
endphoneme

// Ã¤
phoneme &
  vwl starttype #a endtype #a
  length 175
  FMT(vowel/&)
endphoneme

phoneme &:
  vwl starttype #a endtype #a
  length 350
  FMT(vowel/&)
endphoneme

// Ã¶
phoneme Y
  vwl starttype #@ endtype #@
  length 165
  FMT(vowel/y#)
endphoneme

phoneme Y:
  vwl starttype #@ endtype #@
  length 330
  FMT(vowel/y#)
endphoneme

// Ã¼
phoneme y
  vwl starttype #u endtype #u
  length 145
  FMT(vowel/y)
endphoneme

phoneme y:
  vwl starttype #u endtype #u
  length 290
  FMT(vowel/y)
endphoneme



// Diphthongs
//===========


phoneme &i
  vwl starttype #a endtype #i
  length 315
  lng
  FMT(vdiph/&i)
endphoneme

phoneme Yi
  vwl starttype #@ endtype #i
  length 305
  lng
  FMT(vdiph/@i)
endphoneme

phoneme yi
  vwl starttype #u endtype #i
  length 285
  lng
  FMT(vdiph/yi)
endphoneme


// phoneme oe

// phoneme ue

// phoneme qe

// phoneme xe

// phoneme ce

// phoneme qa

// phoneme ca


//phoneme 8u
//  vwl starttype #@ endtype #u
//  length 310
//  lng
//  FMT(vdiph/8u)
//endphoneme

// phoneme xu




// CONSONANTS
//===========


phoneme v        // approximant, not fricative
  vcd lbd frc
  lengthmod 6
  voicingswitch f
  Vowelin  f1=0  f2=1000 -300 -200  f3=-300 100
  Vowelout f1=0  f2=1000 -500 -300  f3=-300 60  len=50
  IF nextPh(isPause2) THEN
    FMT(voc/v_)
  ENDIF
  FMT(voc/v)
endphoneme


phoneme t        // dental variant of /t/
  vls dnt stp lengthenstop
  voicingswitch d
  lengthmod 5
  Vowelin f1=1  f2=1500 -250 250  f3=-100 80  amp=20
  Vowelout f1=0 f2=1500 -300 250  f3=-100 80  rms=20

  IF nextPh(isPause2) THEN
    WAV(ustop/t_dnt, 60)
  ENDIF
  WAV(ustop/t_hi, 80)
endphoneme


phoneme d
  vcd dnt stp
  voicingswitch t
  lengthmod 5
  Vowelin f1=2  f2=1700 -100 200  f3=0 80
  Vowelout f1=2 f2=1700 -100 200  f3=0 80 rms=20

  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_dnt, 60)
  ENDIF

  FMT(d/d) addWav(x/d_dnt, 60)
endphoneme



phoneme p
  import_phoneme base2/p
  voicingswitch b
endphoneme


phoneme r   // used for [r] when not preceding a vowel
  liquid
  lengthmod 2
  IF nextPh(n) THEN
    FMT(r3/r_n) addWav(r3/rx)
  ENDIF
  FMT(r3/r_) addWav(r3/rx)
endphoneme

phoneme k          // tasasemad klõklsud
  vls vel stp
  lengthmod 5
  voicingswitch g
  Vowelin f1=0  f2=2300 200 400  f3=-100 80
  Vowelout f1=0 f2=2300 300 400  f3=-100 80  rms=20
  IF nextPh(isPause) THEN
    WAV(ustop/k_unasp)
  ENDIF
  IF nextPh(#i) OR nextPh(l^) THEN
    WAV(ustop/ki, 40)
  ENDIF
  IF nextPh(l) THEN
    WAV(ustop/kl, 40)
  ENDIF
  IF nextPh(r) THEN
    WAV(ustop/kr, 40)
  ENDIF
  IF nextPh(k) THEN
    WAV(ustop/k_unasp, 10)
  ENDIF
  WAV(ustop/k_unasp, 20)   // weaker
endphoneme


phoneme s2  // second part of long [s]
  import_phoneme consonants/s2
endphoneme


phoneme h
  vls glt apr
  lengthmod 3

  IF nextPh(#@) THEN
    WAV(h/h@)
  ELIF nextPh(#a) THEN
    WAV(h/ha)
  ELIF nextPh(#e) THEN
    WAV(h/he)
  ELIF nextPh(#i) THEN
    WAV(h/hi)
  ELIF nextPh(#o) THEN
    WAV(h/ho)
  ELIF nextPh(#u) THEN
    WAV(h/hu)
  ENDIF
  WAV(h/h_, 70)  // no vowel following
endphoneme


// Palatalized versions of consonants

phoneme s^
  vls alv frc sib pzd
  voicingswitch z
  lengthmod 3
  Vowelin  f1=0  f2=1700 -300 300  f3=-100 80
  Vowelout f1=0  f2=1700 -300 250  f3=-100 80  rms=20

  WAV(ufric/s_pal)
endphoneme

phoneme t^
  vls pal stp pzd
  lengthmod 5
  voicingswitch d^
  Vowelin f1=0  f2=2700 400 600  f3=300 80 rate len=70
  Vowelout f1=1  f2=2700 400 600  f3=200 70 len=50 colr=1
  IF nextPh(isPause2) THEN
    WAV(ustop/t_pzd, 60)
  ENDIF
  WAV(ustop/t_hi, 80)
endphoneme

phoneme d^
  vcd alv stp pzd
  lengthmod 5
  voicingswitch t^
  Vowelin f1=2  f2=2700 400 600  f3=200 80 rate len=80
  Vowelout f1=2 f2=2700 400 600  f3=200 80 rate len=100 colr=1

  IF PreVoicing THEN
    FMT(d/xd_pzd)
  ENDIF

  IF nextPh(isPause2) THEN
    FMT(d/d_) addWav(x/d_pzd, 40)
  ELIF nextPh(isRhotic) THEN
    FMT(d/dr) addWav(x/d_pzd, 80)
  ENDIF

  FMT(d/d) addWav(x/d_pzd, 80)
endphoneme
