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. IF nextPh(N) OR nextPh(c) THEN
  57. FMT(vnasal/a_n)
  58. ELSE
  59. FMT(vietnam/a_2) //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_2)
  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, 150)
  143. ENDIF
  144. endphoneme
  145. phoneme e-
  146. vwl starttype #e endtype #a
  147. length 140
  148. FMT(vietnam/e_short_1)
  149. //FMT(vdiph/aai_3)
  150. endphoneme
  151. phoneme i
  152. vwl starttype #i endtype #i
  153. IfNextVowelAppend(;)
  154. IF prevPhW(w) THEN
  155. VowelStart(w/wi)
  156. ENDIF
  157. IF nextPhW(p) THEN
  158. length 131
  159. ELIF nextPhW(t[) THEN
  160. length 113
  161. ELIF nextPhW(c) OR nextPhW(n^) THEN
  162. length 72
  163. ELIF nextPhW(m) THEN
  164. length 120
  165. ELIF nextPhW(n) THEN
  166. length 128
  167. ELIF nextPhW(N) THEN
  168. length 97
  169. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  170. length 310
  171. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
  172. length 240
  173. ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
  174. length 363
  175. ELSE
  176. length 180
  177. ENDIF
  178. IF nextPh(n^) OR nextPh(c) THEN
  179. //FMT(vnasal/ii_n)
  180. FMT(vietnam/i)
  181. ELSE
  182. //FMT(vowel/i_4)
  183. FMT(vietnam/i)
  184. ENDIF
  185. endphoneme
  186. phoneme O
  187. vwl starttype #o endtype #o
  188. IF nextPhW(p) THEN
  189. length 129
  190. ELIF nextPhW(t[) THEN
  191. length 125
  192. ELIF nextPhW(c) THEN
  193. length 80
  194. ELIF nextPhW(m) THEN
  195. length 133
  196. ELIF nextPhW(n) THEN
  197. length 158
  198. ELIF nextPhW(N) THEN
  199. length 102
  200. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  201. length 300
  202. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
  203. length 240
  204. ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
  205. length 331
  206. ELSE
  207. length 180
  208. ENDIF
  209. //FMT(vdiph2/o_oo) //vowel/oo)
  210. FMT(vietnam/oo)
  211. endphoneme
  212. phoneme O+
  213. vwl starttype #o endtype #o
  214. IF nextPh(kh) OR nextPh(N) THEN
  215. length 80
  216. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  217. length 240
  218. ELSE
  219. length 180
  220. ENDIF
  221. FMT(vowel/o) //vowel/oo)
  222. endphoneme
  223. phoneme o
  224. vwl starttype #o endtype #o
  225. IF nextPhW(p) THEN
  226. length 140
  227. ELIF nextPhW(t[) THEN
  228. length 113
  229. ELIF nextPhW(c) THEN
  230. length 88
  231. ELIF nextPhW(m) THEN
  232. length 134
  233. ELIF nextPhW(n) THEN
  234. length 168
  235. ELIF nextPhW(N) THEN
  236. length 99
  237. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  238. length 310
  239. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
  240. length 240
  241. ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
  242. length 363
  243. ELSE
  244. length 180
  245. ENDIF
  246. //FMT(vowel/o) // o_2)
  247. FMT(vietnam/o)
  248. endphoneme
  249. phoneme u
  250. vwl starttype #u endtype #u
  251. IF nextPhW(p) THEN
  252. length 110
  253. ELIF nextPhW(t[) THEN
  254. length 94
  255. ELIF nextPhW(c) THEN
  256. length 83
  257. ELIF nextPhW(m) THEN
  258. length 141
  259. ELIF nextPhW(n) THEN
  260. length 177
  261. ELIF nextPhW(N) THEN
  262. length 80
  263. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  264. length 300
  265. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
  266. length 240
  267. ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
  268. length 333
  269. ELSE
  270. length 180
  271. ENDIF
  272. //FMT(vnasal/u_n) //vowel/u_5)
  273. FMT(vietnam/u)
  274. endphoneme
  275. phoneme y
  276. vwl starttype #u endtype #u
  277. IF nextPhW(p) THEN
  278. length 102
  279. ELIF nextPhW(t[) THEN
  280. length 76
  281. ELIF nextPhW(c) THEN
  282. length 70
  283. ELIF nextPhW(m) THEN
  284. length 143
  285. ELIF nextPhW(n) THEN
  286. length 136
  287. ELIF nextPhW(N) THEN
  288. length 101
  289. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  290. length 300
  291. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
  292. length 240
  293. ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
  294. length 328
  295. ELSE
  296. length 180
  297. ENDIF
  298. //FMT(vowel/u#_5)
  299. FMT(vietnam/y, 80)
  300. endphoneme
  301. phoneme @
  302. vwl starttype #@ endtype #a
  303. IF nextPhW(p) THEN
  304. length 123
  305. ELIF nextPhW(t[) THEN
  306. length 123
  307. ELIF nextPhW(c) THEN
  308. length 139
  309. ELIF nextPhW(m) THEN
  310. length 127
  311. ELIF nextPhW(n) THEN
  312. length 160
  313. ELIF nextPhW(N) THEN
  314. length 156
  315. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  316. length 240
  317. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
  318. length 240
  319. ELSE
  320. length 180
  321. ENDIF
  322. // FMT(vowel/V) //vowel/@_2)
  323. FMT(vietnam/V_2)
  324. endphoneme
  325. phoneme @:
  326. vwl starttype #@ endtype #@
  327. IF nextPhW(p) THEN
  328. length 123
  329. ELIF nextPhW(t[) THEN
  330. length 123
  331. ELIF nextPhW(c) THEN
  332. length 139
  333. ELIF nextPhW(m) THEN
  334. length 127
  335. ELIF nextPhW(n) THEN
  336. length 160
  337. ELIF nextPhW(N) THEN
  338. length 156
  339. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  340. length 300
  341. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN
  342. length 240
  343. ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN
  344. length 333
  345. ELSE
  346. length 180
  347. ENDIF
  348. //FMT(vowel/@_2)
  349. FMT(vietnam/@_2)
  350. endphoneme
  351. // Diphthongs
  352. //===========
  353. phoneme aI
  354. vwl starttype #a endtype #i
  355. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  356. length 240
  357. ELSE
  358. length 200
  359. ENDIF
  360. FMT(vdiph/&i_2)
  361. endphoneme
  362. phoneme a:I
  363. vwl starttype #a endtype #i
  364. length 240 //250
  365. FMT(vdiph/ai)
  366. endphoneme
  367. phoneme @I
  368. vwl starttype #@ endtype #i
  369. length 240 //250
  370. FMT(vdiph/@i)
  371. endphoneme
  372. phoneme @:I
  373. vwl starttype #@ endtype #i
  374. length 240 //250
  375. FMT(vdiph/y#i)
  376. endphoneme
  377. phoneme eI
  378. vwl starttype #e endtype #i
  379. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  380. length 240
  381. ELSE
  382. length 200
  383. ENDIF
  384. FMT(vdiph/ei)
  385. endphoneme
  386. phoneme EI
  387. vwl starttype #e endtype #i
  388. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  389. length 240
  390. ELSE
  391. length 200
  392. ENDIF
  393. FMT(vdiph/eei)
  394. endphoneme
  395. phoneme OI
  396. vwl starttype #o endtype #i
  397. length 240
  398. FMT(vdiph/ooi_4)
  399. endphoneme
  400. phoneme oI
  401. vwl starttype #o endtype #i
  402. length 240
  403. FMT(vdiph/oi)
  404. endphoneme
  405. phoneme uI
  406. vwl starttype #u endtype #i
  407. length 240
  408. FMT(vdiph/ui)
  409. endphoneme
  410. phoneme yI
  411. vwl starttype #u endtype #i
  412. length 240
  413. FMT(vdiph/u-i)
  414. endphoneme
  415. phoneme aU
  416. vwl starttype #a endtype #u
  417. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  418. length 240
  419. ELSE
  420. length 200
  421. ENDIF
  422. FMT(vdiph/aau_4)
  423. endphoneme
  424. phoneme a:U
  425. vwl starttype #a endtype #u
  426. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  427. length 240
  428. ELSE
  429. length 200
  430. ENDIF
  431. FMT(vdiph/au)
  432. endphoneme
  433. phoneme eU
  434. vwl starttype #e endtype #u
  435. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  436. length 240
  437. ELSE
  438. length 200
  439. ENDIF
  440. FMT(vdiph/eu)
  441. endphoneme
  442. phoneme EU
  443. vwl starttype #e endtype #u
  444. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  445. length 240
  446. ELSE
  447. length 200
  448. ENDIF
  449. FMT(vdiph/eeu)
  450. endphoneme
  451. phoneme iU
  452. vwl starttype #i endtype #u
  453. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  454. length 240
  455. ELSE
  456. length 200
  457. ENDIF
  458. FMT(vdiph2/iu)
  459. endphoneme
  460. phoneme @U
  461. vwl starttype #@ endtype #u
  462. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  463. length 240
  464. ELSE
  465. length 200
  466. ENDIF
  467. FMT(vdiph/@u_3)
  468. endphoneme
  469. phoneme @:U
  470. vwl starttype #@ endtype #u
  471. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  472. length 240
  473. ELSE
  474. length 200
  475. ENDIF
  476. FMT(vdiph/@u)
  477. endphoneme
  478. phoneme i@
  479. vwl starttype #i endtype #@
  480. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  481. length 240
  482. ELSE
  483. length 200
  484. ENDIF
  485. FMT(vdiph2/ii@_3)
  486. endphoneme
  487. phoneme y@
  488. vwl starttype #i endtype #@
  489. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  490. length 240
  491. ELSE
  492. length 200
  493. ENDIF
  494. FMT(vdiph2/y-y#)
  495. endphoneme
  496. phoneme u@
  497. vwl starttype #u endtype #@
  498. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  499. length 240
  500. ELSE
  501. length 200
  502. ENDIF
  503. FMT(vdiph2/uu@)
  504. endphoneme
  505. // Addition Dipthongs
  506. phoneme o# // ông
  507. vwl starttype #o endtype #o
  508. IF nextPhW(k) THEN
  509. length 120
  510. ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  511. length 360
  512. ELSE
  513. length 200
  514. ENDIF
  515. //FMT(vnasal/a#u_n)
  516. FMT(vietnam/o#)
  517. endphoneme
  518. phoneme O# // ong
  519. vwl starttype #o endtype #o
  520. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  521. length 240
  522. ELIF nextPh(k) THEN
  523. length 140
  524. ELSE
  525. length 200
  526. ENDIF
  527. //FMT(vnasal/&u_n)
  528. FMT(vietnam/O_short_2)
  529. endphoneme
  530. phoneme o@
  531. vwl starttype #o endtype #a
  532. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  533. length 240
  534. ELSE
  535. length 200
  536. ENDIF
  537. FMT(vdiph2/oa)
  538. endphoneme
  539. phoneme o&
  540. vwl starttype #o endtype #o
  541. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  542. length 240
  543. ELSE
  544. length 200
  545. ENDIF
  546. FMT(vietnam/oe)
  547. endphoneme
  548. phoneme iE // iê : viết, giệc
  549. vwl starttype #i endtype #e
  550. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  551. length 240
  552. ELSE
  553. length 200
  554. ENDIF
  555. FMT(vietnam/ie_2)
  556. endphoneme
  557. phoneme Oi // oai sound
  558. vwl starttype #o endtype #i
  559. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  560. length 240
  561. ELSE
  562. length 200
  563. ENDIF
  564. FMT(vdiph/ooi_3)
  565. endphoneme
  566. // Vowel and Dipthong for south dialect
  567. phoneme O- // ôi southern sound
  568. vwl starttype #o endtype #i
  569. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  570. length 240
  571. ELSE
  572. length 180
  573. ENDIF
  574. FMT(vnasal/oi_n)
  575. endphoneme
  576. phoneme @- // ơi southern sound
  577. vwl starttype #o endtype #i
  578. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  579. length 240
  580. ELSE
  581. length 180
  582. ENDIF
  583. FMT(vdiph/@i_3)
  584. endphoneme
  585. phoneme u- // u southern sound
  586. vwl starttype #u endtype #u
  587. IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
  588. length 240
  589. ELSE
  590. length 180
  591. ENDIF
  592. FMT(vowel/u_3,70)
  593. endphoneme
  594. phoneme kh
  595. vls vel frc
  596. lengthmod 3
  597. Vowelin f1=0 f2=2300 200 400 f3=200 80 len=30
  598. Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20
  599. WAV(ustop/k_unasp) //ufric/x, 50)
  600. endphoneme
  601. phoneme k
  602. vls vel frc
  603. lengthmod 3
  604. Vowelin f1=0 f2=2300 200 400 f3=200 80 len=30
  605. Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20
  606. WAV(ustop/c)
  607. endphoneme
  608. phoneme N // si**ng**
  609. vcd lbv nas
  610. Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk
  611. lengthmod 12 // longer than 'n'
  612. length 163
  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)
  704. ENDIF
  705. IF prevPhW(isNasal) THEN
  706. FMT(w/w)
  707. ELSEIF prevPhW(h) THEN
  708. // none, [hw]
  709. ELSE
  710. FMT(w/_w)
  711. ENDIF
  712. ELSE
  713. // no vowel follows
  714. Vowelout len=50
  715. IF prevPh(#i) THEN
  716. FMT(w/iw_)
  717. ENDIF
  718. FMT(w/w_)
  719. ENDIF
  720. endphoneme