| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458 |  
//====================================================
//  Vietnamese Phonemes
//====================================================
phoneme 1   //  ngang tone: level
  stress
  Tone(34,36, envelope/p_level, NULL) // 28 29
endphoneme
phoneme 2   //  huyền tone: low falling
  stress
  Tone(30, 8, envelope/p_fall, NULL) //20 8
endphoneme
phoneme 3   //  sắc Tone(rising
  stress
  Tone(30, 60, envelope/p_rise, NULL) // 30 60
endphoneme
phoneme 4   //  hỏi Tone(curve (dipping rising)
  stress
  Tone(10, 55, envelope/p_fallrise, NULL) //33 31
endphoneme
phoneme 5   //  ngã tone: broken (creaking rising)
  stress
  Tone(28,58,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(25, 60, envelope/p_512, envelope/vi_6amp) //40 20
endphoneme
phoneme 7   //  Tone(1 (ngang) at end of clause
  stress
  Tone(40,  35, envelope/p_fall, NULL) //40 20
endphoneme
// Vowels
//=======
phoneme a
  vowel starttype #@ endtype #@
  	length 140
	  FMT(vowel/a_4)  //a_4)
endphoneme
phoneme a:
  vowel starttype #a endtype #a
  IF nextPh(n^) OR nextPh(c) THEN
  length 100
  ELSE
  length 140 //280
  ENDIF
    FMT(vowel/a_8)
endphoneme
phoneme E
  vowel starttype #e endtype #e
  length 140
  FMT(vowel/e_e)   //ee_3)
endphoneme
phoneme e
  vowel starttype #e endtype #e
  length 140
  FMT(vowel/e)
endphoneme
phoneme i
  vowel  starttype #i  endtype #i
    IfNextVowelAppend(;)
  IF prevPhW(w) THEN
    VowelStart(w/wi)
  ENDIF
  IF nextPh(n^) OR nextPh(c) THEN
  length 100
  FMT(vnasal/ii_n)
  ELSE
  length 140
FMT(vowel/i_4)
ENDIF
endphoneme
phoneme O
  vowel starttype #o endtype #o
    IF nextPh(kh) OR nextPh(N) THEN 
	length 80
	ELSE
	length 140
	ENDIF
    FMT(vdiph2/o_oo) //vowel/oo)
endphoneme
phoneme o
  vowel starttype #o endtype #o
  IF nextPh(kh) OR nextPh(N) THEN
	length 110
	ELSE
	length 140
	ENDIF
  FMT(vowel/o)  // o_2)
endphoneme
phoneme u
  vowel starttype #u endtype #u
  IF nextPh(kh) OR nextPh(N) THEN // hear as ung sound
	length 120
	ELSE
	length 140
	ENDIF
  FMT(vnasal/u_n,60) //vowel/u_5)
endphoneme
phoneme y
  vowel starttype #u endtype #u
  IF nextPh(kh) OR nextPh(N) THEN
	length 120
	ELSE
	length 180
	ENDIF
  FMT(vowel/u#_5)
endphoneme
phoneme @
  vowel  starttype #@  endtype #a
 IF nextPh(kh) OR nextPh(N) OR nextPh(n^) OR nextPh(c) THEN
	length 120
	ELSE
	length 140
	ENDIF
  FMT(vowel/V)   //vowel/@_2)
endphoneme
phoneme @:
  vowel  starttype #@  endtype #@
  length 140
  FMT(vowel/@_2)
endphoneme
// Diphthongs
//===========
phoneme aI
  vowel starttype #a endtype #i
  length 140 //250
  FMT(vdiph/&i_2)
endphoneme
phoneme a:I
  vowel starttype #a endtype #i
  length 200  //250
  FMT(vdiph/ai)
endphoneme
phoneme @I
  vowel starttype #@ endtype #i
  length 200 //250
  FMT(vdiph/@i)
endphoneme
phoneme @:I
  vowel starttype #@ endtype #i
  length 200 //250
  FMT(vdiph/y#i)
endphoneme
phoneme eI
  vowel starttype #e endtype #i
  length 140
  FMT(vdiph/ei)
endphoneme
phoneme EI
  vowel starttype #e endtype #i
  length 140
  FMT(vdiph/eei)
endphoneme
phoneme OI
  vowel starttype #o endtype #i
  length 200
  FMT(vdiph/ooi_4)
endphoneme
phoneme oI
  vowel starttype #o endtype #i
  length 200
  FMT(vdiph/oi)
endphoneme
phoneme uI
  vowel starttype #u endtype #i
  length 200
  FMT(vdiph/ui)
endphoneme
phoneme yI
  vowel starttype #u endtype #i
  length 200
  FMT(vdiph/u-i)
endphoneme
phoneme aU
  vowel starttype #a endtype #u
  length 150
  FMT(vdiph/aau_4)
endphoneme
phoneme a:U
  vowel starttype #a endtype #u
  length 150 //270
  FMT(vdiph/au)
endphoneme
phoneme eU
  vowel starttype #e endtype #u
  length 150
  FMT(vdiph/eu)
endphoneme
phoneme EU
  vowel starttype #e endtype #u
  length 150
  FMT(vdiph/eeu)
endphoneme
phoneme iU
  vowel starttype #i endtype #u
  length 140
  FMT(vdiph2/iu)
endphoneme
phoneme @U
  vowel  starttype #@  endtype #u
  length 140
  FMT(vdiph/@u_3)
endphoneme
phoneme @:U
  vowel  starttype #@  endtype #u
  length 140
  FMT(vdiph/@u)
endphoneme
phoneme i@
  vowel  starttype #i  endtype #@
  length 140
  FMT(vdiph2/ii@_3)
endphoneme
phoneme y@
  vowel  starttype #i  endtype #@
  length 140
  FMT(vdiph2/y-y#)
endphoneme
phoneme u@
  vowel  starttype #u  endtype #@
  length 100 //200
  FMT(vdiph2/uu@)
endphoneme
// Addition Dipthongs
phoneme o# // ông
  vowel  starttype #o  endtype #o
  length 140
  FMT(vnasal/a#u_n)
endphoneme
phoneme O# // ong
  vowel  starttype #o  endtype #o
  length 140
  FMT(vnasal/&u_n)
endphoneme
phoneme o@
  vowel  starttype #o endtype #a
  length 140
  FMT(vdiph2/oa)
endphoneme
phoneme o&
  vowel  starttype #o endtype #o
  length 140
  FMT(vietnam/oe)
endphoneme
phoneme iE // iê : viết, giệc
  vowel  starttype #i  endtype #e
  length 140
  FMT(vietnam/ie_2)
endphoneme
phoneme Oi // oai sound
  vowel  starttype #o  endtype #i
  length 140
  FMT(vdiph/ooi_3)
endphoneme
// Vowel and Dipthong for south dialect
phoneme O- // ôi southern sound
  vowel  starttype #o  endtype #i
  length 150
  FMT(vnasal/oi_n)
endphoneme
phoneme @- // ơi southern sound
  vowel  starttype #o  endtype #i
  length 150
  FMT(vdiph/@i_3)
endphoneme
phoneme u- // u southern sound
  vowel  starttype #u  endtype #u
  length 150
  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(vietnam/_c,5)  //ufric/x, 50)
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 stop
  //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 sibilant
  //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 stop
    //	lengthmod 5
	ipa ɗ
 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 stop palatal
  //voicingswitch J
  lengthmod 2
  length 2
    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 stop
    lengthmod 2
  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 n
  vcd alv nasal
  Vowelin  f1=0  f2=1000 -50 -100  f3=-200 80 amp=11 brk len=15
  Vowelout f1=2 f2=1700 -300 250  f3=-100 80  rms=20 brk len=15
    lengthmod 4
	length 75
FMT(n/nr_)
endphoneme
phoneme t[        // dental variant of /t/
  vls dnt stop
  voicingswitch d[
  lengthmod 2
  length 5
  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)
endphoneme
 |