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

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