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

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