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

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