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

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