eSpeak NG is an open source speech synthesizer that supports more than hundred languages and accents.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ph_vi 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. //====================================================
  2. // Vietnamese Phonemes
  3. //====================================================
  4. phoneme 1 // ngang tone: level
  5. stress
  6. Tone(28, 32, envelope/p_level, NULL)
  7. endphoneme
  8. phoneme 2 // huyền tone: low falling
  9. stress
  10. Tone(20, 8, envelope/p_fall, NULL)
  11. endphoneme
  12. phoneme 3 // sắc Tone(rising
  13. stress
  14. Tone(25, 50, envelope/p_rise, NULL)
  15. endphoneme
  16. phoneme 4 // hỏi Tone(curve (dipping rising)
  17. stress
  18. Tone(30, 5, envelope/p_fallrise, NULL)
  19. endphoneme
  20. phoneme 5 // ngã tone: broken (creaking rising)
  21. stress
  22. Tone(28, 58, envelope/p_214, envelope/vi_5amp)
  23. endphoneme
  24. phoneme 6 // nặng Tone(drop (constricted)
  25. stress
  26. length 75 // reduce the length of the vowel
  27. Tone(40, 20, envelope/p_512, envelope/vi_6amp)
  28. endphoneme
  29. phoneme 7 // Tone(1 (ngang) at end of clause
  30. stress
  31. Tone(40, 20, envelope/p_fall, NULL)
  32. endphoneme
  33. // Vowels
  34. //=======
  35. phoneme a
  36. vowel starttype #@ endtype #@
  37. length 130
  38. FMT(vowel/a_4)
  39. endphoneme
  40. phoneme a:
  41. vowel starttype #a endtype #a
  42. length 280
  43. FMT(vowel/a_6)
  44. endphoneme
  45. phoneme E
  46. vowel starttype #e endtype #e
  47. length 200
  48. FMT(vowel/ee_3)
  49. endphoneme
  50. phoneme e
  51. vowel starttype #e endtype #e
  52. length 200
  53. FMT(vowel/e)
  54. endphoneme
  55. phoneme i
  56. vowel starttype #i endtype #i
  57. length 190
  58. IfNextVowelAppend(;)
  59. IF prevPhW(w) THEN
  60. VowelStart(w/wi)
  61. ENDIF
  62. FMT(vowel/i_4)
  63. endphoneme
  64. phoneme O
  65. vowel starttype #o endtype #o
  66. length 200
  67. FMT(vowel/aa_4)
  68. endphoneme
  69. phoneme o
  70. vowel starttype #o endtype #o
  71. length 200
  72. FMT(vowel/o_2)
  73. endphoneme
  74. phoneme u
  75. vowel starttype #u endtype #u
  76. length 200
  77. FMT(vowel/u_7)
  78. endphoneme
  79. phoneme y
  80. vowel starttype #u endtype #u
  81. length 200
  82. FMT(vowel/u#_5)
  83. endphoneme
  84. phoneme @
  85. vowel starttype #@ endtype #a
  86. length 130
  87. FMT(vowel/@_2)
  88. endphoneme
  89. phoneme @:
  90. vowel starttype #@ endtype #@
  91. length 280
  92. FMT(vowel/@_2)
  93. endphoneme
  94. // Diphthongs
  95. //===========
  96. phoneme aI
  97. vowel starttype #a endtype #i
  98. length 250
  99. FMT(vdiph/&i_3)
  100. endphoneme
  101. phoneme a:I
  102. vowel starttype #a endtype #i
  103. length 250
  104. FMT(vdiph/ai)
  105. endphoneme
  106. phoneme @I
  107. vowel starttype #@ endtype #i
  108. length 250
  109. FMT(vdiph/@i)
  110. endphoneme
  111. phoneme @:I
  112. vowel starttype #@ endtype #i
  113. length 250
  114. FMT(vdiph/@i)
  115. endphoneme
  116. phoneme eI
  117. vowel starttype #e endtype #i
  118. length 200
  119. FMT(vdiph/ei)
  120. endphoneme
  121. phoneme EI
  122. vowel starttype #e endtype #i
  123. length 200
  124. FMT(vdiph/eei)
  125. endphoneme
  126. phoneme OI
  127. vowel starttype #o endtype #i
  128. length 200
  129. FMT(vdiph/0i)
  130. endphoneme
  131. phoneme oI
  132. vowel starttype #o endtype #i
  133. length 200
  134. FMT(vdiph/oi)
  135. endphoneme
  136. phoneme uI
  137. vowel starttype #u endtype #i
  138. length 200
  139. FMT(vdiph/ui)
  140. endphoneme
  141. phoneme yI
  142. vowel starttype #u endtype #i
  143. length 200
  144. FMT(vdiph/u-i)
  145. endphoneme
  146. phoneme aU
  147. vowel starttype #a endtype #u
  148. length 210
  149. FMT(vdiph/aau_4)
  150. endphoneme
  151. phoneme a:U
  152. vowel starttype #a endtype #u
  153. length 270
  154. FMT(vdiph/au)
  155. endphoneme
  156. phoneme eU
  157. vowel starttype #e endtype #u
  158. length 200
  159. FMT(vdiph/eu)
  160. endphoneme
  161. phoneme EU
  162. vowel starttype #e endtype #u
  163. length 200
  164. FMT(vdiph/eeu)
  165. endphoneme
  166. phoneme iU
  167. vowel starttype #i endtype #u
  168. length 200
  169. FMT(vdiph2/iu)
  170. endphoneme
  171. phoneme @U
  172. vowel starttype #@ endtype #u
  173. length 200
  174. FMT(vdiph/@u)
  175. endphoneme
  176. phoneme @:U
  177. vowel starttype #@ endtype #u
  178. length 270
  179. FMT(vdiph/@u)
  180. endphoneme
  181. phoneme i@
  182. vowel starttype #i endtype #@
  183. length 240
  184. FMT(vdiph2/ii@_3)
  185. endphoneme
  186. phoneme y@
  187. vowel starttype #i endtype #@
  188. length 200
  189. FMT(vdiph2/y-y#)
  190. endphoneme
  191. phoneme u@
  192. vowel starttype #u endtype #@
  193. length 200
  194. FMT(vdiph2/uu@)
  195. endphoneme
  196. phoneme kh
  197. vls vel frc
  198. lengthmod 3
  199. Vowelin f1=0 f2=2300 200 400 f3=200 80
  200. Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20
  201. WAV(ufric/x, 50)
  202. endphoneme
  203. phoneme l
  204. liquid
  205. lengthmod 7
  206. IF nextPh(isNotVowel) THEN
  207. ChangePhoneme(l/2)
  208. ENDIF
  209. CALL vowelstart_l
  210. FMT(l/l_vi)
  211. endphoneme