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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836
  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)
  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, 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. ELSE
  511. length 200
  512. ENDIF
  513. //FMT(vnasal/a#u_n)
  514. FMT(vietnam/o#)
  515. endphoneme
  516. phoneme O# // ong
  517. vwl starttype #o endtype #o
  518. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  519. length 240
  520. ELIF nextPh(k) THEN
  521. length 140
  522. ELSE
  523. length 200
  524. ENDIF
  525. //FMT(vnasal/&u_n)
  526. FMT(vietnam/O_short_2)
  527. endphoneme
  528. phoneme o@
  529. vwl starttype #o endtype #a
  530. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  531. length 240
  532. ELSE
  533. length 200
  534. ENDIF
  535. FMT(vdiph2/oa)
  536. endphoneme
  537. phoneme o&
  538. vwl starttype #o endtype #o
  539. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  540. length 240
  541. ELSE
  542. length 200
  543. ENDIF
  544. FMT(vietnam/oe)
  545. endphoneme
  546. phoneme iE // iê : viết, giệc
  547. vwl starttype #i endtype #e
  548. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  549. length 240
  550. ELSE
  551. length 200
  552. ENDIF
  553. FMT(vietnam/ie, 150)
  554. endphoneme
  555. phoneme Oi // oai sound
  556. vwl starttype #o endtype #i
  557. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  558. length 240
  559. ELSE
  560. length 200
  561. ENDIF
  562. FMT(vdiph/ooi_3)
  563. endphoneme
  564. // Vowel and Dipthong for south dialect
  565. phoneme O- // ôi southern sound
  566. vwl starttype #o endtype #i
  567. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  568. length 240
  569. ELSE
  570. length 180
  571. ENDIF
  572. FMT(vnasal/oi_n)
  573. endphoneme
  574. phoneme @- // ơi southern sound
  575. vwl starttype #o endtype #i
  576. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  577. length 240
  578. ELSE
  579. length 180
  580. ENDIF
  581. FMT(vdiph/@i_3)
  582. endphoneme
  583. phoneme u- // u southern sound
  584. vwl starttype #u endtype #u
  585. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  586. length 240
  587. ELSE
  588. length 180
  589. ENDIF
  590. FMT(vowel/u_3,70)
  591. endphoneme
  592. phoneme kh
  593. vls vel frc
  594. lengthmod 3
  595. Vowelin f1=0 f2=2300 200 400 f3=200 80 len=30
  596. Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20
  597. WAV(ustop/k_unasp) //ufric/x, 50)
  598. endphoneme
  599. phoneme k
  600. vls vel frc
  601. lengthmod 3
  602. Vowelin f1=0 f2=2300 200 400 f3=200 80 len=30
  603. Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20
  604. WAV(ustop/c)
  605. endphoneme
  606. phoneme N // si**ng**
  607. vcd lbv nas
  608. Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk
  609. lengthmod 12 // longer than 'n'
  610. IF thisPh(isWordEnd) THEN
  611. length 163
  612. ENDIF
  613. FMT(n/nm)
  614. endphoneme
  615. phoneme l
  616. liquid
  617. Vowelin f1=0 f2=1700 -300 300 f3=-100 80 len=15
  618. //lengthmod 7
  619. //IF nextPh(isNotVowel) THEN
  620. // ChangePhoneme(l/2)
  621. //ENDIF
  622. //CALL vowelstart_l
  623. FMT(l/l_vi)
  624. endphoneme
  625. phoneme t
  626. vls alv stp
  627. //voicingswitch d
  628. lengthmod 2
  629. Vowelin f1=0 f2=1700 -300 300 f3=-100 80 len=15
  630. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  631. WAV(vietnam/th, 50)
  632. endphoneme
  633. phoneme cr
  634. vls pla afr sib
  635. //voicingswitch dZ
  636. lengthmod 2
  637. Vowelin f1=0 f2=2300 200 400 f3=-100 80 len=15
  638. WAV(vietnam/tr,10)
  639. endphoneme
  640. phoneme d_
  641. vcd alv stp
  642. // lengthmod 5
  643. ipa ɗ
  644. length 50
  645. Vowelin f1=1 f2=1700 -300 300 f3=-100 80 len=15
  646. Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk len=30
  647. WAV(vietnam/dd)
  648. endphoneme
  649. phoneme c
  650. vls pal stp pzd
  651. //voicingswitch J
  652. lengthmod 2
  653. length 50
  654. Vowelin f1=0 f2=2700 400 600 f3=300 80 len=15 brk
  655. Vowelout f1=1 f2=2700 400 600 f3=200 70 len=15 colr=1
  656. WAV(vietnam/ch,5)
  657. endphoneme
  658. phoneme p
  659. vls blb stp
  660. lengthmod 2
  661. length 15
  662. Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
  663. Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22
  664. WAV(ustop/p_unasp_,10)
  665. endphoneme
  666. phoneme t[ // dental variant of /t/
  667. IF thisPh(isWordEnd) THEN
  668. vls alv stp
  669. voicingswitch d
  670. lengthmod 2
  671. length 15
  672. Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 len=15
  673. Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 len=15
  674. WAV(ustop/t, 50)
  675. ELSE
  676. vls dnt stp
  677. voicingswitch d[
  678. lengthmod 2
  679. length 15
  680. Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 len=15
  681. Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 len=15
  682. IF nextPh(isPause2) THEN
  683. WAV(ustop/t_unasp2, 5)
  684. ENDIF
  685. WAV(ustop/t_hi, 70)
  686. ENDIF
  687. endphoneme
  688. phoneme w
  689. liquid
  690. length 20
  691. starttype #u
  692. IF nextPh(isVowel) THEN
  693. NextVowelStarts
  694. VowelStart(w/w@)
  695. VowelStart(w/wa)
  696. VowelStart(w/we)
  697. VowelStart(w/wi)
  698. VowelStart(w/wo)
  699. VowelStart(w/wu)
  700. EndSwitch
  701. VowelEnding(w/xw, -30)
  702. IF nextPh(isVowel) AND prevPhW(t[) THEN
  703. FMT(vnasal/u_n, 60) addWav(vietnam/w)
  704. ELIF prevPhW(isNasal) THEN
  705. FMT(w/w)
  706. ELSEIF prevPhW(h) THEN
  707. // none, [hw]
  708. ELSE
  709. FMT(w/_w) addWav(vietnam/w)
  710. ENDIF
  711. ELSE
  712. // no vowel follows
  713. Vowelout len=50
  714. IF prevPh(#i) THEN
  715. FMT(w/iw_)
  716. ENDIF
  717. FMT(w/w_)
  718. ENDIF
  719. endphoneme