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_estonian 6.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437
  1. //====================================================
  2. // Estonian
  3. //====================================================
  4. phoneme : // Lengthen previous vowel by "length"
  5. virtual
  6. length 160
  7. endphoneme
  8. phoneme a
  9. vowel starttype #a endtype #a
  10. length 170
  11. ChangeIfUnstressed(A)
  12. FMT(vowel/aa_9)
  13. endphoneme
  14. phoneme a:
  15. vowel starttype #a endtype #a
  16. length 340
  17. FMT(vowel/aa)
  18. endphoneme
  19. phoneme A
  20. vowel starttype #a endtype #a
  21. length 170
  22. FMT(vowel/aa_8)
  23. endphoneme
  24. phoneme A1
  25. vowel starttype #a endtype #a
  26. length 255
  27. FMT(vowel/aa_8)
  28. endphoneme
  29. phoneme e
  30. vowel starttype #e endtype #e
  31. length 160
  32. ChangeIfUnstressed(E)
  33. FMT(vowel/e_7)
  34. endphoneme
  35. phoneme e:
  36. vowel starttype #e endtype #e
  37. length 320
  38. FMT(vowel/e_7)
  39. endphoneme
  40. phoneme E
  41. vowel starttype #e endtype #e
  42. length 160
  43. FMT(vowel/ee_4)
  44. endphoneme
  45. phoneme E1
  46. vowel starttype #e endtype #e
  47. length 240
  48. FMT(vowel/ee_4)
  49. endphoneme
  50. phoneme i
  51. vowel starttype #i endtype #i
  52. length 140
  53. ChangeIfUnstressed(I)
  54. FMT(vowel/i_2)
  55. endphoneme
  56. phoneme i:
  57. vowel starttype #i endtype #i
  58. length 280
  59. FMT(vowel/i_7)
  60. endphoneme
  61. phoneme I
  62. vowel starttype #i endtype #i
  63. length 140
  64. FMT(vowel/i_3)
  65. endphoneme
  66. phoneme I1
  67. vowel starttype #i endtype #i
  68. length 210
  69. FMT(vowel/i_3)
  70. endphoneme
  71. phoneme i1
  72. vowel starttype #i endtype #i
  73. length 40
  74. FMT(vowel/ii_5)
  75. endphoneme
  76. phoneme o
  77. vowel starttype #o endtype #o
  78. length 160
  79. ChangeIfUnstressed(O)
  80. FMT(vowel/o_mid)
  81. endphoneme
  82. phoneme o:
  83. vowel starttype #o endtype #o
  84. length 320
  85. FMT(vowel/o)
  86. endphoneme
  87. phoneme O
  88. vowel starttype #o endtype #o
  89. length 150
  90. FMT(vowel/o_mid)
  91. endphoneme
  92. phoneme O1
  93. vowel starttype #o endtype #o
  94. length 225
  95. FMT(vowel/o_mid)
  96. endphoneme
  97. phoneme u
  98. vowel starttype #u endtype #u
  99. length 145
  100. ChangeIfUnstressed(U)
  101. FMT(vowel/u_3)
  102. endphoneme
  103. phoneme u: // TEST
  104. vowel starttype #u endtype #u
  105. length 290
  106. FMT(vowel/u_3)
  107. endphoneme
  108. phoneme U // TEST
  109. vowel starttype #u endtype #u
  110. length 145
  111. FMT(vowel/u_5)
  112. endphoneme
  113. phoneme U1 // TEST
  114. vowel starttype #u endtype #u
  115. length 218
  116. FMT(vowel/u_5)
  117. endphoneme
  118. // õ
  119. phoneme 8
  120. vowel starttype #@ endtype #@
  121. length 165
  122. FMT(vowel/8_2)
  123. endphoneme
  124. phoneme 8:
  125. vowel starttype #@ endtype #@
  126. length 330
  127. FMT(vowel/8_7)
  128. endphoneme
  129. // ä
  130. phoneme &
  131. vowel starttype #a endtype #a
  132. length 175
  133. FMT(vowel/&)
  134. endphoneme
  135. phoneme &:
  136. vowel starttype #a endtype #a
  137. length 350
  138. FMT(vowel/&)
  139. endphoneme
  140. // ö
  141. phoneme Y
  142. vowel starttype #@ endtype #@
  143. length 165
  144. FMT(vowel/y#)
  145. endphoneme
  146. phoneme Y:
  147. vowel starttype #@ endtype #@
  148. length 330
  149. FMT(vowel/y#)
  150. endphoneme
  151. // ü
  152. phoneme y
  153. vowel starttype #u endtype #u
  154. length 145
  155. FMT(vowel/y)
  156. endphoneme
  157. phoneme y:
  158. vowel starttype #u endtype #u
  159. length 290
  160. FMT(vowel/y)
  161. endphoneme
  162. // Diphthongs
  163. //===========
  164. phoneme &i
  165. vowel starttype #a endtype #i
  166. length 315
  167. long
  168. FMT(vdiph/&i)
  169. endphoneme
  170. phoneme Yi
  171. vowel starttype #@ endtype #i
  172. length 305
  173. long
  174. FMT(vdiph/@i)
  175. endphoneme
  176. phoneme yi
  177. vowel starttype #u endtype #i
  178. length 285
  179. long
  180. FMT(vdiph/yi)
  181. endphoneme
  182. // phoneme oe
  183. // phoneme ue
  184. // phoneme qe
  185. // phoneme xe
  186. // phoneme ce
  187. // phoneme qa
  188. // phoneme ca
  189. phoneme 8u
  190. vowel starttype #@ endtype #u
  191. length 310
  192. long
  193. FMT(vdiph/8u)
  194. endphoneme
  195. // phoneme xu
  196. // CONSONANTS
  197. //===========
  198. phoneme R2 // this is [R2], but shorter
  199. liquid
  200. trill
  201. lengthmod 6
  202. ipa r
  203. Vowelin f1=0 f2=1700 -300 300 f3=-300 80
  204. Vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk
  205. FMT(r3/r_trill_short) addWav(r3/r_trill.wav, 50)
  206. endphoneme
  207. phoneme v // approximant, not fricative
  208. vcd lbd frc
  209. lengthmod 6
  210. voicingswitch f
  211. Vowelin f1=0 f2=1000 -300 -200 f3=-300 100
  212. Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50
  213. IF nextPh(isPause2) THEN
  214. FMT(voc/v_)
  215. ENDIF
  216. FMT(voc/v)
  217. endphoneme
  218. phoneme t // dental variant of /t/
  219. vls dnt stop
  220. voicingswitch d[
  221. lengthmod 2
  222. Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16
  223. Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
  224. IF nextPh(isPause2) THEN
  225. WAV(ustop/t_dnt, 35)
  226. ENDIF
  227. WAV(ustop/t_hi, 40)
  228. endphoneme
  229. phoneme d
  230. vcd dnt stop
  231. voicingswitch t
  232. lengthmod 5
  233. Vowelin f1=2 f2=1700 -100 200 f3=0 80
  234. Vowelout f1=2 f2=1700 -100 200 f3=0 80 rms=20
  235. IF PreVoicing THEN
  236. FMT(d/xd)
  237. ENDIF
  238. IF nextPh(isPause2) THEN
  239. FMT(d/d_) addWav(x/d_)
  240. ELIF nextPh(r) THEN
  241. FMT(d/dr) addWav(x/d_dnt, 60)
  242. ENDIF
  243. FMT(d/d) addWav(x/d_dnt, 60)
  244. endphoneme
  245. phoneme p
  246. import_phoneme base2/p
  247. voicingswitch b
  248. endphoneme
  249. phoneme r // used for [r] when not preceding a vowel
  250. liquid
  251. lengthmod 2
  252. IF nextPh(n) THEN
  253. FMT(r3/r_n) addWav(r3/rx)
  254. ENDIF
  255. FMT(r3/r_) addWav(r3/rx)
  256. endphoneme
  257. phoneme k // tasasemad klõklsud
  258. vls vel stop
  259. lengthmod 2
  260. voicingswitch g
  261. Vowelin f1=0 f2=2300 200 400 f3=-100 80
  262. Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20
  263. IF nextPh(isPause) THEN
  264. WAV(ustop/k_unasp)
  265. ENDIF
  266. IF nextPh(#i) OR nextPh(l^) THEN
  267. WAV(ustop/ki, 40)
  268. ENDIF
  269. IF nextPh(l) THEN
  270. WAV(ustop/kl, 40)
  271. ENDIF
  272. IF nextPh(r) THEN
  273. WAV(ustop/kr, 40)
  274. ENDIF
  275. IF nextPh(k) THEN
  276. WAV(ustop/k_unasp, 10)
  277. ENDIF
  278. WAV(ustop/k_unasp, 20) // weaker
  279. endphoneme
  280. phoneme s2 // second part of long [s]
  281. import_phoneme consonants/s2
  282. endphoneme
  283. phoneme h
  284. vls glt apr
  285. lengthmod 3
  286. IF nextPh(#@) THEN
  287. WAV(h/h@)
  288. ELIF nextPh(#a) THEN
  289. WAV(h/ha)
  290. ELIF nextPh(#e) THEN
  291. WAV(h/he)
  292. ELIF nextPh(#i) THEN
  293. WAV(h/hi)
  294. ELIF nextPh(#o) THEN
  295. WAV(h/hu_fi, 70)
  296. ELIF nextPh(#u) THEN
  297. WAV(h/hu_fi, 80)
  298. ENDIF
  299. WAV(h/h_, 70) // no vowel following
  300. endphoneme
  301. // Palatalized versions of consonants
  302. phoneme s^
  303. vls alv frc sibilant palatal
  304. voicingswitch z
  305. lengthmod 3
  306. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  307. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  308. // Vowelin f1=1 f2=2700 400 600 f3=200 70 rate len=70
  309. // Vowelout f1=1 f2=2700 400 600 f3=200 70 rate len=70
  310. WAV(ufric/s_pal)
  311. endphoneme
  312. //phoneme t;
  313. // import_phoneme pl/t;
  314. //endphoneme
  315. //phoneme d
  316. // import_phoneme pl/d
  317. //endphoneme
  318. //phoneme d;
  319. // import_phoneme pl/d;
  320. //endphoneme
  321. phoneme t^
  322. vls pal stop palatal
  323. lengthmod 2
  324. voicingswitch d^
  325. Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
  326. Vowelout f1=1 f2=2700 400 600 f3=200 70 len=50 colr=1
  327. IF nextPh(isPause2) THEN
  328. WAV(ustop/t_pzd, 30)
  329. ENDIF
  330. WAV(ustop/t_pzd, 60)
  331. endphoneme
  332. phoneme d^
  333. vcd alv stop palatal
  334. lengthmod 5
  335. voicingswitch t^
  336. Vowelin f1=2 f2=2700 400 600 f3=200 80 rate len=80
  337. Vowelout f1=2 f2=2700 400 600 f3=200 80 rate len=100 colr=1
  338. IF PreVoicing THEN
  339. FMT(d/xd_pzd)
  340. ENDIF
  341. IF nextPh(isPause2) THEN
  342. FMT(d/d_) addWav(x/d_pzd, 40)
  343. ELIF nextPh(isRhotic) THEN
  344. FMT(d/dr) addWav(x/d_pzd, 80)
  345. ENDIF
  346. FMT(d/d) addWav(x/d_pzd, 80)
  347. endphoneme