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_vietnam 6.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422
  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) //20
  11. endphoneme
  12. phoneme 3 // sắc Tone(rising
  13. stress
  14. Tone(25, 50, envelope/p_rise, NULL) // 25
  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) // 28,58
  23. endphoneme
  24. phoneme 6 // nặng Tone(drop (constricted)
  25. stress
  26. //length 150 // ignore because it make too short sound 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 120
  38. FMT(vowel/a_6) //a_4)
  39. endphoneme
  40. phoneme a:
  41. vowel starttype #a endtype #a
  42. length 200 //280
  43. FMT(vietnam/a) //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. IF nextPh(n^) OR nextPh(c) THEN
  63. FMT(vnasal/ii_n)
  64. ELSE
  65. FMT(vowel/i_4)
  66. ENDIF
  67. endphoneme
  68. phoneme O
  69. vowel starttype #o endtype #o
  70. IF nextPh(kh) OR nextPh(N) THEN
  71. length 110
  72. ELSE
  73. length 200
  74. ENDIF
  75. FMT(vowel/aa_4)
  76. endphoneme
  77. phoneme o
  78. vowel starttype #o endtype #o
  79. IF nextPh(kh) OR nextPh(N) THEN
  80. length 110
  81. ELSE
  82. length 200
  83. ENDIF
  84. FMT(vowel/o_2)
  85. endphoneme
  86. phoneme u
  87. vowel starttype #u endtype #u
  88. IF nextPh(kh) OR nextPh(N) THEN // hear as ung sound
  89. length 120
  90. ELSE
  91. length 200
  92. ENDIF
  93. FMT(vnasal/u_n) //vowel/u_7)
  94. endphoneme
  95. phoneme y
  96. vowel starttype #u endtype #u
  97. IF nextPh(kh) OR nextPh(N) THEN
  98. length 120
  99. ELSE
  100. length 200
  101. ENDIF
  102. FMT(vowel/u#_5)
  103. endphoneme
  104. phoneme @
  105. vowel starttype #@ endtype #a
  106. IF nextPh(kh) OR nextPh(N) THEN
  107. length 120
  108. ELSE
  109. length 170
  110. ENDIF
  111. FMT(vowel/V) //vowel/@_2)
  112. endphoneme
  113. phoneme @:
  114. vowel starttype #@ endtype #@
  115. length 280
  116. FMT(vowel/@_2)
  117. endphoneme
  118. // Diphthongs
  119. //===========
  120. phoneme aI
  121. vowel starttype #a endtype #i
  122. length 200 //250
  123. FMT(vdiph/&y)
  124. endphoneme
  125. phoneme a:I
  126. vowel starttype #a endtype #i
  127. length 200 //250
  128. FMT(vdiph/ai)
  129. endphoneme
  130. phoneme @I
  131. vowel starttype #@ endtype #i
  132. length 200 //250
  133. FMT(vdiph/@i)
  134. endphoneme
  135. phoneme @:I
  136. vowel starttype #@ endtype #i
  137. length 200 //250
  138. FMT(vdiph/@i)
  139. endphoneme
  140. phoneme eI
  141. vowel starttype #e endtype #i
  142. length 200
  143. FMT(vdiph/ei)
  144. endphoneme
  145. phoneme EI
  146. vowel starttype #e endtype #i
  147. length 200
  148. FMT(vdiph/eei)
  149. endphoneme
  150. phoneme OI
  151. vowel starttype #o endtype #i
  152. length 200
  153. FMT(vdiph/0i)
  154. endphoneme
  155. phoneme oI
  156. vowel starttype #o endtype #i
  157. length 200
  158. FMT(vdiph/oi)
  159. endphoneme
  160. phoneme uI
  161. vowel starttype #u endtype #i
  162. length 200
  163. FMT(vdiph/ui)
  164. endphoneme
  165. phoneme yI
  166. vowel starttype #u endtype #i
  167. length 200
  168. FMT(vdiph/u-i)
  169. endphoneme
  170. phoneme aU
  171. vowel starttype #a endtype #u
  172. length 210
  173. FMT(vdiph/aau_4)
  174. endphoneme
  175. phoneme a:U
  176. vowel starttype #a endtype #u
  177. length 230 //270
  178. FMT(vdiph/au)
  179. endphoneme
  180. phoneme eU
  181. vowel starttype #e endtype #u
  182. length 200
  183. FMT(vdiph/eu)
  184. endphoneme
  185. phoneme EU
  186. vowel starttype #e endtype #u
  187. length 200
  188. FMT(vdiph/eeu)
  189. endphoneme
  190. phoneme iU
  191. vowel starttype #i endtype #u
  192. length 200
  193. FMT(vdiph2/iu)
  194. endphoneme
  195. phoneme @U
  196. vowel starttype #@ endtype #u
  197. length 200
  198. FMT(vdiph/@u_3)
  199. endphoneme
  200. phoneme @:U
  201. vowel starttype #@ endtype #u
  202. length 270
  203. FMT(vdiph/@u)
  204. endphoneme
  205. phoneme i@
  206. vowel starttype #i endtype #@
  207. length 240
  208. FMT(vdiph2/ii@_3)
  209. endphoneme
  210. phoneme y@
  211. vowel starttype #i endtype #@
  212. length 200
  213. FMT(vdiph2/y-y#)
  214. endphoneme
  215. phoneme u@
  216. vowel starttype #u endtype #@
  217. length 150 //200
  218. FMT(vdiph2/uu@)
  219. endphoneme
  220. // Addition Dipthongs
  221. phoneme o# // ông
  222. vowel starttype #o endtype #o
  223. length 200
  224. FMT(vnasal/a#u_n)
  225. endphoneme
  226. phoneme O# // ong
  227. vowel starttype #o endtype #o
  228. length 200
  229. FMT(vnasal/&u_n)
  230. endphoneme
  231. phoneme o@
  232. vowel starttype #o endtype #o
  233. length 160
  234. FMT(vdiph2/oa)
  235. endphoneme
  236. phoneme o&
  237. vowel starttype #o endtype #o
  238. length 160
  239. FMT(vietnam/oe)
  240. endphoneme
  241. phoneme iE // iê : viết, giệc
  242. vowel starttype #i endtype #e
  243. length 190
  244. FMT(vietnam/ie_2)
  245. endphoneme
  246. phoneme kh
  247. vls vel frc
  248. lengthmod 3
  249. Vowelin f1=0 f2=2300 200 400 f3=200 80
  250. Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20
  251. WAV(vietnam/_c,5) //ufric/x, 50)
  252. endphoneme
  253. phoneme l
  254. liquid
  255. lengthmod 7
  256. //IF nextPh(isNotVowel) THEN
  257. // ChangePhoneme(l/2)
  258. //ENDIF
  259. //CALL vowelstart_l
  260. FMT(l/l_vi)
  261. endphoneme
  262. phoneme t
  263. vls alv stop
  264. //voicingswitch d
  265. lengthmod 2
  266. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  267. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  268. WAV(vietnam/th, 50)
  269. endphoneme
  270. phoneme cr
  271. vls pla afr sibilant
  272. //voicingswitch dZ
  273. lengthmod 2
  274. Vowelin f1=0 f2=2300 200 400 f3=-100 80
  275. WAV(vietnam/tr,10)
  276. endphoneme
  277. phoneme d
  278. vcd alv stop
  279. lengthmod 5
  280. Vowelin f1=1 f2=1700 -300 300 f3=-100 80
  281. Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk
  282. WAV(vietnam/dd)
  283. endphoneme
  284. phoneme c
  285. vls pal stop palatal
  286. //voicingswitch J
  287. lengthmod 2
  288. length 75
  289. Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
  290. Vowelout f1=1 f2=2700 400 600 f3=200 70 len=50 colr=1
  291. WAV(vietnam/ch,5)
  292. endphoneme
  293. phoneme p
  294. vls blb stop
  295. lengthmod 2
  296. Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
  297. Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22
  298. WAV(ustop/p_unasp_,10)
  299. endphoneme
  300. phoneme n
  301. vcd alv nasal
  302. Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
  303. Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk
  304. lengthmod 4
  305. FMT(n/n#_)
  306. endphoneme
  307. phoneme t[ // dental variant of /t/
  308. vls dnt stop
  309. voicingswitch d[
  310. lengthmod 2
  311. Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16
  312. Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
  313. IF nextPh(isPause2) THEN
  314. WAV(ustop/t_unasp2, 5)
  315. ENDIF
  316. WAV(ustop/t_hi, 70)
  317. endphoneme