Blob Blame History Raw
// Irish Phonemes
//Please contact espeak.gaeilge@gmail.com
// Version 2.8  2013

// short vowels


phoneme @    //  Schwa, but always unstressed
  vwl   starttype #@  endtype #@
  unstressed
  length 110
  IF nextPh(i:) THEN
    length 80
    FMT(vwl_af/r@)
  ENDIF
  IF nextPh(I) THEN
    length 80
    FMT(vwl_af/r@)
  ENDIF
  IF nextPh(e:) THEN
    length 80
    FMT(vwl_af/r@)
  ENDIF
  IF prevPh(i:) THEN
    length 60
    FMT(vwl_af/r@)
  ENDIF
  
  FMT(vwl_af/@)
endphoneme


phoneme @/
  vwl  starttype #@  endtype #@
  length 130
  FMT(vowel/@)
endphoneme


phoneme a
  vwl starttype #a endtype #a
  length 165
  FMT(vowel/a_4)
endphoneme


phoneme a#
  vwl starttype #@ endtype #@
  ipa ɐ
  length 130
  ChangeIfStressed(a)
  FMT(vowel/a#_3)
endphoneme


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

phoneme E#
  vwl  starttype #@  endtype #@
  length 130
  ChangeIfStressed(E)
  ChangePhoneme(@/)
endphoneme


phoneme I
  vwl  starttype #i  endtype #i
  length 130
  FMT(vowel/ii_2)
endphoneme


phoneme i   // non syllabic i for end of words
  vwl  starttype #i  endtype #i
  unstressed
  ipa iU+032F
  length 45
  FMT(vowel/ii_7)
endphoneme


phoneme O
  vwl  starttype #a  endtype #@
  length 155
  FMT(vowel/V_4)
endphoneme

phoneme O#
  vwl starttype #@ endtype #@
  length 130
  ChangeIfStressed(O)
  ChangePhoneme(a#)
endphoneme


phoneme U
  vwl starttype #u endtype #u
  length 155
  FMT(vowel/uu)
endphoneme

phoneme U#
  vwl starttype #@ endtype #@
  length 130
  ChangeIfStressed(U)
  ChangePhoneme(@/)
endphoneme

phoneme u1
  vwl starttype #u endtype #u
  ipa uU+0306
  length 55
  FMT(vowel/u)
endphoneme

phoneme 0
  vwl  starttype #a   endtype #a
  length 195
  ipa A
  FMT(vowel/aa_8)
endphoneme

phoneme 0#
  vwl starttype #@ endtype #@
  length 130
  ChangeIfStressed(0)
  ChangePhoneme(a#)
endphoneme

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


// long vowels

phoneme A:
  vwl  starttype #a  endtype #a
  length 220
  FMT(vowel/aa_2)
endphoneme


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


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




phoneme u:
  vwl  starttype #u  endtype #u
  length 230
  FMT(vowel/u_bck)
endphoneme


// Diphthongs


phoneme @U
  vwl starttype #@ endtype #u
  length 260
  FMT(vdiph/@u_3)
endphoneme

phoneme i@
  vwl starttype #i endtype #@
  length 260
  FMT(vdiph2/i@)
endphoneme

phoneme u@
  vwl starttype #u endtype #@
  length 260
  FMT(vdiph2/u@)
endphoneme

phoneme aI
  vwl starttype #a endtype #i
  length 275
  FMT(vdiph/ai)
endphoneme

phoneme aI#
  vwl starttype #@ endtype #@
  length 130
  ChangeIfStressed(aI)
  ChangePhoneme(a#)
endphoneme

phoneme aU
  vwl starttype #a endtype #u
  length 300
  FMT(vdiph/au_4)
endphoneme

phoneme aU#
  vwl starttype #@ endtype #@
  length 130
  ChangeIfStressed(aU)
  FMT(vdiph/au_4)
endphoneme


phoneme ;     // linking j, used between (i) vowels and a following vowel
              // also to palatalize consonants
  liquid pzd
  lengthmod 0

  IF prevPh(#i) THEN
    ipa NULL   // linking after i vowel, don't show in ipa
  ENDIF

  NextVowelStarts
    VowelStart(j2/j2@)
    VowelStart(j2/j2a)
    VowelStart(j2/j2e)
    VowelStart(j2/j2i)
    VowelStart(j2/j2o)
    VowelStart(j2/j2u)
  EndSwitch

  IF prevPh(#i) THEN
    VowelEnding(j2/xj2, -40)
  ENDIF

  IF prevPh(isPause) THEN
    FMT(j2/_j2)
  ENDIF
endphoneme


phoneme eI
  import_phoneme en/eI
endphoneme