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