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 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770
  1. //====================================================
  2. // Vietnamese Phonemes
  3. //====================================================
  4. phoneme 1 // ngang tone: level
  5. stress
  6. Tone(30, 28, envelope/p_level, NULL) // 28 29
  7. endphoneme
  8. phoneme 2 // huyền tone: low falling
  9. stress
  10. Tone(20, 8, envelope/p_fall, NULL) //20 8
  11. endphoneme
  12. phoneme 3 // sắc Tone(rising
  13. stress
  14. Tone(30, 55, envelope/p_rise, NULL) // 30 60
  15. endphoneme
  16. phoneme 4 // hỏi Tone(curve (dipping rising)
  17. stress
  18. Tone(10, 31, envelope/p_fallrise, NULL) //33 31
  19. endphoneme
  20. phoneme 5 // ngã tone: broken (creaking rising)
  21. stress
  22. Tone(34, 60,envelope/p_214, envelope/vi_5amp) // 28,58 20 80
  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(34, 10, envelope/p_512, envelope/vi_6amp) //40 20
  28. endphoneme
  29. phoneme 7 // Tone(1 (ngang) at end of clause
  30. stress
  31. Tone(30, 28, envelope/p_fall, NULL) //40 20
  32. endphoneme
  33. // Vowels
  34. //=======
  35. phoneme a
  36. vwl starttype #@ endtype #@
  37. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  38. length 240
  39. ELSE
  40. length 180
  41. ENDIF
  42. IF nextPh(N) OR nextPh(c) THEN
  43. FMT(vnasal/a_n)
  44. ELSE
  45. FMT(vietnam/a, 60) //a_4)
  46. ENDIF
  47. endphoneme
  48. phoneme a:
  49. vwl starttype #a endtype #a
  50. IF nextPhW(p) THEN
  51. length 142
  52. ELIF nextPhW(t[) THEN
  53. length 126
  54. ELIF nextPhW(c) THEN
  55. length 136
  56. ELIF nextPhW(m) THEN
  57. length 155
  58. ELIF nextPhW(n) THEN
  59. length 185
  60. ELIF nextPhW(N) THEN
  61. length 173
  62. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  63. length 240
  64. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
  65. length 240
  66. ELSE
  67. length 180
  68. ENDIF
  69. FMT(vowel/a_8)
  70. //FMT(vietnam/a_2)
  71. endphoneme
  72. phoneme E
  73. vwl starttype #e endtype #e
  74. IF nextPhW(p) THEN
  75. length 143
  76. ELIF nextPhW(t[) THEN
  77. length 107
  78. ELIF nextPhW(c) THEN
  79. length 141
  80. ELIF nextPhW(m) THEN
  81. length 128
  82. ELIF nextPhW(n) THEN
  83. length 160
  84. ELIF nextPhW(N) THEN
  85. length 187
  86. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  87. length 240
  88. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
  89. length 240
  90. ELSE
  91. length 180
  92. ENDIF
  93. FMT(vowel/e_e) //ee_3)
  94. endphoneme
  95. phoneme e
  96. vwl starttype #e endtype #e
  97. IF nextPhW(p) THEN
  98. length 114
  99. ELIF nextPhW(t[) THEN
  100. length 126
  101. ELIF nextPhW(c) THEN
  102. length 140
  103. ELIF nextPhW(n^) THEN
  104. length 120
  105. ELIF nextPhW(m) THEN
  106. length 148
  107. ELIF nextPhW(n) THEN
  108. length 163
  109. ELIF nextPhW(N) THEN
  110. length 115
  111. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  112. length 240
  113. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
  114. length 240
  115. ELSE
  116. length 180
  117. ENDIF
  118. IF nextPh(n^) THEN
  119. FMT(vowel/e)
  120. ELSE
  121. FMT(vietnam/e)
  122. ENDIF
  123. endphoneme
  124. phoneme e-
  125. vwl starttype #e endtype #a
  126. IF nextPhW(c) THEN
  127. length 70
  128. ELIF nextPhW(n^) THEN
  129. length 100
  130. ENDIF
  131. FMT(vietnam/e_short_2)
  132. endphoneme
  133. phoneme i
  134. vwl starttype #i endtype #i
  135. IfNextVowelAppend(;)
  136. IF prevPhW(w) THEN
  137. VowelStart(w/wi)
  138. ENDIF
  139. IF nextPhW(p) THEN
  140. length 131
  141. ELIF nextPhW(t[) THEN
  142. length 113
  143. ELIF nextPhW(c) OR nextPhW(n^) THEN
  144. length 72
  145. ELIF nextPhW(m) THEN
  146. length 120
  147. ELIF nextPhW(n) THEN
  148. length 128
  149. ELIF nextPhW(N) THEN
  150. length 97
  151. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  152. length 240
  153. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
  154. length 240
  155. ELSE
  156. length 180
  157. ENDIF
  158. IF nextPh(n^) OR nextPh(c) THEN
  159. FMT(vnasal/ii_n)
  160. ELSE
  161. FMT(vowel/i_4)
  162. ENDIF
  163. endphoneme
  164. phoneme O
  165. vwl starttype #o endtype #o
  166. IF nextPhW(p) THEN
  167. length 129
  168. ELIF nextPhW(t[) THEN
  169. length 125
  170. ELIF nextPhW(c) THEN
  171. length 80
  172. ELIF nextPhW(m) THEN
  173. length 133
  174. ELIF nextPhW(n) THEN
  175. length 158
  176. ELIF nextPhW(N) THEN
  177. length 102
  178. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  179. length 240
  180. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
  181. length 240
  182. ELSE
  183. length 180
  184. ENDIF
  185. FMT(vdiph2/o_oo) //vowel/oo)
  186. endphoneme
  187. phoneme O+
  188. vwl starttype #o endtype #o
  189. IF nextPh(kh) OR nextPh(N) THEN
  190. length 80
  191. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  192. length 240
  193. ELSE
  194. length 180
  195. ENDIF
  196. FMT(vowel/o) //vowel/oo)
  197. endphoneme
  198. phoneme o
  199. vwl starttype #o endtype #o
  200. IF nextPh(kh) OR nextPh(N) THEN
  201. length 110
  202. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  203. length 240
  204. ELSE
  205. length 180
  206. ENDIF
  207. FMT(vowel/o) // o_2)
  208. endphoneme
  209. phoneme u
  210. vwl starttype #u endtype #u
  211. IF nextPhW(p) THEN
  212. length 110
  213. ELIF nextPhW(t[) THEN
  214. length 94
  215. ELIF nextPhW(c) THEN
  216. length 83
  217. ELIF nextPhW(m) THEN
  218. length 141
  219. ELIF nextPhW(n) THEN
  220. length 177
  221. ELIF nextPhW(N) THEN
  222. length 80
  223. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  224. length 240
  225. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
  226. length 240
  227. ELSE
  228. length 180
  229. ENDIF
  230. FMT(vnasal/u_n) //vowel/u_5)
  231. endphoneme
  232. phoneme y
  233. vwl starttype #u endtype #u
  234. IF nextPhW(p) THEN
  235. length 102
  236. ELIF nextPhW(t[) THEN
  237. length 76
  238. ELIF nextPhW(c) THEN
  239. length 70
  240. ELIF nextPhW(m) THEN
  241. length 143
  242. ELIF nextPhW(n) THEN
  243. length 136
  244. ELIF nextPhW(N) THEN
  245. length 101
  246. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  247. length 240
  248. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
  249. length 240
  250. ELSE
  251. length 180
  252. ENDIF
  253. FMT(vowel/u#_5)
  254. endphoneme
  255. phoneme @
  256. vwl starttype #@ endtype #a
  257. IF nextPh(kh) OR nextPh(N) OR nextPh(n^) OR nextPh(c) THEN
  258. length 120
  259. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  260. length 240
  261. ELSE
  262. length 180
  263. ENDIF
  264. // FMT(vowel/V) //vowel/@_2)
  265. FMT(vietnam/V)
  266. endphoneme
  267. phoneme @:
  268. vwl starttype #@ endtype #@
  269. IF nextPhW(p) THEN
  270. length 123
  271. ELIF nextPhW(t[) THEN
  272. length 123
  273. ELIF nextPhW(c) THEN
  274. length 139
  275. ELIF nextPhW(m) THEN
  276. length 127
  277. ELIF nextPhW(n) THEN
  278. length 160
  279. ELIF nextPhW(N) THEN
  280. length 156
  281. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  282. length 240
  283. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
  284. length 240
  285. ELSE
  286. length 180
  287. ENDIF
  288. FMT(vowel/@_2)
  289. endphoneme
  290. // Diphthongs
  291. //===========
  292. phoneme aI
  293. vwl starttype #a endtype #i
  294. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  295. length 240
  296. ELSE
  297. length 200
  298. ENDIF
  299. FMT(vdiph/&i_2)
  300. endphoneme
  301. phoneme a:I
  302. vwl starttype #a endtype #i
  303. length 240 //250
  304. FMT(vdiph/ai)
  305. endphoneme
  306. phoneme @I
  307. vwl starttype #@ endtype #i
  308. length 240 //250
  309. FMT(vdiph/@i)
  310. endphoneme
  311. phoneme @:I
  312. vwl starttype #@ endtype #i
  313. length 240 //250
  314. FMT(vdiph/y#i)
  315. endphoneme
  316. phoneme eI
  317. vwl starttype #e endtype #i
  318. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  319. length 240
  320. ELSE
  321. length 200
  322. ENDIF
  323. FMT(vdiph/ei)
  324. endphoneme
  325. phoneme EI
  326. vwl starttype #e endtype #i
  327. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  328. length 240
  329. ELSE
  330. length 200
  331. ENDIF
  332. FMT(vdiph/eei)
  333. endphoneme
  334. phoneme OI
  335. vwl starttype #o endtype #i
  336. length 240
  337. FMT(vdiph/ooi_4)
  338. endphoneme
  339. phoneme oI
  340. vwl starttype #o endtype #i
  341. length 240
  342. FMT(vdiph/oi)
  343. endphoneme
  344. phoneme uI
  345. vwl starttype #u endtype #i
  346. length 240
  347. FMT(vdiph/ui)
  348. endphoneme
  349. phoneme yI
  350. vwl starttype #u endtype #i
  351. length 240
  352. FMT(vdiph/u-i)
  353. endphoneme
  354. phoneme aU
  355. vwl starttype #a endtype #u
  356. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  357. length 240
  358. ELSE
  359. length 200
  360. ENDIF
  361. FMT(vdiph/aau_4)
  362. endphoneme
  363. phoneme a:U
  364. vwl starttype #a endtype #u
  365. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  366. length 240
  367. ELSE
  368. length 200
  369. ENDIF
  370. FMT(vdiph/au)
  371. endphoneme
  372. phoneme eU
  373. vwl starttype #e endtype #u
  374. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  375. length 240
  376. ELSE
  377. length 200
  378. ENDIF
  379. FMT(vdiph/eu)
  380. endphoneme
  381. phoneme EU
  382. vwl starttype #e endtype #u
  383. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  384. length 240
  385. ELSE
  386. length 200
  387. ENDIF
  388. FMT(vdiph/eeu)
  389. endphoneme
  390. phoneme iU
  391. vwl starttype #i endtype #u
  392. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  393. length 240
  394. ELSE
  395. length 200
  396. ENDIF
  397. FMT(vdiph2/iu)
  398. endphoneme
  399. phoneme @U
  400. vwl starttype #@ endtype #u
  401. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  402. length 240
  403. ELSE
  404. length 200
  405. ENDIF
  406. FMT(vdiph/@u_3)
  407. endphoneme
  408. phoneme @:U
  409. vwl starttype #@ endtype #u
  410. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  411. length 240
  412. ELSE
  413. length 200
  414. ENDIF
  415. FMT(vdiph/@u)
  416. endphoneme
  417. phoneme i@
  418. vwl starttype #i endtype #@
  419. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  420. length 240
  421. ELSE
  422. length 200
  423. ENDIF
  424. FMT(vdiph2/ii@_3)
  425. endphoneme
  426. phoneme y@
  427. vwl starttype #i endtype #@
  428. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  429. length 240
  430. ELSE
  431. length 200
  432. ENDIF
  433. FMT(vdiph2/y-y#)
  434. endphoneme
  435. phoneme u@
  436. vwl starttype #u endtype #@
  437. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  438. length 240
  439. ELSE
  440. length 200
  441. ENDIF
  442. FMT(vdiph2/uu@)
  443. endphoneme
  444. // Addition Dipthongs
  445. phoneme o# // ông
  446. vwl starttype #o endtype #o
  447. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  448. length 240
  449. ELSE
  450. length 200
  451. ENDIF
  452. FMT(vnasal/a#u_n)
  453. endphoneme
  454. phoneme O# // ong
  455. vwl starttype #o endtype #o
  456. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  457. length 240
  458. ELIF nextPh(k) THEN
  459. length 140
  460. ELSE
  461. length 200
  462. ENDIF
  463. FMT(vnasal/&u_n)
  464. endphoneme
  465. phoneme o@
  466. vwl starttype #o endtype #a
  467. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  468. length 240
  469. ELSE
  470. length 200
  471. ENDIF
  472. FMT(vdiph2/oa)
  473. endphoneme
  474. phoneme o&
  475. vwl starttype #o endtype #o
  476. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  477. length 240
  478. ELSE
  479. length 200
  480. ENDIF
  481. FMT(vietnam/oe)
  482. endphoneme
  483. phoneme iE // iê : viết, giệc
  484. vwl starttype #i endtype #e
  485. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  486. length 240
  487. ELSE
  488. length 200
  489. ENDIF
  490. FMT(vietnam/ie_2)
  491. endphoneme
  492. phoneme Oi // oai sound
  493. vwl starttype #o endtype #i
  494. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  495. length 240
  496. ELSE
  497. length 200
  498. ENDIF
  499. FMT(vdiph/ooi_3)
  500. endphoneme
  501. // Vowel and Dipthong for south dialect
  502. phoneme O- // ôi southern sound
  503. vwl starttype #o endtype #i
  504. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  505. length 240
  506. ELSE
  507. length 180
  508. ENDIF
  509. FMT(vnasal/oi_n)
  510. endphoneme
  511. phoneme @- // ơi southern sound
  512. vwl starttype #o endtype #i
  513. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  514. length 240
  515. ELSE
  516. length 180
  517. ENDIF
  518. FMT(vdiph/@i_3)
  519. endphoneme
  520. phoneme u- // u southern sound
  521. vwl starttype #u endtype #u
  522. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  523. length 240
  524. ELSE
  525. length 180
  526. ENDIF
  527. FMT(vowel/u_3,70)
  528. endphoneme
  529. phoneme kh
  530. vls vel frc
  531. lengthmod 3
  532. Vowelin f1=0 f2=2300 200 400 f3=200 80 len=30
  533. Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20
  534. WAV(ustop/k_unasp) //ufric/x, 50)
  535. endphoneme
  536. phoneme k
  537. vls vel frc
  538. lengthmod 3
  539. Vowelin f1=0 f2=2300 200 400 f3=200 80 len=30
  540. Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20
  541. WAV(ustop/c)
  542. endphoneme
  543. phoneme N // si**ng**
  544. vcd lbv nas
  545. Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk
  546. lengthmod 12 // longer than 'n'
  547. FMT(n/nm)
  548. endphoneme
  549. phoneme l
  550. liquid
  551. Vowelin f1=0 f2=1700 -300 300 f3=-100 80 len=15
  552. //lengthmod 7
  553. //IF nextPh(isNotVowel) THEN
  554. // ChangePhoneme(l/2)
  555. //ENDIF
  556. //CALL vowelstart_l
  557. FMT(l/l_vi)
  558. endphoneme
  559. phoneme t
  560. vls alv stp
  561. //voicingswitch d
  562. lengthmod 2
  563. Vowelin f1=0 f2=1700 -300 300 f3=-100 80 len=15
  564. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  565. WAV(vietnam/th, 50)
  566. endphoneme
  567. phoneme cr
  568. vls pla afr sib
  569. //voicingswitch dZ
  570. lengthmod 2
  571. Vowelin f1=0 f2=2300 200 400 f3=-100 80 len=15
  572. WAV(vietnam/tr,10)
  573. endphoneme
  574. phoneme d_
  575. vcd alv stp
  576. // lengthmod 5
  577. ipa ɗ
  578. length 50
  579. Vowelin f1=1 f2=1700 -300 300 f3=-100 80 len=15
  580. Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk len=30
  581. WAV(vietnam/dd)
  582. endphoneme
  583. phoneme c
  584. vls pal stp pzd
  585. //voicingswitch J
  586. lengthmod 2
  587. length 50
  588. Vowelin f1=0 f2=2700 400 600 f3=300 80 len=15 brk
  589. Vowelout f1=1 f2=2700 400 600 f3=200 70 len=15 colr=1
  590. WAV(vietnam/ch,5)
  591. endphoneme
  592. phoneme p
  593. vls blb stp
  594. lengthmod 2
  595. Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
  596. Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22
  597. WAV(ustop/p_unasp_,10)
  598. endphoneme
  599. phoneme t[ // dental variant of /t/
  600. IF thisPh(isWordEnd) THEN
  601. vls alv stp
  602. voicingswitch d
  603. lengthmod 2
  604. length 5
  605. Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 len=15
  606. Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 len=15
  607. WAV(ustop/t, 50)
  608. ELSE
  609. vls dnt stp
  610. voicingswitch d[
  611. lengthmod 2
  612. length 5
  613. Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 len=15
  614. Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 len=15
  615. IF nextPh(isPause2) THEN
  616. WAV(ustop/t_unasp2, 5)
  617. ENDIF
  618. WAV(ustop/t_hi, 70)
  619. ENDIF
  620. endphoneme
  621. phoneme w
  622. liquid
  623. lengthmod 7
  624. starttype #u
  625. IF nextPh(isVowel) THEN
  626. NextVowelStarts
  627. VowelStart(w/w@)
  628. VowelStart(w/wa)
  629. VowelStart(w/we)
  630. VowelStart(w/wi)
  631. VowelStart(w/wo)
  632. VowelStart(w/wu)
  633. EndSwitch
  634. VowelEnding(w/xw, -30)
  635. IF nextPh(isVowel) AND prevPhW(t[) THEN
  636. FMT(vnasal/u_n, 60)
  637. ENDIF
  638. IF prevPhW(isNasal) THEN
  639. FMT(w/w)
  640. ELSEIF prevPhW(h) THEN
  641. // none, [hw]
  642. ELSE
  643. FMT(w/_w)
  644. ENDIF
  645. ELSE
  646. // no vowel follows
  647. Vowelout len=50
  648. IF prevPh(#i) THEN
  649. FMT(w/iw_)
  650. ENDIF
  651. FMT(w/w_)
  652. ENDIF
  653. endphoneme