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_kyrgyz 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680
  1. // ***************************************************************************/
  2. // * Kyrgyz Language ky ph_kyrgyz *
  3. // * Original Author Joshua Meyer 7-1-2016 *
  4. // * Contact info: [email protected] *
  5. // ***************************************************************************/
  6. // * This program is free software; you can redistribute it and/or modify *
  7. // * it under the terms of the GNU General Public License as published by *
  8. // * the Free Software Foundation; either version 3 of the License, or *
  9. // * (at your option) any later version. *
  10. // * *
  11. // * This program is distributed in the hope that it will be useful, *
  12. // * but WITHOUT ANY WARRANTY; without even the implied warranty of *
  13. // * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
  14. // * GNU General Public License for more details. *
  15. // * *
  16. // * You should have received a copy of the GNU General Public License *
  17. // * along with this program; if not, see: *
  18. // * <http://www.gnu.org/licenses/>. *
  19. // ***************************************************************************/
  20. // ============ //
  21. // SHORT VOWELS //
  22. // ============ //
  23. // ''atai'' /a/ f1 840 f2 1540 f3 2892 f4 3269
  24. phoneme a
  25. vwl starttype #@ endtype #@
  26. ipa ɑ
  27. unstressed
  28. length 190
  29. FMT(vowel/aa_6)
  30. endphoneme
  31. phoneme e
  32. ipa e
  33. vwl starttype #e endtype #e
  34. length 170
  35. FMT(vowel/e)
  36. endphoneme
  37. phoneme i
  38. ipa i
  39. vwl starttype #i endtype #i
  40. length 170
  41. IfNextVowelAppend(;)
  42. FMT(vowel/i)
  43. endphoneme
  44. phoneme o
  45. ipa o
  46. vwl starttype #o endtype #o
  47. length 200
  48. FMT(vowel/o_8)
  49. endphoneme
  50. phoneme u
  51. ipa u
  52. vwl starttype #u endtype #u
  53. length 200
  54. FMT(vowel/u_bck)
  55. endphoneme
  56. phoneme I
  57. ipa ɯ
  58. vwl starttype #@ endtype #@
  59. length 180
  60. FMT(vowel/u#_7)
  61. endphoneme
  62. phoneme y
  63. ipa y
  64. vwl starttype #u endtype #u
  65. length 180
  66. FMT(vowel/y)
  67. endphoneme
  68. phoneme O
  69. ipa oe
  70. vwl starttype #@ endtype #@
  71. length 150
  72. FMT(vowel/oe)
  73. endphoneme
  74. // ============ //
  75. // LONG VOWELS //
  76. // ============ //
  77. phoneme a:
  78. ipa ɑ:
  79. vwl starttype #@ endtype #@
  80. length 325
  81. FMT(vowel/aa_6)
  82. endphoneme
  83. phoneme e:
  84. ipa e:
  85. vwl starttype #e endtype #e
  86. length 300
  87. FMT(vowel/e)
  88. endphoneme
  89. phoneme i:
  90. ipa i:
  91. vwl starttype #i endtype #i
  92. length 300
  93. IfNextVowelAppend(;)
  94. FMT(vowel/i)
  95. endphoneme
  96. phoneme o:
  97. ipa o:
  98. vwl starttype #o endtype #o
  99. length 325
  100. FMT(vowel/o_8)
  101. endphoneme
  102. phoneme u:
  103. ipa u:
  104. vwl starttype #u endtype #u
  105. length 325
  106. FMT(vowel/u_bck)
  107. endphoneme
  108. phoneme I:
  109. ipa ɯ:
  110. vwl starttype #@ endtype #@
  111. length 300
  112. FMT(vowel/u#_7)
  113. endphoneme
  114. phoneme y:
  115. ipa y:
  116. vwl starttype #u endtype #u
  117. length 275
  118. FMT(vowel/y)
  119. endphoneme
  120. phoneme O:
  121. ipa oe:
  122. vwl starttype #@ endtype #@
  123. length 275
  124. FMT(vowel/oe)
  125. endphoneme
  126. // ========== //
  127. // CONSONANTS //
  128. // ========== //
  129. phoneme r
  130. ipa r
  131. liquid
  132. trill
  133. lengthmod 6
  134. Vowelin f1=0 f2=1600 -300 300 f3=-200 80
  135. Vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk
  136. FMT(r3/r_trill2) addWav(r3/r_trill2.wav, 65)
  137. endphoneme
  138. phoneme l
  139. ipa l
  140. liquid
  141. starttype l endtype l
  142. lengthmod 7
  143. NextVowelStarts
  144. VowelStart(l/l@)
  145. VowelStart(l/la, -10)
  146. VowelStart(l/le, -15)
  147. VowelStart(l/li, -15)
  148. VowelStart(vwl_fr/lo, -10)
  149. VowelStart(l/lu, -20)
  150. EndSwitch
  151. IF prevPh(#@) THEN
  152. VowelEnding(l/xl, -50)
  153. ELIF prevPh(isVowel) THEN
  154. VowelEnding(l/xl, -40)
  155. ENDIF
  156. IF prevPh(isPause) OR thisPh(isWordStart) THEN
  157. FMT(l/_l)
  158. ENDIF
  159. IF prevPh(isRhotic) OR prevPh(isNasal) THEN
  160. FMT(l/_l)
  161. ENDIF
  162. IF prevPh(t) THEN
  163. FMT(l/tl)
  164. ENDIF
  165. IF prevPh(l/) THEN
  166. FMT(l/l_long) // double l, make it longer
  167. ENDIF
  168. FMT(l/l)
  169. endphoneme
  170. phoneme L
  171. // 'dark' [l]
  172. ipa l-
  173. liquid
  174. lengthmod 7
  175. IF nextPh(isVowel) THEN
  176. ChangePhoneme(l)
  177. ENDIF
  178. CALL vowelstart_l
  179. IF prevPhW(j) THEN
  180. FMT(l/L2_eL)
  181. ENDIF
  182. IF prevPhW(w) THEN
  183. FMT(l/L2_uL)
  184. ENDIF
  185. PrevVowelEndings
  186. VowelEnding(l/L2_@L, -60)
  187. VowelEnding(l/L2_aL, -50)
  188. VowelEnding(l/L2_eL, -40)
  189. VowelEnding(l/L2_iL, -30)
  190. VowelEnding(l/L2_oL, -50)
  191. VowelEnding(l/L2_uL, -40)
  192. EndSwitch
  193. endphoneme
  194. phoneme j // **y**es
  195. ipa j
  196. liquid palatal starttype #i
  197. lengthmod 7
  198. IF nextPhW(isVowel) THEN
  199. NextVowelStarts
  200. VowelStart(j/j@)
  201. VowelStart(j/ja)
  202. VowelStart(j/je)
  203. VowelStart(j/ji)
  204. VowelStart(j/jo)
  205. VowelStart(j/ju)
  206. EndSwitch
  207. VowelEnding(j/xj, -30)
  208. IF prevPh(isPause) THEN
  209. FMT(j/_j)
  210. ENDIF
  211. ELSE
  212. // no vowel follows
  213. Vowelout len=70
  214. FMT(j/j_)
  215. ENDIF
  216. endphoneme
  217. phoneme m
  218. ipa m
  219. vcd blb nasal
  220. Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk
  221. lengthmod 4
  222. IF KlattSynth THEN
  223. Vowelin f1=0 f2=1000 -50 -200 f3=-200 80
  224. IF nextPh(isPause2) THEN
  225. FMT(klatt/m_)
  226. ENDIF
  227. FMT(klatt/m)
  228. ENDIF
  229. NextVowelStarts
  230. VowelStart(m/m@)
  231. VowelStart(m/ma)
  232. VowelStart(m/me)
  233. VowelStart(m/mi)
  234. VowelStart(m/mo)
  235. VowelStart(m/mu)
  236. EndSwitch
  237. IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
  238. FMT(m/mj)
  239. ELIF prevPh(isPause) THEN
  240. FMT(m/_m)
  241. ELIF nextPh(isNotVowel) THEN
  242. FMT(m/m_)
  243. ENDIF
  244. endphoneme
  245. phoneme n
  246. ipa n
  247. vcd alv nasal
  248. Vowelout f1=2 f2=1500 -300 250 f3=-100 80 rms=20 brk
  249. lengthmod 4
  250. IF KlattSynth THEN
  251. Vowelin f1=0 f2=1500 -200 200 f3=0 80
  252. FMT(klatt/n)
  253. ENDIF
  254. NextVowelStarts
  255. VowelStart(n/n@)
  256. VowelStart(n/na)
  257. VowelStart(n/ne)
  258. VowelStart(n/ni)
  259. VowelStart(n/no)
  260. VowelStart(n/nu)
  261. EndSwitch
  262. IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
  263. FMT(n/nj)
  264. ELIF prevPh(isPause) OR prevPh(n) THEN
  265. FMT(n/_n)
  266. ELIF nextPh(isNotVowel) THEN
  267. FMT(n/n_)
  268. ENDIF
  269. endphoneme
  270. phoneme N // si**ng**
  271. ipa N
  272. vcd vel nasal
  273. Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk
  274. lengthmod 8 // longer than 'n'
  275. IF KlattSynth THEN
  276. Vowelin f1=0 f2=2100 50 300 f3=0 80
  277. IF nextPh(isPause2) THEN
  278. FMT(klatt/nn_)
  279. ENDIF
  280. FMT(klatt/nn)
  281. ENDIF
  282. NextVowelStarts
  283. VowelStart(nn/nn@)
  284. VowelStart(nn/nna)
  285. VowelStart(nn/nne)
  286. VowelStart(nn/nni)
  287. VowelStart(nn/nno)
  288. VowelStart(nn/nnu)
  289. EndSwitch
  290. IF prevPh(#i) THEN
  291. VowelEnding(nn/inn, -40)
  292. ENDIF
  293. IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
  294. FMT(nn/nnj)
  295. ELIF prevPh(isPause) THEN
  296. FMT(nn/_nn)
  297. ELIF nextPh(isNotVowel) THEN
  298. FMT(nn/nn_)
  299. ENDIF
  300. endphoneme
  301. phoneme * // flap
  302. ipa ɾ
  303. vcd alv flp rhotic
  304. brkafter
  305. lengthmod 3
  306. IF nextPh(#e) OR nextPh(#i) THEN
  307. Vowelin f1=0 f2=1500 -300 300 f3=-200 80
  308. FMT(d/tap1) addWav(r3/rx, 150)
  309. FMT(d/tap1) addWav(r3/rx, 150)
  310. ENDIF
  311. Vowelin f1=2 f2=1500 -300 300 f3=-200 80
  312. IF nextPh(#a) THEN
  313. FMT(d/tap3) addWav(r3/rx, 200)
  314. ENDIF
  315. IF nextPh(r) THEN
  316. FMT(d/dr)
  317. ENDIF
  318. Vowelout f1=3 f2=1500 -400 300 f3=-200 80 rms=35 len=50
  319. Vowelin f1=0 f2=1500 -300 300 f3=-200 80
  320. FMT(d/tap3) addWav(r3/rx, 200)
  321. endphoneme
  322. phoneme f
  323. ipa f
  324. vls lbd frc
  325. voicingswitch v
  326. lengthmod 3
  327. Vowelout f1=0 f2=1000 -500 -350 f3=-200 80
  328. WAV(ufric/f)
  329. endphoneme
  330. phoneme v // english v for now
  331. ipa v
  332. vwl starttype #a endtype #@
  333. length 170
  334. ChangeIfDiminished(@)
  335. FMT(vowel/V_6)
  336. endphoneme
  337. phoneme b
  338. ipa b
  339. vcd blb stop
  340. voicingswitch p
  341. Vowelout f1=2 f2=1000 -500 -300 f3=-300 80 brk
  342. lengthmod 5
  343. IF PreVoicing THEN
  344. FMT(b/xb)
  345. ENDIF
  346. IF KlattSynth THEN
  347. Vowelin f1=1 f2=1000 -500 -300 f3=-300 80
  348. IF nextPh(isPause2) THEN
  349. FMT(klatt/b) addWav(x/b_)
  350. ENDIF
  351. FMT(klatt/b) addWav(x/b)
  352. ENDIF
  353. IF nextPh(isPause2) THEN
  354. FMT(b/b_) addWav(x/b_)
  355. ELIF nextPh(@-) THEN
  356. FMT(b/b@2) addWav(x/b)
  357. ELIF nextPh(#@) THEN
  358. FMT(b/b@) addWav(x/b)
  359. ELIF nextPh(#a) THEN
  360. FMT(b/ba) addWav(x/b)
  361. ELIF nextPh(#e) THEN
  362. FMT(b/be) addWav(x/b)
  363. ELIF nextPh(#i) THEN
  364. FMT(b/bi) addWav(x/b)
  365. ELIF nextPh(#o) THEN
  366. FMT(b/bo) addWav(x/b)
  367. ELIF nextPh(#u) THEN
  368. FMT(b/bu) addWav(x/b)
  369. ENDIF
  370. FMT(b/b) addWav(x/b)
  371. endphoneme
  372. phoneme ts
  373. ipa ts
  374. import_phoneme consonants/ts
  375. endphoneme
  376. phoneme tS // **ch**urch
  377. ipa tS
  378. vls pla afr sibilant
  379. voicingswitch dZ
  380. lengthmod 2
  381. Vowelin f1=0 f2=2300 200 400 f3=-100 80
  382. IF nextPh(isPause2) THEN
  383. WAV(ustop/tsh_)
  384. ENDIF
  385. WAV(ustop/tsh)
  386. endphoneme
  387. phoneme dZ // **j**udge
  388. ipa dZ
  389. vcd pla afr sibilant
  390. voicingswitch tS
  391. lengthmod 5
  392. Vowelin f1=2 f2=2300 200 400 f3=100 80
  393. Vowelout f1=2 f2=2300 250 300 f3=100 80 brk
  394. IF PreVoicing THEN
  395. FMT(dzh/xdzh)
  396. ENDIF
  397. IF nextPh(isPause2) THEN
  398. FMT(dzh/dzh_) addWav(x/dzh_)
  399. ENDIF
  400. FMT(dzh/dzh) addWav(x/dzh)
  401. endphoneme
  402. phoneme g
  403. vcd vel stop
  404. voicingswitch k
  405. lengthmod 5
  406. Vowelin f1=2 f2=2300 200 300 f3=-300 80
  407. Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
  408. IF PreVoicing THEN
  409. FMT(g/xg)
  410. ENDIF
  411. IF nextPh(isPause2) THEN
  412. FMT(g/g_) addWav(x/g_)
  413. ENDIF
  414. FMT(g/g) addWav(x/g2, 150)
  415. endphoneme
  416. phoneme k
  417. vls vel stop
  418. voicingswitch g
  419. lengthmod 2
  420. Vowelin f1=0 f2=2300 200 300 f3=-200 80
  421. Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20
  422. IF KlattSynth THEN
  423. Vowelout f1=0 f2=2300 200 300 f3=-200 80 rms=20
  424. ENDIF
  425. IF nextPh(isPause2) THEN
  426. WAV(ustop/k_)
  427. ELIF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN
  428. WAV(ustop/kr)
  429. // ELIF nextPh(#i) OR nextPh(;) THEN
  430. // WAV(ustop/ki)
  431. ELIF nextPh(l) THEN
  432. WAV(ustop/kl)
  433. ELIF nextPh(@-) THEN
  434. WAV(ustop/k_unasp, 70)
  435. ENDIF
  436. WAV(ustop/k)
  437. endphoneme
  438. phoneme z
  439. ipa z
  440. vcd alv frc sibilant
  441. voicingswitch s
  442. lengthmod 6
  443. Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50
  444. IF KlattSynth THEN
  445. Vowelin f1=0 f2=1390 -300 300 f3=0 0
  446. Vowelout f1=1 f2=1390 -300 300 f3=-100 60 len=50 brk
  447. ENDIF
  448. IF nextPh(isPause2) THEN
  449. FMT(voc/z_) addWav(ufric/s_, 70)
  450. ENDIF
  451. FMT(voc/z) addWav(ufric/s_, 85)
  452. endphoneme
  453. phoneme G
  454. vcd uvl frc
  455. ipa ʁ
  456. lengthmod 6
  457. IF nextPh(isPause2) THEN
  458. FMT(voc/Q_ulv) addWav(ufric/xx, 60)
  459. ENDIF
  460. FMT(voc/Q_ulv) addWav(ufric/xx, 80)
  461. endphoneme
  462. phoneme p
  463. ipa p
  464. vls blb stop
  465. voicingswitch b
  466. lengthmod 2
  467. Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
  468. Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22
  469. IF nextPh(isPause2) THEN
  470. WAV(ustop/p_)
  471. ELIF nextPh(r) THEN
  472. WAV(ustop/pr, 70)
  473. ELIF nextPh(R) OR nextPh(R2) THEN
  474. WAV(ustop/pr)
  475. ELIF nextPh(@-) THEN
  476. WAV(ustop/p_unasp)
  477. ELIF nextPh(l) THEN
  478. WAV(ustop/pl)
  479. ENDIF
  480. WAV(ustop/p)
  481. endphoneme
  482. phoneme t // dental /t/
  483. ipa t[
  484. vls dnt stop
  485. voicingswitch d
  486. lengthmod 2
  487. Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16
  488. Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
  489. IF nextPh(isPause2) THEN
  490. WAV(ustop/t_dnt, 35)
  491. ENDIF
  492. WAV(ustop/t_hi, 70)
  493. endphoneme
  494. phoneme d // dental /d/
  495. ipa d[
  496. vcd dnt stop
  497. voicingswitch t
  498. lengthmod 5
  499. Vowelin f1=2 f2=1500 -300 300 f3=-150 80
  500. Vowelout f1=2 f2=1500 -300 300 f3=-150 80
  501. IF PreVoicing THEN
  502. FMT(d/xd)
  503. ENDIF
  504. IF nextPh(isPause2) THEN
  505. FMT(d/d_) addWav(x/d_)
  506. ELIF nextPh(r) THEN
  507. FMT(d/dr) addWav(x/d_dnt, 100)
  508. ENDIF
  509. FMT(d/d) addWav(x/d_dnt, 100)
  510. endphoneme
  511. phoneme q
  512. ipa q
  513. vls uvl stop
  514. lengthmod 2
  515. Vowelin f1=1 f2=1700 0 200 f3=-300 80 gpaus f4 rms=30
  516. Vowelout f1=1 f2=1700 -100 200 f3=-300 80 f4 rms=35
  517. IF nextPh(isPause2) THEN
  518. WAV(ustop/q, 40)
  519. ELIF nextPh(#u) THEN
  520. WAV(ustop/q_u, 80)
  521. ENDIF
  522. WAV(ustop/q, 48)
  523. endphoneme
  524. phoneme s
  525. ipa s
  526. vls alv frc sibilant
  527. voicingswitch z
  528. lengthmod 3
  529. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  530. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  531. IF nextPh(isPause) THEN
  532. WAV(ufric/s_)
  533. ELIF nextPh(p) OR nextPh(t) OR nextPh(k) THEN
  534. WAV(ufric/s!)
  535. ENDIF
  536. WAV(ufric/s)
  537. endphoneme
  538. phoneme S // **sh**op
  539. ipa S
  540. vls pla frc sibilant
  541. voicingswitch Z
  542. lengthmod 3
  543. Vowelin f1=0 f2=2100 100 300 f3=-100 80
  544. Vowelout f1=0 f2=2100 100 300 f3=-100 80
  545. IF nextPh(isPause) THEN
  546. WAV(ufric/sh_)
  547. ENDIF
  548. WAV(ufric/sh)
  549. endphoneme
  550. phoneme X
  551. ipa X
  552. vls uvl frc
  553. voicingswitch Q"
  554. lengthmod 3
  555. IF nextPh(isPause) THEN
  556. WAV(ufric/xx, 70)
  557. ENDIF
  558. WAV(ufric/xx,80)
  559. endphoneme