| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320 | 
							- 
 - // Phonemes for Malayalam
 - // This inherits from ph_hindi
 - 
 - 
 - phoneme @
 -   vwl  starttype #@  endtype #@
 -   length 130
 -   FMT(vowel/@_low)
 - endphoneme
 - 
 - 
 - phoneme y  // epenthetic vowel
 -   vwl starttype #@ endtype #@
 -   unstressed
 -   ipa ɨ
 -   length 80
 -   FMT(vowel/u#_4, 120)
 - endphoneme
 - 
 - 
 - phoneme a
 -   vwl starttype #a endtype #a
 -   ipa ɐ
 -   length 130
 - 
 -   IF thisPh(isStressed) OR thisPh(isFirstVowel) OR thisPh(isWordEnd) THEN
 -     FMT(vowel/a#_4)
 -   ELSE
 -     ChangeIfUnstressed(@)
 - 
 -     IF nextPh(m) AND nextPh(isWordEnd) THEN
 -       ChangePhoneme(@)
 -     ENDIF
 - 
 -     FMT(vowel/a#_3)
 -   ENDIF
 - endphoneme
 - 
 - 
 - phoneme a#    // don't reduce to [@]
 -   vwl starttype #a endtype #a
 -   ChangePhoneme(a)
 - endphoneme
 - 
 - 
 - phoneme a:
 -   vwl lng 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 lng starttype #e  endtype #e
 -   length 270
 -   FMT(vowel/e)
 - endphoneme
 - 
 - 
 - phoneme i
 -   vwl  starttype #i  endtype #i
 -   length 130
 -   FMT(vowel/i_6)
 - endphoneme
 - 
 - phoneme I
 -   vwl  starttype #i  endtype #i
 -   length 130
 -   FMT(vowel/ii)
 - endphoneme
 - 
 - 
 - phoneme i:
 -   vwl lng 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 lng starttype #o  endtype #o
 -   length 300
 -   FMT(vowel/o)
 - endphoneme
 - 
 - 
 - phoneme u
 -   vwl  starttype #u  endtype #u
 -   length 110
 -   FMT(vowel/u)
 - endphoneme
 - 
 - phoneme u:
 -   vwl lng starttype #u  endtype #u
 -   length 280
 -   FMT(vowel/u)
 - endphoneme
 - 
 - 
 - phoneme aI
 -   vwl lng starttype #a endtype #i
 -   length 280
 -   FMT(vdiph/ai)
 - endphoneme
 - 
 - phoneme aU
 -   vwl lng starttype #a endtype #u
 -   length 270
 -   FMT(vdiph/aau_3)
 - endphoneme
 - 
 - 
 - // ?? This is standard [v].  Should be it [v] without the fricative noise?
 - phoneme v
 -   import_phoneme base1/v
 - endphoneme
 - 
 - phoneme r
 -   import_phoneme base1/**
 - endphoneme
 - 
 - phoneme R
 -   import_phoneme base1/R2
 - endphoneme
 - 
 - phoneme d2   // 'rr' sounds like English 'd'
 -   import_phoneme base1/d
 - endphoneme
 - 
 - 
 - // Aspirated voice stops, sound like aspirated unvoiced stops ?
 - 
 - phoneme b#
 -   vls blb stp prevoice
 -   lengthmod 2
 -   voicingswitch b
 -   Vowelin  f1=0  f2=1000 -50 -100  f3=-200 80
 -   Vowelout f1=0  f2=1000 -500 -350  f3=-300 80 rms=30
 -   
 -   IF PreVoicing THEN
 -     IF prevPhW(isVowel) THEN
 -       FMT(b/xb)
 -     ELSE
 -       FMT(voc/murmur1)
 -     ENDIF
 -   ENDIF
 - 
 -   IF nextPh(isPause2) THEN
 -     WAV(ustop/p_)
 -   ENDIF
 -   IF nextPh(l) THEN
 -     WAV(ustop/pl)
 -   ENDIF
 -   WAV(ustop/p_asp)
 - endphoneme
 - 
 - 
 - phoneme d#
 -   vls dnt stp prevoice
 -   lengthmod 2
 -   voicingswitch d
 -   Vowelin f1=0  f2=1500 -300 300  f3=-100 80  amp=16
 -   Vowelout f1=0 f2=1500 -300 250  f3=-100 80  rms=20
 - 
 -   IF PreVoicing THEN
 -     IF prevPhW(isVowel) THEN
 -       FMT(d/xd)
 -     ELSE
 -       FMT(voc/murmur1)
 -     ENDIF
 -   ENDIF
 - 
 -   IF nextPh(isPause2) THEN
 -     WAV(ustop/t_dnt, 35)
 -   ENDIF
 -   WAV(ustop/t_dnt, 50)
 - endphoneme
 - 
 - 
 - phoneme t.#
 -   vls rfx stp
 -   lengthmod 2
 -   ipa ʈU+02B0
 -   voicingswitch d.#
 -   Vowelin f1=0  f2=1800 -300 300  f3=-200 80
 -   Vowelout f1=0 f2=1800 -300 250  f3=-400 80  rms=20 colr=2
 -   
 -   IF nextPhW(t.#) THEN
 -     ChangePhoneme(t.)
 -   ENDIF
 -   WAV(ustop/th_rfx2, 80)
 - endphoneme
 - 
 - 
 - phoneme d.#
 -   vls rfx stp prevoice
 -   lengthmod 2
 -   ipa ʈU+02B0
 -   Vowelin f1=0  f2=1800 -300 300  f3=-200 80
 -   Vowelout f1=0 f2=1800 -300 250  f3=-400 80  rms=20 colr=2
 - 
 -   IF PreVoicing THEN
 -     IF prevPhW(isVowel) THEN
 -       FMT(d/xdr)
 -     ELSE
 -       FMT(voc/murmur1)
 -     ENDIF
 -   ENDIF
 - 
 -   voicingswitch d.#
 -   WAV(ustop/th_rfx2, 80)
 - endphoneme
 - 
 - 
 - phoneme J#
 -   vls pal afr sib pzd prevoice
 -   voicingswitch c#
 -   lengthmod 2
 -   Vowelin f1=0  f2=2700 400 600  f3=300 80 rate len=70
 - 
 -   IF PreVoicing THEN
 -     IF prevPhW(isVowel) THEN
 -       FMT(dzh/xdz_pzd)
 -     ELSE
 -       FMT(voc/murmur1)
 -     ENDIF
 -   ENDIF
 - 
 -   IF nextPh(isPause2) THEN
 -     WAV(ustop/ts_pzd)
 -   ENDIF
 -   WAV(ustop/ts_pzd)
 - endphoneme
 - 
 - 
 - phoneme g#
 -   vls vel stp prevoice
 -   lengthmod 2
 -   Vowelin f1=1  f2=1400 -100 100  f3=-150 80
 -   Vowelout f1=0 f2=2300 300 400  f3=-150 80  rms=20
 - 
 -   IF PreVoicing THEN
 -     IF prevPhW(isVowel) THEN
 -       FMT(g/xg)
 -     ELSE
 -       FMT(voc/murmur1)
 -     ENDIF
 -   ENDIF
 - 
 -   
 -   IF nextPh(isPause2) THEN
 -     WAV(ustop/k_asp, 40)
 -   ENDIF
 -   IF nextPhW(#e) OR nextPhW(#i) THEN
 -     WAV(ustop/k_asp_e, 40)
 -   ELIF nextPhW(#o) OR nextPhW(#u) THEN
 -     WAV(ustop/k_asp_a, 25)
 -   ELSE
 -     WAV(ustop/k_asp_a, 30)
 -   ENDIF
 - endphoneme
 - 
 - 
 - 
 - // suggested by Prasenjit Sen, but perhaps not needed?
 - // ml_rules changes [p], [t], [k] to [b], [d], [g] in non-initial
 - // positions
 - 
 - phoneme p
 -   import_phoneme consonants/p-
 -   voicingswitch b
 - 
 -   IF thisPh(isWordStart) THEN
 -       CALL base1/p
 -   ELIF thisPh(isWordEnd) AND NOT thisPh(isFirstVowel) THEN
 -       ChangePhoneme(b)
 -   ENDIF
 - endphoneme
 - 
 - 
 - phoneme t 
 -   import_phoneme base1/t[
 -   voicingswitch d
 - 
 -   IF thisPh(isWordStart) THEN
 -       CALL base1/t
 -   ELIF thisPh(isWordEnd) AND NOT thisPh(isFirstVowel) THEN
 -       ChangePhoneme(d)
 -   ENDIF
 - endphoneme
 - 
 - 
 - phoneme k
 -   import_phoneme consonants/k-
 -   voicingswitch g
 - 
 -   IF thisPh(isWordStart) THEN
 -       CALL base1/k
 -   ELIF thisPh(isWordEnd) AND NOT thisPh(isFirstVowel) THEN
 -       ChangePhoneme(g)
 -   ENDIF
 - endphoneme
 - 
 
 
  |