| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296 |  
//====================================================
//  Vietnamese Phonemes
//====================================================
phoneme 1   //  ngang tone: level
  stress
  Tone(28, 32, envelope/p_level, NULL)
endphoneme
phoneme 2   //  huyền tone: low falling
  stress
  Tone(20,  8, envelope/p_fall, NULL)
endphoneme
phoneme 3   //  sắc Tone(rising
  stress
  Tone(25, 50, envelope/p_rise, NULL)
endphoneme
phoneme 4   //  hỏi Tone(curve (dipping rising)
  stress
  Tone(30,  5, envelope/p_fallrise, NULL)
endphoneme
phoneme 5   //  ngã tone: broken (creaking rising)
  stress
  Tone(28, 58, envelope/p_214, envelope/vi_5amp)
endphoneme
phoneme 6   //  nặng Tone(drop  (constricted)
  stress
  length 75  // reduce the length of the vowel
  Tone(40, 20, envelope/p_512, envelope/vi_6amp)
endphoneme
phoneme 7   //  Tone(1 (ngang) at end of clause
  stress
  Tone(40,  20, envelope/p_fall, NULL)
endphoneme
// Vowels
//=======
phoneme a
  vowel starttype #@ endtype #@
  length 130
  FMT(vowel/a_4)
endphoneme
phoneme a:
  vowel starttype #a endtype #a
  length 280
  FMT(vowel/a_6)
endphoneme
phoneme E
  vowel starttype #e endtype #e
  length 200
  FMT(vowel/ee_3)
endphoneme
phoneme e
  vowel starttype #e endtype #e
  length 200
  FMT(vowel/e)
endphoneme
phoneme i
  vowel  starttype #i  endtype #i
  length 190
  IfNextVowelAppend(;)
  IF prevPhW(w) THEN
    VowelStart(w/wi)
  ENDIF
  FMT(vowel/i_4)
endphoneme
phoneme O
  vowel starttype #o endtype #o
  length 200
  FMT(vowel/aa_4)
endphoneme
phoneme o
  vowel starttype #o endtype #o
  length 200
  FMT(vowel/o_2)
endphoneme
phoneme u
  vowel starttype #u endtype #u
  length 200
  FMT(vowel/u_7)
endphoneme
phoneme y
  vowel starttype #u endtype #u
  length 200
  FMT(vowel/u#_5)
endphoneme
phoneme @
  vowel  starttype #@  endtype #a
  length 130
  FMT(vowel/@_2)
endphoneme
phoneme @:
  vowel  starttype #@  endtype #@
  length 280
  FMT(vowel/@_2)
endphoneme
// Diphthongs
//===========
phoneme aI
  vowel starttype #a endtype #i
  length 250
  FMT(vdiph/&i_3)
endphoneme
phoneme a:I
  vowel starttype #a endtype #i
  length 250
  FMT(vdiph/ai)
endphoneme
phoneme @I
  vowel starttype #@ endtype #i
  length 250
  FMT(vdiph/@i)
endphoneme
phoneme @:I
  vowel starttype #@ endtype #i
  length 250
  FMT(vdiph/@i)
endphoneme
phoneme eI
  vowel starttype #e endtype #i
  length 200
  FMT(vdiph/ei)
endphoneme
phoneme EI
  vowel starttype #e endtype #i
  length 200
  FMT(vdiph/eei)
endphoneme
phoneme OI
  vowel starttype #o endtype #i
  length 200
  FMT(vdiph/0i)
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 210
  FMT(vdiph/aau_4)
endphoneme
phoneme a:U
  vowel starttype #a endtype #u
  length 270
  FMT(vdiph/au)
endphoneme
phoneme eU
  vowel starttype #e endtype #u
  length 200
  FMT(vdiph/eu)
endphoneme
phoneme EU
  vowel starttype #e endtype #u
  length 200
  FMT(vdiph/eeu)
endphoneme
phoneme iU
  vowel starttype #i endtype #u
  length 200
  FMT(vdiph2/iu)
endphoneme
phoneme @U
  vowel  starttype #@  endtype #u
  length 200
  FMT(vdiph/@u)
endphoneme
phoneme @:U
  vowel  starttype #@  endtype #u
  length 270
  FMT(vdiph/@u)
endphoneme
phoneme i@
  vowel  starttype #i  endtype #@
  length 240
  FMT(vdiph2/ii@_3)
endphoneme
phoneme y@
  vowel  starttype #i  endtype #@
  length 200
  FMT(vdiph2/y-y#)
endphoneme
phoneme u@
  vowel  starttype #u  endtype #@
  length 200
  FMT(vdiph2/uu@)
endphoneme
phoneme kh
  vls vel frc
  lengthmod 3
  Vowelin f1=0  f2=2300 200 400  f3=200 80
  Vowelout f1=0 f2=2300 300 400  f3=200 80  rms=20
  WAV(ufric/x, 50)
endphoneme
phoneme l
  liquid
  lengthmod 7
  IF nextPh(isNotVowel) THEN
    ChangePhoneme(l/2)
  ENDIF
  CALL vowelstart_l
  FMT(l/l_vi)
endphoneme
 |