| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 | 
							- 
 - // Phonemes for Tamil
 - // This inherits from ph_hindi
 - 
 - 
 - phoneme @
 -   vwl  starttype #@  endtype #@
 -   length 130
 -   FMT(vowel/V_2)
 - endphoneme
 - 
 - phoneme a
 -   vwl  starttype #a  endtype #a
 -   length 130
 -   ChangeIfNotStressed(V)
 -   FMT(vowel/a)
 - endphoneme
 - 
 - phoneme V
 -   vwl  starttype #@  endtype #@
 -   ipa ʌ
 -   length 130
 -   IF nextPh(isWordEnd) AND nextPh(m) THEN
 -     ChangePhoneme(@)
 -   ENDIF
 -   FMT(vowel/V_3)
 - endphoneme
 - 
 - phoneme V#    // omit if the next phoneme is a vowel
 -   vwl  starttype #@  endtype #@
 -   length 130
 -   IF nextPhW(isVowel) OR nextPhW(#) THEN
 -     ChangePhoneme(NULL)
 -   ENDIF
 -   ChangePhoneme(V)
 - endphoneme
 - 
 - phoneme a:
 -   vwl  starttype #a  endtype #a
 -   length 300
 -   FMT(vowel/a_5)
 - endphoneme
 - 
 - 
 - phoneme e
 -   vwl  starttype #e  endtype #e
 -   length 130
 -   FMT(vowel/e)
 - endphoneme
 - 
 - 
 - phoneme e:
 -   vwl  starttype #e  endtype #e
 -   length 250
 -   FMT(vowel/e)
 - endphoneme
 - 
 - 
 - phoneme i
 -   vwl  starttype #i  endtype #i
 -   length 130
 -   IF thisPh(isWordEnd) AND thisPh(isNotStressed) THEN
 -     FMT(vowel/ii_5)
 -   ENDIF
 -   FMT(vowel/i_6)
 - endphoneme
 - 
 - 
 - phoneme i:
 -   vwl  starttype #i  endtype #i
 -   length 270
 -   FMT(vowel/i)
 - endphoneme
 - 
 - 
 - 
 - phoneme o
 -   vwl  starttype #o  endtype #o
 -   length 130
 -   FMT(vowel/o)
 - endphoneme
 - 
 - 
 - phoneme o:
 -   vwl  starttype #o  endtype #o
 -   length 300
 -   FMT(vowel/o)
 - endphoneme
 - 
 - 
 - phoneme u
 -   vwl  starttype #u  endtype #u
 -   length 110
 -   ChangeIfNotStressed(U)
 -   FMT(vowel/u_6)
 - endphoneme
 - 
 - phoneme u2   // as [u] but don't reduce
 -   vwl  starttype #u  endtype #u
 -   length 110
 -   FMT(vowel/u_6)
 - endphoneme
 - 
 - phoneme U
 -   vwl  starttype #u  endtype #u
 -   ipa ʉ
 -   length 110
 -   FMT(vowel/u#_3)
 - endphoneme
 - 
 - phoneme u:
 -   vwl  starttype #u  endtype #u
 -   length 280
 -   IF prevPhW(isVel) THEN
 -   ELSE
 -     ChangeIfNotStressed(U:)
 -   ENDIF
 -   FMT(vowel/u_6)
 - endphoneme
 - 
 - phoneme U:
 -   vwl  starttype #u  endtype #u
 -   ipa ʉ
 -   length 270
 -   FMT(vowel/u#_3)
 - endphoneme
 - 
 - 
 - phoneme aI
 -   vwl  starttype #a  endtype #i
 -   length 280
 -   FMT(vdiph/ai_8)
 - endphoneme
 - 
 - phoneme aU
 -   vwl  starttype #a  endtype #u
 -   length 270
 -   FMT(vdiph/au)
 - endphoneme
 - 
 - 
 - 
 - phoneme t
 -   import_phoneme base2/t    // dental
 - endphoneme
 - 
 - // ?? This is standard [v].  Should be it [v] without the fricative noise?
 - phoneme v
 -   import_phoneme base1/v
 - endphoneme
 - 
 - phoneme : //  Lengthen previous vowel by "length"
 -   virtual
 -   length 50
 - endphoneme
 - 
 - phoneme #    // a NULL phoneme for 'virama'
 -   virtual
 -   ChangePhoneme(NULL)
 - endphoneme
 - 
 - phoneme z.
 -   CALL base1/z.
 -   ipa U+027B
 - endphoneme
 - 
 - phoneme r
 -   import_phoneme base1/r
 - endphoneme
 
 
  |