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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782
  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 nextPhW(p) THEN
  201. length 140
  202. ELIF nextPhW(t[) THEN
  203. length 113
  204. ELIF nextPhW(c) THEN
  205. length 88
  206. ELIF nextPhW(m) THEN
  207. length 134
  208. ELIF nextPhW(n) THEN
  209. length 168
  210. ELIF nextPhW(N) THEN
  211. length 99
  212. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  213. length 240
  214. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
  215. length 240
  216. ELSE
  217. length 180
  218. ENDIF
  219. FMT(vowel/o) // o_2)
  220. endphoneme
  221. phoneme u
  222. vwl starttype #u endtype #u
  223. IF nextPhW(p) THEN
  224. length 110
  225. ELIF nextPhW(t[) THEN
  226. length 94
  227. ELIF nextPhW(c) THEN
  228. length 83
  229. ELIF nextPhW(m) THEN
  230. length 141
  231. ELIF nextPhW(n) THEN
  232. length 177
  233. ELIF nextPhW(N) THEN
  234. length 80
  235. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  236. length 240
  237. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
  238. length 240
  239. ELSE
  240. length 180
  241. ENDIF
  242. FMT(vnasal/u_n) //vowel/u_5)
  243. endphoneme
  244. phoneme y
  245. vwl starttype #u endtype #u
  246. IF nextPhW(p) THEN
  247. length 102
  248. ELIF nextPhW(t[) THEN
  249. length 76
  250. ELIF nextPhW(c) THEN
  251. length 70
  252. ELIF nextPhW(m) THEN
  253. length 143
  254. ELIF nextPhW(n) THEN
  255. length 136
  256. ELIF nextPhW(N) THEN
  257. length 101
  258. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  259. length 240
  260. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
  261. length 240
  262. ELSE
  263. length 180
  264. ENDIF
  265. FMT(vowel/u#_5)
  266. endphoneme
  267. phoneme @
  268. vwl starttype #@ endtype #a
  269. IF nextPh(kh) OR nextPh(N) OR nextPh(n^) OR nextPh(c) THEN
  270. length 120
  271. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  272. length 240
  273. ELSE
  274. length 180
  275. ENDIF
  276. // FMT(vowel/V) //vowel/@_2)
  277. FMT(vietnam/V)
  278. endphoneme
  279. phoneme @:
  280. vwl starttype #@ endtype #@
  281. IF nextPhW(p) THEN
  282. length 123
  283. ELIF nextPhW(t[) THEN
  284. length 123
  285. ELIF nextPhW(c) THEN
  286. length 139
  287. ELIF nextPhW(m) THEN
  288. length 127
  289. ELIF nextPhW(n) THEN
  290. length 160
  291. ELIF nextPhW(N) THEN
  292. length 156
  293. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  294. length 240
  295. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
  296. length 240
  297. ELSE
  298. length 180
  299. ENDIF
  300. FMT(vowel/@_2)
  301. endphoneme
  302. // Diphthongs
  303. //===========
  304. phoneme aI
  305. vwl starttype #a endtype #i
  306. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  307. length 240
  308. ELSE
  309. length 200
  310. ENDIF
  311. FMT(vdiph/&i_2)
  312. endphoneme
  313. phoneme a:I
  314. vwl starttype #a endtype #i
  315. length 240 //250
  316. FMT(vdiph/ai)
  317. endphoneme
  318. phoneme @I
  319. vwl starttype #@ endtype #i
  320. length 240 //250
  321. FMT(vdiph/@i)
  322. endphoneme
  323. phoneme @:I
  324. vwl starttype #@ endtype #i
  325. length 240 //250
  326. FMT(vdiph/y#i)
  327. endphoneme
  328. phoneme eI
  329. vwl starttype #e endtype #i
  330. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  331. length 240
  332. ELSE
  333. length 200
  334. ENDIF
  335. FMT(vdiph/ei)
  336. endphoneme
  337. phoneme EI
  338. vwl starttype #e endtype #i
  339. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  340. length 240
  341. ELSE
  342. length 200
  343. ENDIF
  344. FMT(vdiph/eei)
  345. endphoneme
  346. phoneme OI
  347. vwl starttype #o endtype #i
  348. length 240
  349. FMT(vdiph/ooi_4)
  350. endphoneme
  351. phoneme oI
  352. vwl starttype #o endtype #i
  353. length 240
  354. FMT(vdiph/oi)
  355. endphoneme
  356. phoneme uI
  357. vwl starttype #u endtype #i
  358. length 240
  359. FMT(vdiph/ui)
  360. endphoneme
  361. phoneme yI
  362. vwl starttype #u endtype #i
  363. length 240
  364. FMT(vdiph/u-i)
  365. endphoneme
  366. phoneme aU
  367. vwl starttype #a endtype #u
  368. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  369. length 240
  370. ELSE
  371. length 200
  372. ENDIF
  373. FMT(vdiph/aau_4)
  374. endphoneme
  375. phoneme a:U
  376. vwl starttype #a endtype #u
  377. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  378. length 240
  379. ELSE
  380. length 200
  381. ENDIF
  382. FMT(vdiph/au)
  383. endphoneme
  384. phoneme eU
  385. vwl starttype #e endtype #u
  386. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  387. length 240
  388. ELSE
  389. length 200
  390. ENDIF
  391. FMT(vdiph/eu)
  392. endphoneme
  393. phoneme EU
  394. vwl starttype #e endtype #u
  395. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  396. length 240
  397. ELSE
  398. length 200
  399. ENDIF
  400. FMT(vdiph/eeu)
  401. endphoneme
  402. phoneme iU
  403. vwl starttype #i endtype #u
  404. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  405. length 240
  406. ELSE
  407. length 200
  408. ENDIF
  409. FMT(vdiph2/iu)
  410. endphoneme
  411. phoneme @U
  412. vwl starttype #@ endtype #u
  413. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  414. length 240
  415. ELSE
  416. length 200
  417. ENDIF
  418. FMT(vdiph/@u_3)
  419. endphoneme
  420. phoneme @:U
  421. vwl starttype #@ endtype #u
  422. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  423. length 240
  424. ELSE
  425. length 200
  426. ENDIF
  427. FMT(vdiph/@u)
  428. endphoneme
  429. phoneme i@
  430. vwl starttype #i endtype #@
  431. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  432. length 240
  433. ELSE
  434. length 200
  435. ENDIF
  436. FMT(vdiph2/ii@_3)
  437. endphoneme
  438. phoneme y@
  439. vwl starttype #i endtype #@
  440. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  441. length 240
  442. ELSE
  443. length 200
  444. ENDIF
  445. FMT(vdiph2/y-y#)
  446. endphoneme
  447. phoneme u@
  448. vwl starttype #u endtype #@
  449. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  450. length 240
  451. ELSE
  452. length 200
  453. ENDIF
  454. FMT(vdiph2/uu@)
  455. endphoneme
  456. // Addition Dipthongs
  457. phoneme o# // ông
  458. vwl starttype #o endtype #o
  459. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  460. length 240
  461. ELSE
  462. length 200
  463. ENDIF
  464. FMT(vnasal/a#u_n)
  465. endphoneme
  466. phoneme O# // ong
  467. vwl starttype #o endtype #o
  468. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  469. length 240
  470. ELIF nextPh(k) THEN
  471. length 140
  472. ELSE
  473. length 200
  474. ENDIF
  475. FMT(vnasal/&u_n)
  476. endphoneme
  477. phoneme o@
  478. vwl starttype #o endtype #a
  479. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  480. length 240
  481. ELSE
  482. length 200
  483. ENDIF
  484. FMT(vdiph2/oa)
  485. endphoneme
  486. phoneme o&
  487. vwl starttype #o endtype #o
  488. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  489. length 240
  490. ELSE
  491. length 200
  492. ENDIF
  493. FMT(vietnam/oe)
  494. endphoneme
  495. phoneme iE // iê : viết, giệc
  496. vwl starttype #i endtype #e
  497. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  498. length 240
  499. ELSE
  500. length 200
  501. ENDIF
  502. FMT(vietnam/ie_2)
  503. endphoneme
  504. phoneme Oi // oai sound
  505. vwl starttype #o endtype #i
  506. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  507. length 240
  508. ELSE
  509. length 200
  510. ENDIF
  511. FMT(vdiph/ooi_3)
  512. endphoneme
  513. // Vowel and Dipthong for south dialect
  514. phoneme O- // ôi southern sound
  515. vwl starttype #o endtype #i
  516. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  517. length 240
  518. ELSE
  519. length 180
  520. ENDIF
  521. FMT(vnasal/oi_n)
  522. endphoneme
  523. phoneme @- // ơi southern sound
  524. vwl starttype #o endtype #i
  525. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  526. length 240
  527. ELSE
  528. length 180
  529. ENDIF
  530. FMT(vdiph/@i_3)
  531. endphoneme
  532. phoneme u- // u southern sound
  533. vwl starttype #u endtype #u
  534. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  535. length 240
  536. ELSE
  537. length 180
  538. ENDIF
  539. FMT(vowel/u_3,70)
  540. endphoneme
  541. phoneme kh
  542. vls vel frc
  543. lengthmod 3
  544. Vowelin f1=0 f2=2300 200 400 f3=200 80 len=30
  545. Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20
  546. WAV(ustop/k_unasp) //ufric/x, 50)
  547. endphoneme
  548. phoneme k
  549. vls vel frc
  550. lengthmod 3
  551. Vowelin f1=0 f2=2300 200 400 f3=200 80 len=30
  552. Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20
  553. WAV(ustop/c)
  554. endphoneme
  555. phoneme N // si**ng**
  556. vcd lbv nas
  557. Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk
  558. lengthmod 12 // longer than 'n'
  559. FMT(n/nm)
  560. endphoneme
  561. phoneme l
  562. liquid
  563. Vowelin f1=0 f2=1700 -300 300 f3=-100 80 len=15
  564. //lengthmod 7
  565. //IF nextPh(isNotVowel) THEN
  566. // ChangePhoneme(l/2)
  567. //ENDIF
  568. //CALL vowelstart_l
  569. FMT(l/l_vi)
  570. endphoneme
  571. phoneme t
  572. vls alv stp
  573. //voicingswitch d
  574. lengthmod 2
  575. Vowelin f1=0 f2=1700 -300 300 f3=-100 80 len=15
  576. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  577. WAV(vietnam/th, 50)
  578. endphoneme
  579. phoneme cr
  580. vls pla afr sib
  581. //voicingswitch dZ
  582. lengthmod 2
  583. Vowelin f1=0 f2=2300 200 400 f3=-100 80 len=15
  584. WAV(vietnam/tr,10)
  585. endphoneme
  586. phoneme d_
  587. vcd alv stp
  588. // lengthmod 5
  589. ipa ɗ
  590. length 50
  591. Vowelin f1=1 f2=1700 -300 300 f3=-100 80 len=15
  592. Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk len=30
  593. WAV(vietnam/dd)
  594. endphoneme
  595. phoneme c
  596. vls pal stp pzd
  597. //voicingswitch J
  598. lengthmod 2
  599. length 50
  600. Vowelin f1=0 f2=2700 400 600 f3=300 80 len=15 brk
  601. Vowelout f1=1 f2=2700 400 600 f3=200 70 len=15 colr=1
  602. WAV(vietnam/ch,5)
  603. endphoneme
  604. phoneme p
  605. vls blb stp
  606. lengthmod 2
  607. Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
  608. Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22
  609. WAV(ustop/p_unasp_,10)
  610. endphoneme
  611. phoneme t[ // dental variant of /t/
  612. IF thisPh(isWordEnd) THEN
  613. vls alv stp
  614. voicingswitch d
  615. lengthmod 2
  616. length 5
  617. Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 len=15
  618. Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 len=15
  619. WAV(ustop/t, 50)
  620. ELSE
  621. vls dnt stp
  622. voicingswitch d[
  623. lengthmod 2
  624. length 5
  625. Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 len=15
  626. Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 len=15
  627. IF nextPh(isPause2) THEN
  628. WAV(ustop/t_unasp2, 5)
  629. ENDIF
  630. WAV(ustop/t_hi, 70)
  631. ENDIF
  632. endphoneme
  633. phoneme w
  634. liquid
  635. lengthmod 7
  636. starttype #u
  637. IF nextPh(isVowel) THEN
  638. NextVowelStarts
  639. VowelStart(w/w@)
  640. VowelStart(w/wa)
  641. VowelStart(w/we)
  642. VowelStart(w/wi)
  643. VowelStart(w/wo)
  644. VowelStart(w/wu)
  645. EndSwitch
  646. VowelEnding(w/xw, -30)
  647. IF nextPh(isVowel) AND prevPhW(t[) THEN
  648. FMT(vnasal/u_n, 60)
  649. ENDIF
  650. IF prevPhW(isNasal) THEN
  651. FMT(w/w)
  652. ELSEIF prevPhW(h) THEN
  653. // none, [hw]
  654. ELSE
  655. FMT(w/_w)
  656. ENDIF
  657. ELSE
  658. // no vowel follows
  659. Vowelout len=50
  660. IF prevPh(#i) THEN
  661. FMT(w/iw_)
  662. ENDIF
  663. FMT(w/w_)
  664. ENDIF
  665. endphoneme