| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836 |  
//====================================================
//  Vietnamese Phonemes
//====================================================
phoneme 1   //  ngang tone: level
  stress
  Tone(30, 28, envelope/p_level, NULL) // 28 29
endphoneme
phoneme 2   //  huyền tone: low falling
  stress
  Tone(20, 8, envelope/p_fall, NULL) //20 8
endphoneme
phoneme 3   //  sắc Tone(rising
  stress
  Tone(20, 50, envelope/p_rise, NULL) // 30 60
endphoneme
phoneme 4   //  hỏi Tone(curve (dipping rising)
  stress
  Tone(10, 31, envelope/p_fallrise, NULL) //33 31
endphoneme
phoneme 5   //  ngã tone: broken (creaking rising)
  stress
  Tone(34, 60,envelope/p_214, envelope/vi_5amp) // 28,58 20 80
endphoneme
phoneme 6   //  nặng Tone(drop  (constricted)
  stress
  //length 150 // ignore because it make too short sound 75  // reduce the length of the vowel
  Tone(34, 10, envelope/p_512, envelope/vi_6amp) //40 20
endphoneme
phoneme 7   //  Tone(1 (ngang) at end of clause
  stress
  Tone(30,  28, envelope/p_fall, NULL) //40 20
endphoneme
// Vowels
//=======
phoneme a
  vwl starttype #@ endtype #@
  	IF nextPhW(p) THEN
	length 142
  ELIF nextPhW(t[) THEN
	length 126
  ELIF nextPhW(c) THEN
	length 136
  ELIF nextPhW(m) THEN
	length 155
  ELIF nextPhW(n) THEN
	length 185
  ELIF nextPhW(N) THEN
	length 173
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
	length 240
  ELSE
	length 180
  ENDIF
	IF nextPh(N) OR nextPh(c) THEN
	FMT(vnasal/a_n)
	ELSE
	FMT(vietnam/a_2)  //a_4)
	
	ENDIF
endphoneme
phoneme a:
  vwl starttype #a endtype #a
  IF nextPhW(p) THEN
	length 142
  ELIF nextPhW(t[) THEN
	length 126
  ELIF nextPhW(c) THEN
	length 136
  ELIF nextPhW(m) THEN
	length 155
  ELIF nextPhW(n) THEN
	length 185
  ELIF nextPhW(N) THEN
	length 173
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 300
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
	length 240
  ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
     length 333
  ELSE
	length 180
  ENDIF
    //FMT(vowel/a_8)
	FMT(vietnam/aa)
endphoneme
phoneme E
  vwl starttype #e endtype #e
  
  IF nextPhW(p) THEN
	length 143
  ELIF nextPhW(t[) THEN
	length 107
  ELIF nextPhW(c) THEN
	length 141
  ELIF nextPhW(m) THEN
	length 128
  ELIF nextPhW(n) THEN
	length 160
  ELIF nextPhW(N) THEN
	length 187
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 300
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
	length 240
  ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
     length 352
  ELSE
	length 180
  ENDIF
  //FMT(vowel/e_e)   //ee_3)
  FMT(vietnam/e_e_2)
endphoneme
phoneme e
  vwl starttype #e endtype #e
  IF nextPhW(p) THEN
	length 114
  ELIF nextPhW(t[) THEN
	length 126
  ELIF nextPhW(c) THEN
	length 140
  ELIF nextPhW(n^) THEN
	length 120
  ELIF nextPhW(m) THEN
	length 148
  ELIF nextPhW(n) THEN
	length 163
  ELIF nextPhW(N) THEN
	length 115
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 300
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
	length 240
  ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
     length 324
  ELSE
	length 180
  ENDIF
  IF nextPh(n^) THEN
	FMT(vowel/e)
  ELSE
	FMT(vietnam/e, 150)
  ENDIF	
endphoneme
phoneme e-
   vwl starttype #e endtype #a
   length 140
   FMT(vietnam/e_short_1)
   //FMT(vdiph/aai_3)
endphoneme
phoneme i
  vwl  starttype #i  endtype #i
    IfNextVowelAppend(;)
  IF prevPhW(w) THEN
    VowelStart(w/wi)
  ENDIF
  IF nextPhW(p) THEN
	length 131
  ELIF nextPhW(t[) THEN
	length 113
  ELIF nextPhW(c) OR nextPhW(n^) THEN
	length 72
  ELIF nextPhW(m) THEN
	length 120
  ELIF nextPhW(n) THEN
	length 128
  ELIF nextPhW(N) THEN
	length 97
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 310
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
	length 240
  ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
     length 363
  ELSE
	length 180
  ENDIF
  IF nextPh(n^) OR nextPh(c) THEN
  //FMT(vnasal/ii_n)
  FMT(vietnam/i)
  ELSE
	//FMT(vowel/i_4)
	FMT(vietnam/i)
ENDIF
endphoneme
phoneme O
  vwl starttype #o endtype #o
    IF nextPhW(p) THEN
	length 129
  ELIF nextPhW(t[) THEN
	length 125
  ELIF nextPhW(c) THEN
	length 80
  ELIF nextPhW(m) THEN
	length 133
  ELIF nextPhW(n) THEN
	length 158
  ELIF nextPhW(N) THEN
	length 102
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 300
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
	length 240
  ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
     length 331
  ELSE
	length 180
  ENDIF
    //FMT(vdiph2/o_oo) //vowel/oo)
	FMT(vietnam/oo)
endphoneme
phoneme O+
  vwl starttype #o endtype #o
    IF nextPh(kh) OR nextPh(N) THEN 
	length 80
	ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 180
	ENDIF
    FMT(vowel/o) //vowel/oo)
endphoneme
phoneme o
  vwl starttype #o endtype #o
  IF nextPhW(p) THEN
	length 140
  ELIF nextPhW(t[) THEN
	length 113
  ELIF nextPhW(c) THEN
	length 88
  ELIF nextPhW(m) THEN
	length 134
  ELIF nextPhW(n) THEN
	length 168
  ELIF nextPhW(N) THEN
	length 99
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 310
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
	length 240
  ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
     length 363
  ELSE
	length 180
  ENDIF
  //FMT(vowel/o)  // o_2)
  FMT(vietnam/o)
endphoneme
phoneme u
  vwl starttype #u endtype #u
  
  IF nextPhW(p) THEN
	length 110
  ELIF nextPhW(t[) THEN
	length 94
  ELIF nextPhW(c) THEN
	length 83
  ELIF nextPhW(m) THEN
	length 141
  ELIF nextPhW(n) THEN
	length 177
  ELIF nextPhW(N) THEN
	length 80
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 300
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
	length 240
  ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
     length 333
  ELSE
	length 180
  ENDIF
  //FMT(vnasal/u_n) //vowel/u_5)
  FMT(vietnam/u)
endphoneme
phoneme y
  vwl starttype #u endtype #u
  IF nextPhW(p) THEN
	length 102
  ELIF nextPhW(t[) THEN
	length 76
  ELIF nextPhW(c) THEN
	length 70
  ELIF nextPhW(m) THEN
	length 143
  ELIF nextPhW(n) THEN
	length 136
  ELIF nextPhW(N) THEN
	length 101
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 300
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
	length 240
  ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
     length 328
  ELSE
	length 180
  ENDIF
  //FMT(vowel/u#_5)
  FMT(vietnam/y, 80)
endphoneme
phoneme @
  vwl  starttype #@  endtype #a
	IF nextPhW(p) THEN
	length 123
  ELIF nextPhW(t[) THEN
	length 123
  ELIF nextPhW(c) THEN
	length 139
  ELIF nextPhW(m) THEN
	length 127
  ELIF nextPhW(n) THEN
	length 160
  ELIF nextPhW(N) THEN
	length 156
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
	length 240
  ELSE
	length 180
  ENDIF
  // FMT(vowel/V)   //vowel/@_2)
  FMT(vietnam/V_2)
endphoneme
phoneme @:
  vwl  starttype #@  endtype #@
  IF nextPhW(p) THEN
	length 123
  ELIF nextPhW(t[) THEN
	length 123
  ELIF nextPhW(c) THEN
	length 139
  ELIF nextPhW(m) THEN
	length 127
  ELIF nextPhW(n) THEN
	length 160
  ELIF nextPhW(N) THEN
	length 156
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 300
  ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
	length 240
  ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
     length 333
  ELSE
	length 180
  ENDIF
  //FMT(vowel/@_2)
  FMT(vietnam/@_2)
endphoneme
// Diphthongs
//===========
phoneme aI
  vwl starttype #a endtype #i
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 200
	ENDIF
  FMT(vdiph/&i_2)
endphoneme
phoneme a:I
  vwl starttype #a endtype #i
  length 240  //250
  FMT(vdiph/ai)
endphoneme
phoneme @I
  vwl starttype #@ endtype #i
  length 240 //250
  FMT(vdiph/@i)
endphoneme
phoneme @:I
  vwl starttype #@ endtype #i
  length 240 //250
  FMT(vdiph/y#i)
endphoneme
phoneme eI
  vwl starttype #e endtype #i
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 200
	ENDIF
  FMT(vdiph/ei)
endphoneme
phoneme EI
  vwl starttype #e endtype #i
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 200
	ENDIF
  FMT(vdiph/eei)
endphoneme
phoneme OI
  vwl starttype #o endtype #i
  length 240
  FMT(vdiph/ooi_4)
endphoneme
phoneme oI
  vwl starttype #o endtype #i
  length 240
  FMT(vdiph/oi)
endphoneme
phoneme uI
  vwl starttype #u endtype #i
  length 240
  FMT(vdiph/ui)
endphoneme
phoneme yI
  vwl starttype #u endtype #i
  length 240
  FMT(vdiph/u-i)
endphoneme
phoneme aU
  vwl starttype #a endtype #u
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 200
	ENDIF
  FMT(vdiph/aau_4)
endphoneme
phoneme a:U
  vwl starttype #a endtype #u
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 200
	ENDIF
  FMT(vdiph/au)
endphoneme
phoneme eU
  vwl starttype #e endtype #u
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 200
	ENDIF
  FMT(vdiph/eu)
endphoneme
phoneme EU
  vwl starttype #e endtype #u
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 200
	ENDIF
  FMT(vdiph/eeu)
endphoneme
phoneme iU
  vwl starttype #i endtype #u
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 200
	ENDIF
  FMT(vdiph2/iu)
endphoneme
phoneme @U
  vwl  starttype #@  endtype #u
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 200
	ENDIF
  FMT(vdiph/@u_3)
endphoneme
phoneme @:U
  vwl  starttype #@  endtype #u
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 200
	ENDIF
  FMT(vdiph/@u)
endphoneme
phoneme i@
  vwl  starttype #i  endtype #@
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 200
	ENDIF
  FMT(vdiph2/ii@_3)
endphoneme
phoneme y@
  vwl  starttype #i  endtype #@
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 200
	ENDIF
  FMT(vdiph2/y-y#)
endphoneme
phoneme u@
  vwl  starttype #u  endtype #@
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 200
	ENDIF
  FMT(vdiph2/uu@)
endphoneme
// Addition Dipthongs
phoneme o# // ông
  vwl  starttype #o  endtype #o
  IF nextPhW(k) THEN
	length 120
	ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 360
	ELSE
	length 200
	ENDIF
  //FMT(vnasal/a#u_n)
    FMT(vietnam/o#)
endphoneme
phoneme O# // ong
  vwl  starttype #o  endtype #o
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELIF nextPh(k) THEN
	length 140
	ELSE
	length 200
	ENDIF
  //FMT(vnasal/&u_n)
  FMT(vietnam/O_short_2)
endphoneme
phoneme o@
  vwl  starttype #o endtype #a
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 200
	ENDIF
  FMT(vdiph2/oa)
endphoneme
phoneme o&
  vwl  starttype #o endtype #o
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 200
	ENDIF
  FMT(vietnam/oe)
endphoneme
phoneme iE // iê : viết, giệc
  vwl  starttype #i  endtype #e
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 200
	ENDIF
  FMT(vietnam/ie, 150)
endphoneme
phoneme Oi // oai sound
  vwl  starttype #o  endtype #i
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 200
	ENDIF
  FMT(vdiph/ooi_3)
endphoneme
// Vowel and Dipthong for south dialect
phoneme O- // ôi southern sound
  vwl  starttype #o  endtype #i
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 180
	ENDIF
  FMT(vnasal/oi_n)
endphoneme
phoneme @- // ơi southern sound
  vwl  starttype #o  endtype #i
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 180
	ENDIF
  FMT(vdiph/@i_3)
endphoneme
phoneme u- // u southern sound
  vwl  starttype #u  endtype #u
  IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
	length 240
	ELSE
	length 180
	ENDIF
  FMT(vowel/u_3,70)
endphoneme
phoneme kh
  vls vel frc
  lengthmod 3
  Vowelin f1=0  f2=2300 200 400  f3=200 80 len=30
  Vowelout f1=0 f2=2300 300 400  f3=200 80  rms=20
    WAV(ustop/k_unasp)  //ufric/x, 50)
endphoneme
phoneme k
  vls vel frc
  lengthmod 3
  Vowelin f1=0  f2=2300 200 400  f3=200 80 len=30
  Vowelout f1=0 f2=2300 300 400  f3=200 80  rms=20
    WAV(ustop/c)
endphoneme
phoneme N // si**ng** 
  vcd lbv nas
  Vowelout f1=3 f2=2300 300 400  f3=-200 80  len=40 rms=20 brk
  lengthmod 12            // longer than 'n'
  length 163
  FMT(n/nm)
endphoneme
phoneme l
  liquid
  Vowelin f1=0  f2=1700 -300 300  f3=-100 80 len=15
  //lengthmod 7
   //IF nextPh(isNotVowel) THEN
   // ChangePhoneme(l/2)
  //ENDIF
  //CALL vowelstart_l
  FMT(l/l_vi)
endphoneme
phoneme t
  vls alv stp
  //voicingswitch d
  lengthmod 2
  Vowelin f1=0  f2=1700 -300 300  f3=-100 80 len=15
  Vowelout f1=0 f2=1700 -300 250  f3=-100 80  rms=20
  WAV(vietnam/th, 50)
endphoneme
phoneme cr
  vls pla afr sib
  //voicingswitch dZ
  lengthmod 2
  Vowelin f1=0  f2=2300 200 400  f3=-100 80 len=15
  
  WAV(vietnam/tr,10)
endphoneme
phoneme d_
  vcd alv stp
    //	lengthmod 5
	ipa ɗ
	length 50
 Vowelin f1=1  f2=1700 -300 300  f3=-100 80 len=15
  Vowelout f1=2 f2=1700 -300 300  f3=-100 80 brk len=30
WAV(vietnam/dd)
 endphoneme
 
 phoneme c
  vls pal stp pzd
  //voicingswitch J
  lengthmod 2
  length 50
    Vowelin f1=0  f2=2700 400 600  f3=300 80 len=15 brk
  Vowelout f1=1  f2=2700 400 600  f3=200 70 len=15 colr=1
  
  WAV(vietnam/ch,5)
endphoneme
phoneme p
  vls blb stp
    lengthmod 2
	length 15
  Vowelin  f1=0  f2=1000 -50 -100  f3=-200 80 amp=11
  Vowelout f1=0  f2=1000 -500 -350  f3=-300 80 rms=22
    WAV(ustop/p_unasp_,10)
  
endphoneme
phoneme t[        // dental variant of /t/
  IF thisPh(isWordEnd) THEN
	vls alv stp
	voicingswitch d
	lengthmod 2
	length 15
	Vowelin f1=1  f2=1500 -250 250  f3=-100 80  amp=16 len=15
	Vowelout f1=0 f2=1500 -300 250  f3=-100 80  rms=20 len=15
	WAV(ustop/t, 50)
  ELSE
	vls dnt stp
	voicingswitch d[
	lengthmod 2
	length 15
	Vowelin f1=1  f2=1500 -250 250  f3=-100 80  amp=16 len=15
	Vowelout f1=0 f2=1500 -300 250  f3=-100 80  rms=20 len=15
	IF nextPh(isPause2) THEN
	WAV(ustop/t_unasp2, 5)
	ENDIF
	WAV(ustop/t_hi, 70)
  ENDIF
endphoneme
phoneme w
  liquid
  length 20
  starttype #u
  
  IF nextPh(isVowel) THEN
    NextVowelStarts
      VowelStart(w/w@)
      VowelStart(w/wa)
      VowelStart(w/we)
      VowelStart(w/wi)
      VowelStart(w/wo)
      VowelStart(w/wu)
    EndSwitch
    VowelEnding(w/xw, -30)
	IF nextPh(isVowel) AND prevPhW(t[) THEN
		FMT(vnasal/u_n, 60)
	ENDIF
    IF prevPhW(isNasal) THEN
      FMT(w/w)
    ELSEIF prevPhW(h) THEN
      // none,  [hw]
    ELSE
      FMT(w/_w)
    ENDIF
  ELSE
    // no vowel follows
    Vowelout len=50
    IF prevPh(#i) THEN
      FMT(w/iw_)
    ENDIF
    FMT(w/w_)
  ENDIF
endphoneme
 |