blob: 0de2a0087e77a07078a7d0586ad9068e8355c6e8 [file] [log] [blame]
//====================================================
// kankani
//====================================================
phoneme :0
virtual
length 25
endphoneme
phoneme :1
virtual
length 50
endphoneme
phoneme : // Lengthen the previous vowel by "length"
virtual
length 100
endphoneme
phoneme @
vwl flag1 starttype #@ endtype #@
length 130
ChangeIfDiminished(@-)
IF nextPh(H) OR prevPh(H) THEN
FMT(vowel/@_low)
ENDIF
IF nextPh(j) THEN
FMT(vowel/V_3)
ENDIF
FMT(vowel/@_bck)
endphoneme
phoneme V
vwl flag1 starttype #@ endtype #@
length 140
IF thisPh(isWordStart) THEN
FMT(vowel/V_3)
RETURN
ENDIF
IF thisPh(isNotStressed) THEN
length 130
IF thisPh(isWordEnd) AND NOT thisPh(isFirstVowel) THEN
ChangePhoneme(NULL)
ENDIF
IF prevPh(H) THEN
ChangePhoneme(@)
ENDIF
IF prev2PhW(isVowel) AND NOT nextVowel(isFlag1) THEN
IF thisPh(isFinalVowel) AND nextPhW(isNotVowel) THEN
// don't delete schwa before a word-final consonant
ELSE
ChangePhoneme(NULL)
ENDIF
ENDIF
IF prevPh(isPalatal) AND NOT nextPh(H) THEN
ChangePhoneme(@3)
ELSEIF prevPh(r) THEN
ChangePhoneme(@2)
ELSE
ChangePhoneme(@)
ENDIF
ENDIF
IF nextPh(H) OR prevPh(H) THEN
FMT(vowel/@_low)
ENDIF
IF prevPh(w) THEN
FMT(vowel/V_4)
ENDIF
FMT(vowel/V_3)
endphoneme
phoneme @2
vwl flag1 starttype #@ endtype #@
length 130
FMT(vowel/@_low)
endphoneme
phoneme @3
vwl flag1 starttype #@ endtype #@
length 130
ChangeIfDiminished(@-)
FMT(vowel/@_3)
endphoneme
phoneme i:
vwl lng starttype #i endtype #i
length 250
IF thisPh(isUnstressed) THEN
ChangePhoneme(i)
ENDIF
IfNextVowelAppend(;)
FMT(vowel/i_fnt)
endphoneme
phoneme i // as [i:] but not marked as 'long'
vwl starttype #i endtype #i
length 230
IfNextVowelAppend(;)
FMT(vowel/ii_6)
endphoneme
phoneme I
vwl starttype #i endtype #i
length 150
IfNextVowelAppend(;)
FMT(vowel/ii_3)
endphoneme
phoneme e:
vwl lng starttype #e endtype #e
length 240
FMT(vowel/e_2)
endphoneme
phoneme e
vwl starttype #e endtype #e
length 165
FMT(vowel/e_2)
endphoneme
phoneme E:
vwl lng starttype #e endtype #e
length 230
FMT(vdiph/ee-e)
endphoneme
phoneme E
vwl starttype #e endtype #e
length 175
FMT(vowel/e_mid)
endphoneme
phoneme &:
vwl lng starttype #a endtype #a
length 230
FMT(vowel/&)
endphoneme
phoneme a:
vwl lng starttype #a endtype #a
length 220
IF nextPhW(j) THEN
FMT(vowel/a_5)
ENDIF
FMT(vowel/aa_9)
endphoneme
phoneme a
vwl lng starttype #a endtype #a
length 165
FMT(vowel/a#_3)
endphoneme
phoneme o:
vwl lng starttype #o endtype #o
length 240
FMT(vowel/o_2)
endphoneme
phoneme o
vwl starttype #o endtype #o
length 165
FMT(vowel/o)
endphoneme
phoneme O:
vwl lng starttype #o endtype #o
length 225
FMT(vowel/oo_4)
endphoneme
phoneme O
vwl starttype #o endtype #o
length 165
FMT(vowel/0)
endphoneme
phoneme U
vwl starttype #u endtype #u
length 165
FMT(vowel/uu_bck)
endphoneme
phoneme u:
vwl lng starttype #u endtype #u
length 250
FMT(vowel/u_bck)
endphoneme
// Nasal vowels
//=============
phoneme i~
vwl lng starttype #i endtype #i
length 220
FMT(vnasal/i_n2)
endphoneme
phoneme I~
vwl lng starttype #i endtype #i
length 170
FMT(vnasal/ii_n)
endphoneme
phoneme e~
vwl lng starttype #e endtype #e
length 220
FMT(vnasal/e_n)
endphoneme
phoneme E~
vwl lng starttype #e endtype #e
length 220
FMT(vnasal/ee_n2)
endphoneme
phoneme a~
vwl lng starttype #a endtype #a
length 240
FMT(vnasal/a_n)
endphoneme
phoneme V~
vwl lng starttype #@ endtype #@
length 220
FMT(vnasal/V_n)
endphoneme
phoneme O~
vwl lng starttype #o endtype #o
length 220
FMT(vnasal/oo_n2)
endphoneme
phoneme o~
vwl lng starttype #o endtype #o
length 220
FMT(vnasal/o_n)
endphoneme
phoneme U~
vwl starttype #u endtype #u
length 170
FMT(vnasal/u_n)
endphoneme
phoneme u~
vwl lng starttype #u endtype #u
length 220
FMT(vnasal/u_n)
endphoneme
// Diphthongs
//===========
phoneme aI
vwl lng starttype #@ endtype #i
length 240
lng
FMT(vdiph/&i)
endphoneme
phoneme aU
vwl lng starttype #a endtype #u
length 240
lng
FMT(vdiph/aau_3)
endphoneme
// CONSONANTS
//===========
phoneme v // approximant, not fricative
import_phoneme base1/v#
voicingswitch f
endphoneme
phoneme w#
liquid
lengthmod 7
FMT(w/w2)
endphoneme
phoneme H // use for full "h"
import_phoneme base1/h
endphoneme
// bilabial plosives
//==================
phoneme p
import_phoneme consonants/p-
endphoneme
phoneme p#
import_phoneme consonants/ph
endphoneme
phoneme b // this is [b]
import_phoneme base1/b
endphoneme
phoneme b#
vcd blb stp
lengthmod 5
voicingswitch p#
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
FMT(b/xb)
ENDIF
FMT( b/b@2) addWav(ustop/p_asp, 70)
endphoneme
// dental plosives
//==================
phoneme t // dental variant of /t/
import_phoneme base1/t[
voicingswitch d
endphoneme
phoneme t# // dental variant of /t/
vls dnt stp
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 nextPh(isPause2) THEN
WAV(ustop/t_dnt, 35)
ENDIF
WAV(ustop/t_dnt, 50)
endphoneme
phoneme d // dental variant of /d/
import_phoneme base1/d[
voicingswitch t
endphoneme
phoneme d#
vcd dnt stp
lengthmod 5
voicingswitch t#
Vowelin f1=0 f2=1500 -300 300 f3=-100 80
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
IF PreVoicing THEN
FMT(d/xd)
ENDIF
FMT(d/xd3) addWav(ustop/t_dnt, 40)
endphoneme
// retroflex plosives
//===================
phoneme t.
vls rfx stp
lengthmod 2
ipa ʈ
voicingswitch d.
Vowelin f1=0 f2=1800 -300 300 f3=-400 80
Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2
WAV(ustop/t_short)
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.
vcd rfx stp
lengthmod 5
voicingswitch t.
ipa ɖ
Vowelin f1=1 f2=1800 -300 300 f3=-400 80
Vowelout f1=1 f2=1800 -300 300 f3=-400 80 colr=2
IF PreVoicing THEN
FMT(d/xdr)
ENDIF
IF nextPh(isPause2) THEN
FMT(d/d_) addWav(x/d_)
ENDIF
FMT(d/dr) addWav(x/d)
endphoneme
phoneme d.#
vcd rfx stp
lengthmod 5
ipa ɖU+02B0
voicingswitch t.#
Vowelin f1=1 f2=1800 -300 300 f3=-400 80
Vowelout f1=1 f2=1800 -300 300 f3=-400 80 colr=2
IF PreVoicing THEN
FMT(d/xdr)
ENDIF
FMT(d/dr) addWav(ustop/t)
// FMT(d/dr) addWav(ustop/th_rfx)
endphoneme
// palatal plosives
//=================
// also try [tS] and [dZ]
phoneme c
vls pla afr sib
voicingswitch dZ
lengthmod 2
Vowelin f1=0 f2=2300 200 400 f3=-100 80
IF nextPh(isPause2) THEN
WAV(ustop/tsh_)
ENDIF
WAV(ustop/tsh_unasp)
endphoneme
phoneme c#
CALL base1/tS;
ipa cU+02B0
endphoneme
phoneme J
import_phoneme base1/J
endphoneme
phoneme J#
vcd pal afr sib
lengthmod 5
voicingswitch c#
Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
Vowelout f1=0 f2=2700 400 600 f3=300 80 colr=1
IF PreVoicing THEN
FMT(dzh/xdz_pzd)
ENDIF
FMT(dzh/xdz_pzd) addWav(ustop/ts_pzd)
endphoneme
// velar plosives
//==================
phoneme k
import_phoneme consonants/k-
voicingswitch g
endphoneme
phoneme k#
import_phoneme consonants/k#
voicingswitch g#
endphoneme
phoneme g
import_phoneme base1/g
voicingswitch k
endphoneme
phoneme g#
vcd dnt stp
lengthmod 5
voicingswitch k#
Vowelin f1=1 f2=2300 200 300 f3=-150 80 rms=20
Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20
IF PreVoicing THEN
FMT(g2/xg)
ENDIF
IF nextPh(isPause2) THEN
FMT(g2/xg) addWav(ustop/k_asp, 35)
ENDIF
FMT(g2/xg) addWav(ustop/k_asp, 50)
endphoneme
//================
phoneme #X2 // click, use for indicating combining long vowels
vls alv frc sib
lengthmod 3
WAV(ustop/percus02, 60)
endphoneme
phoneme r
liquid rhotic
lengthmod 3
IF thisPh(isWordEnd) THEN
CALL base1/r/
ELSE
IF prevPhW(isVowel) THEN
IF nextPhW(isNotVowel) THEN
IF nextPhW(v) THEN
ChangePhoneme(**) // test for lang=ta
ENDIF
IF nextPhW(isUStop) OR nextPhW(isVStop) THEN
ChangePhoneme(*)
ENDIF
ENDIF
IF nextPhW(V) THEN // [V] may be removed by ChangePhoneme(NULL)
IF next2PhW(isUStop) OR next2PhW(isVStop) THEN
ChangePhoneme(*)
ENDIF
ELSE
IF nextPhW(isVowel) THEN
ChangePhoneme(*)
ENDIF
ENDIF
ENDIF
CALL base1/r
ENDIF
ipa ɾ
endphoneme