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

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