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_russian 6.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414
  1. phoneme l
  2. import_phoneme en/l
  3. endphoneme
  4. phoneme r
  5. liquid
  6. trill
  7. lengthmod 7
  8. NextVowelStarts
  9. VowelStart(r/r@, -15)
  10. VowelStart(r/ra, -15)
  11. VowelStart(r/re, -15)
  12. VowelStart(r/ri, -15)
  13. VowelStart(r/ro, -15)
  14. VowelStart(r/ru, -15)
  15. EndSwitch
  16. IF nextPh(isNotVowel) THEN
  17. ChangePhoneme(r/)
  18. ENDIF
  19. IF prevPhW(t) OR prevPhW(p) OR prevPhW(k) THEN
  20. FMT(r/trr)
  21. ENDIF
  22. FMT(r/rr)
  23. endphoneme
  24. phoneme r/ // used for [r] when not preceding a vowel
  25. liquid
  26. lengthmod 2
  27. IF nextPh(n) THEN
  28. FMT(r3/r_n) addWav(r3/rx)
  29. ENDIF
  30. FMT(r3/r_) addWav(r3/rx)
  31. endphoneme
  32. phoneme ts
  33. import_phoneme consonants/ts
  34. endphoneme
  35. phoneme dZ;
  36. vcd pal afr sibilant palatal
  37. voicingswitch tS;
  38. lengthmod 5
  39. Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
  40. IF PreVoicing THEN
  41. FMT(dzh/xdzh)
  42. ENDIF
  43. IF nextPh(isPause2) THEN
  44. FMT(dzh/dzh_) addWav(x/dzh_)
  45. ENDIF
  46. endphoneme
  47. phoneme tS;
  48. vls pal afr sibilant palatal
  49. voicingswitch dZ;
  50. lengthmod 2
  51. Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
  52. WAV(ustop/ts_pzd)
  53. endphoneme
  54. // Palatalized versions of consonants
  55. phoneme t
  56. import_phoneme pl/t
  57. endphoneme
  58. phoneme t;
  59. import_phoneme pl/t;
  60. endphoneme
  61. phoneme d
  62. import_phoneme pl/d
  63. endphoneme
  64. phoneme d;
  65. import_phoneme pl/d;
  66. endphoneme
  67. phoneme m;
  68. import_phoneme ro/m;
  69. endphoneme
  70. phoneme I^ // "silent i", palatilizes the preceding consonant
  71. vowel starttype #i endtype #i
  72. unstressed nonsyllabic
  73. Length 70
  74. IF nextPh(isVowel) THEN
  75. ChangePhoneme(;)
  76. ENDIF
  77. IF prevPh(m;) THEN
  78. FMT(vwl_ro/mi)
  79. ENDIF
  80. FMT(vwl_ru/ii-)
  81. endphoneme
  82. //*******************************************************************
  83. // VOWELS
  84. //*******************************************************************
  85. phoneme i
  86. vowel starttype #i endtype #i
  87. Length 100
  88. FMT(vwl_ru/i)
  89. endphoneme
  90. phoneme I#
  91. vowel starttype #i endtype #i
  92. Length 80
  93. IF nextVowel(isMaxStress) THEN
  94. ChangePhoneme(I)
  95. ENDIF
  96. IF thisPh(isMaxStress) THEN
  97. ChangePhoneme(i)
  98. ENDIF
  99. FMT(vwl_ru/ii#)
  100. endphoneme
  101. phoneme y
  102. vowel starttype #i endtype #i
  103. Length 100
  104. FMT(vwl_ru/i#)
  105. endphoneme
  106. phoneme I
  107. vowel starttype #i endtype #i
  108. Length 80
  109. IF thisPh(isMaxStress) THEN
  110. IF prevPhW(j) THEN
  111. ChangePhoneme(a)
  112. ELSE
  113. ChangePhoneme(i)
  114. ENDIF
  115. ENDIF
  116. FMT(vwl_ru/ii)
  117. endphoneme
  118. phoneme I2
  119. vowel starttype #i endtype #i
  120. Length 80
  121. IF thisPh(isMaxStress) THEN
  122. ChangePhoneme(e)
  123. ENDIF
  124. IF prevPhW(isPalatal) THEN
  125. ChangePhoneme(I)
  126. ENDIF
  127. FMT(vwl_ru/ii)
  128. endphoneme
  129. phoneme I3
  130. vowel starttype #i endtype #i
  131. Length 80
  132. IF thisPh(isMaxStress) THEN
  133. IF prevPhW(j) THEN
  134. ChangePhoneme(e)
  135. ELSE
  136. ChangePhoneme(ja)
  137. ENDIF
  138. ENDIF
  139. IF prevPhW(isPalatal) THEN
  140. ChangePhoneme(I)
  141. ENDIF
  142. FMT(vwl_ru/ii)
  143. endphoneme
  144. phoneme E
  145. vowel starttype #e endtype #e
  146. Length 200
  147. FMT(vwl_ru/e)
  148. endphoneme
  149. phoneme E#
  150. vowel starttype #e endtype #e
  151. Length 100
  152. IF thisPh(isMaxStress) THEN
  153. IF prevPhW(j) THEN
  154. ChangePhoneme(e)
  155. ELSE
  156. ChangePhoneme(E)
  157. ENDIF
  158. ENDIF
  159. FMT(vwl_ru/E#)
  160. endphoneme
  161. phoneme E2
  162. vowel starttype #e endtype #e
  163. Length 80
  164. IF nextVowel(isMaxStress) THEN
  165. IF prevPh(j) THEN
  166. ChangePhoneme(I3)
  167. ELSE
  168. ChangePhoneme(E#)
  169. ENDIF
  170. ENDIF
  171. IF thisPh(isMaxStress) THEN
  172. IF prevPhW(j) THEN
  173. ChangePhoneme(e)
  174. ELSE
  175. ChangePhoneme(E)
  176. ENDIF
  177. ENDIF
  178. FMT(vwl_ru/E@)
  179. endphoneme
  180. phoneme E3
  181. vowel starttype #e endtype #e
  182. Length 80
  183. IF nextVowel(isMaxStress) THEN
  184. ChangePhoneme(I)
  185. ENDIF
  186. IF thisPh(isMaxStress) THEN
  187. ChangePhoneme(e)
  188. ENDIF
  189. IF prevPhW(isPalatal) THEN
  190. ChangePhoneme(E2)
  191. ENDIF
  192. FMT(vwl_ru/E@)
  193. endphoneme
  194. phoneme o
  195. vowel starttype #o endtype #o
  196. Length 100
  197. FMT(vwl_ru/o)
  198. endphoneme
  199. phoneme O
  200. vowel starttype #o endtype #o
  201. Length 80
  202. IF prevPhW(isPalatal) THEN
  203. ChangePhoneme(8)
  204. ENDIF
  205. IF thisPh(isMaxStress) THEN
  206. ChangePhoneme(o)
  207. ENDIF
  208. FMT(vwl_ru/oo)
  209. endphoneme
  210. phoneme u
  211. vowel starttype #u endtype #u
  212. Length 80
  213. FMT(vwl_ru/u)
  214. endphoneme
  215. phoneme u#
  216. vowel starttype #u endtype #u
  217. Length 80
  218. FMT(vwl_ru/u#)
  219. endphoneme
  220. phoneme u"
  221. vowel starttype #u endtype #u
  222. Length 150
  223. FMT(vwl_ru/u#u)
  224. endphoneme
  225. phoneme 8
  226. vowel starttype #o endtype #o
  227. Length 150
  228. ChangeIfNotStressed(V)
  229. FMT(vwl_ru/8)
  230. endphoneme
  231. phoneme e
  232. vowel starttype #e endtype #e
  233. Length 100
  234. FMT(vwl_ru/ee)
  235. endphoneme
  236. phoneme ju
  237. vowel starttype #u endtype #u
  238. Length 190
  239. FMT(vwl_ru/ju)
  240. endphoneme
  241. phoneme ja
  242. vowel starttype #i endtype #a
  243. Length 200
  244. FMT(vwl_ru/ja)
  245. endphoneme
  246. phoneme V#
  247. vowel starttype #a endtype #@
  248. unstressed
  249. Length 80
  250. // IF nextVowel(isMaxStress) THEN
  251. // not needed? because V# is only used at end-of-word
  252. // ChangePhoneme(I3)
  253. // ENDIF
  254. IF thisPh(isMaxStress) THEN
  255. IF prevPhW(j) THEN
  256. ChangePhoneme(A)
  257. ELSE
  258. ChangePhoneme(ja)
  259. ENDIF
  260. ENDIF
  261. IF prevPhW(isPalatal) THEN
  262. ChangePhoneme(V)
  263. ENDIF
  264. FMT(vowel/V_2)
  265. endphoneme
  266. phoneme Y // will not be used in future
  267. vowel starttype #u endtype #u
  268. unstressed
  269. Length 140
  270. FMT(vowel/ii#)
  271. endphoneme
  272. phoneme A
  273. vowel starttype #a endtype #a
  274. Length 100
  275. FMT(vwl_ru/a)
  276. endphoneme
  277. phoneme a
  278. vowel starttype #a endtype #a
  279. Length 100
  280. IF prevPhW(j) THEN
  281. ELSE
  282. IF thisPh(isMaxStress) THEN
  283. IF prevPhW(isPalatal) THEN
  284. ChangePhoneme(ja)
  285. ELSE
  286. ChangePhoneme(A)
  287. ENDIF
  288. ELSE
  289. IF prevPhW(isPalatal) THEN
  290. ChangePhoneme(I)
  291. ENDIF
  292. ENDIF
  293. ENDIF
  294. IF thisPh(isWordEnd) THEN
  295. FMT(vowel/a#_3)
  296. ENDIF
  297. FMT(vwl_ru/aa)
  298. endphoneme
  299. phoneme V
  300. vowel starttype #a endtype #@
  301. Length 80
  302. unstressed
  303. IF nextVowel(isMaxStress) THEN
  304. ChangePhoneme(a)
  305. ENDIF
  306. IF thisPh(isMaxStress) THEN
  307. IF prevPhW(j) THEN
  308. ChangePhoneme(a)
  309. ELIF prevPhW(isPalatal) THEN
  310. ChangePhoneme(ja)
  311. ELSE
  312. ChangePhoneme(A)
  313. ENDIF
  314. ENDIF
  315. FMT(vowel/V_2)
  316. endphoneme
  317. phoneme a#
  318. vowel starttype #a endtype #a
  319. Length 100
  320. FMT(vowel/a#_3)
  321. endphoneme
  322. phoneme R4
  323. liquid
  324. lengthmod 6
  325. Vowelin f1=0 f2=1500 -300 300 f3=-200 80 rms=60 brk
  326. Vowelout f1=2 f2=1500 -300 300 f3=-200 80
  327. FMT(r3/r_ru2) addWav(r3/r_ru, 50)
  328. endphoneme