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

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