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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413
  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. endphoneme
  209. phoneme u
  210. vowel starttype #u endtype #u
  211. Length 80
  212. FMT(vwl_ru/u)
  213. endphoneme
  214. phoneme u#
  215. vowel starttype #u endtype #u
  216. Length 80
  217. FMT(vwl_ru/u#)
  218. endphoneme
  219. phoneme u"
  220. vowel starttype #u endtype #u
  221. Length 150
  222. FMT(vwl_ru/u#u)
  223. endphoneme
  224. phoneme 8
  225. vowel starttype #o endtype #o
  226. Length 150
  227. ChangeIfNotStressed(V)
  228. FMT(vwl_ru/8)
  229. endphoneme
  230. phoneme e
  231. vowel starttype #e endtype #e
  232. Length 100
  233. FMT(vwl_ru/ee)
  234. endphoneme
  235. phoneme ju
  236. vowel starttype #u endtype #u
  237. Length 190
  238. FMT(vwl_ru/ju)
  239. endphoneme
  240. phoneme ja
  241. vowel starttype #i endtype #a
  242. Length 200
  243. FMT(vwl_ru/ja)
  244. endphoneme
  245. phoneme V#
  246. vowel starttype #a endtype #@
  247. unstressed
  248. Length 80
  249. // IF nextVowel(isMaxStress) THEN
  250. // not needed? because V# is only used at end-of-word
  251. // ChangePhoneme(I3)
  252. // ENDIF
  253. IF thisPh(isMaxStress) THEN
  254. IF prevPhW(j) THEN
  255. ChangePhoneme(A)
  256. ELSE
  257. ChangePhoneme(ja)
  258. ENDIF
  259. ENDIF
  260. IF prevPhW(isPalatal) THEN
  261. ChangePhoneme(V)
  262. ENDIF
  263. FMT(vowel/V_2)
  264. endphoneme
  265. phoneme Y // will not be used in future
  266. vowel starttype #u endtype #u
  267. unstressed
  268. Length 140
  269. FMT(vowel/ii#)
  270. endphoneme
  271. phoneme A
  272. vowel starttype #a endtype #a
  273. Length 100
  274. FMT(vwl_ru/a)
  275. endphoneme
  276. phoneme a
  277. vowel starttype #a endtype #a
  278. Length 100
  279. IF prevPhW(j) THEN
  280. ELSE
  281. IF thisPh(isMaxStress) THEN
  282. IF prevPhW(isPalatal) THEN
  283. ChangePhoneme(ja)
  284. ELSE
  285. ChangePhoneme(A)
  286. ENDIF
  287. ELSE
  288. IF prevPhW(isPalatal) THEN
  289. ChangePhoneme(I)
  290. ENDIF
  291. ENDIF
  292. ENDIF
  293. IF thisPh(isWordEnd) THEN
  294. FMT(vowel/a#_3)
  295. ENDIF
  296. FMT(vwl_ru/aa)
  297. endphoneme
  298. phoneme V
  299. vowel starttype #a endtype #@
  300. Length 80
  301. unstressed
  302. IF nextVowel(isMaxStress) THEN
  303. ChangePhoneme(a)
  304. ENDIF
  305. IF thisPh(isMaxStress) THEN
  306. IF prevPhW(j) THEN
  307. ChangePhoneme(a)
  308. ELIF prevPhW(isPalatal) THEN
  309. ChangePhoneme(ja)
  310. ELSE
  311. ChangePhoneme(A)
  312. ENDIF
  313. ENDIF
  314. FMT(vowel/V_2)
  315. endphoneme
  316. phoneme a#
  317. vowel starttype #a endtype #a
  318. Length 100
  319. FMT(vowel/a#_3)
  320. endphoneme
  321. phoneme R4
  322. liquid
  323. lengthmod 6
  324. Vowelin f1=0 f2=1500 -300 300 f3=-200 80 rms=60 brk
  325. Vowelout f1=2 f2=1500 -300 300 f3=-200 80
  326. FMT(r3/r_ru2) addWav(r3/r_ru, 50)
  327. endphoneme