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 7.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537
  1. phoneme g
  2. vcd vel stp prevoice
  3. voicingswitch k
  4. lengthmod 5
  5. Vowelin f1=2 f2=2300 200 300 f3=-300 80
  6. Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
  7. IF PreVoicing THEN
  8. FMT(g/xg)
  9. ENDIF
  10. IF nextPh(isPause2) THEN
  11. FMT(g/g_) addWav(x/g_)
  12. ENDIF
  13. FMT(g/g) addWav(x/g3, 90)
  14. endphoneme
  15. phoneme p
  16. import_phoneme consonants/p-
  17. endphoneme
  18. phoneme x
  19. vls vel frc
  20. lengthmod 3
  21. Vowelin f1=0 f2=2300 200 400 f3=-100 80
  22. Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20
  23. WAV(ufric/x_hr, 30)
  24. endphoneme
  25. phoneme k
  26. import_phoneme consonants/k-
  27. voicingswitch g
  28. endphoneme
  29. phoneme l
  30. liquid rfx
  31. ipa ɭ
  32. lengthmod 7
  33. length 40
  34. FMT(l^/l_rfx)
  35. endphoneme
  36. phoneme l^
  37. liquid rfx pzd
  38. ipa ɭ
  39. length 80
  40. FMT(l^/l_rfx)
  41. endphoneme
  42. phoneme s
  43. vls alv frc sib
  44. lengthmod 3
  45. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  46. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  47. WAV(ufric/s)
  48. endphoneme
  49. phoneme s;
  50. import_phoneme en/s
  51. endphoneme
  52. phoneme n_
  53. import_phoneme en/n
  54. endphoneme
  55. phoneme n#
  56. vcd pal nas pzd
  57. ipa ɲ
  58. Vowelout f1=3 f2=2500 300 500 f3=100 80 len=45 brk rate
  59. lengthmod 4
  60. IF KlattSynth THEN
  61. VowelStart(klatt/n^@)
  62. FMT(klatt/n^)
  63. ENDIF
  64. NextVowelStarts
  65. VowelStart(n^/n^@)
  66. VowelStart(n^/n^a)
  67. VowelStart(n^/n^e)
  68. VowelStart(n^/n^i)
  69. VowelStart(n^/n^o)
  70. VowelStart(n^/n^u)
  71. EndSwitch
  72. IF prevPh(isPause) THEN
  73. FMT(n^/_n^)
  74. ELIF nextPh(isNotVowel) THEN
  75. IF nextPhW(n^) THEN
  76. length 75
  77. ELIF prevPhW(n^) THEN
  78. length 100
  79. ENDIF
  80. FMT(n^/n^_)
  81. ENDIF
  82. endphoneme
  83. phoneme r
  84. liquid rhotic alv trl nolink
  85. length 80
  86. IF prevPhW(isVowel) THEN
  87. ELSE
  88. InsertPhoneme(@-)
  89. ENDIF
  90. FMT(r3/r_trill,80) addWav(r3/r_trill.wav, 50)
  91. endphoneme
  92. phoneme ts
  93. import_phoneme consonants/ts
  94. endphoneme
  95. phoneme dZ;
  96. vcd alp sib afr
  97. voicingswitch tS;
  98. lengthmod 5
  99. Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
  100. IF PreVoicing THEN
  101. FMT(dzh/xdzh)
  102. ENDIF
  103. IF nextPh(isPause2) THEN
  104. FMT(dzh/dzh_) addWav(x/dzh_)
  105. ENDIF
  106. endphoneme
  107. phoneme tS;
  108. vls alp sib afr
  109. voicingswitch dZ;
  110. lengthmod 2
  111. Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
  112. WAV(ustop/ts_pzd)
  113. endphoneme
  114. // Palatalized versions of consonants
  115. phoneme t
  116. import_phoneme pl/t
  117. endphoneme
  118. phoneme t;
  119. import_phoneme pl/t;
  120. endphoneme
  121. phoneme d
  122. import_phoneme pl/d
  123. endphoneme
  124. phoneme d;
  125. import_phoneme pl/d;
  126. endphoneme
  127. phoneme m;
  128. vcd blb nas
  129. Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk
  130. lengthmod 4
  131. IF KlattSynth THEN
  132. Vowelin f1=0 f2=1000 -50 -200 f3=-200 80
  133. IF nextPh(isPause2) THEN
  134. FMT(klatt/m_)
  135. ENDIF
  136. FMT(klatt/m)
  137. ENDIF
  138. VowelStart(m/mi)
  139. FMT(m/mj)
  140. endphoneme
  141. phoneme I^ // "silent i", palatilizes the preceding consonant
  142. vwl starttype #i endtype #i
  143. unstressed nsy
  144. length 70
  145. IF nextPh(isVowel) THEN
  146. ChangePhoneme(;)
  147. ENDIF
  148. IF prevPh(m;) THEN
  149. FMT(vwl_ro/mi)
  150. ENDIF
  151. FMT(vwl_ru/ii-)
  152. endphoneme
  153. //*******************************************************************
  154. // VOWELS
  155. //*******************************************************************
  156. phoneme i
  157. IF prevPh(Z) THEN
  158. ChangePhoneme(y)
  159. ENDIF
  160. vwl starttype #i endtype #i
  161. length 50
  162. FMT(vwl_ru/ii)
  163. endphoneme
  164. phoneme I#
  165. vwl starttype #i endtype #i
  166. length 80
  167. IF nextVowel(isMaxStress) THEN
  168. ChangePhoneme(I)
  169. ENDIF
  170. IF thisPh(isMaxStress) THEN
  171. ChangePhoneme(i)
  172. ENDIF
  173. FMT(vwl_ru/ii#)
  174. endphoneme
  175. phoneme y
  176. vwl starttype #i endtype #i
  177. length 100
  178. FMT(vwl_ru/i#)
  179. endphoneme
  180. phoneme I
  181. vwl starttype #i endtype #i
  182. length 80
  183. FMT(vwl_ru/ii)
  184. endphoneme
  185. phoneme I2
  186. vwl starttype #i endtype #i
  187. length 80
  188. IF thisPh(isMaxStress) THEN
  189. ChangePhoneme(e)
  190. ENDIF
  191. IF prevPhW(isPalatal) THEN
  192. ChangePhoneme(I)
  193. ENDIF
  194. FMT(vwl_ru/ii)
  195. endphoneme
  196. phoneme I3
  197. vwl starttype #i endtype #i
  198. length 80
  199. IF thisPh(isMaxStress) THEN
  200. IF prevPhW(j) THEN
  201. ChangePhoneme(e)
  202. ELSE
  203. ChangePhoneme(ja)
  204. ENDIF
  205. ENDIF
  206. IF prevPhW(isPalatal) THEN
  207. ChangePhoneme(I)
  208. ENDIF
  209. FMT(vwl_ru/ii)
  210. endphoneme
  211. phoneme E
  212. vwl starttype #e endtype #e
  213. length 100
  214. FMT(vwl_ru/e)
  215. endphoneme
  216. phoneme E#
  217. vwl starttype #e endtype #e
  218. length 100
  219. IF thisPh(isMaxStress) THEN
  220. IF prevPhW(j) THEN
  221. ChangePhoneme(e)
  222. ELSE
  223. ChangePhoneme(E)
  224. ENDIF
  225. ENDIF
  226. FMT(vwl_ru/E#)
  227. endphoneme
  228. phoneme E2
  229. vwl starttype #e endtype #e
  230. length 80
  231. IF nextVowel(isMaxStress) THEN
  232. IF prevPh(j) THEN
  233. ChangePhoneme(I3)
  234. ELSE
  235. ChangePhoneme(E#)
  236. ENDIF
  237. ENDIF
  238. IF thisPh(isMaxStress) THEN
  239. IF prevPhW(j) THEN
  240. ChangePhoneme(e)
  241. ELSE
  242. ChangePhoneme(E)
  243. ENDIF
  244. ENDIF
  245. FMT(vwl_ru/E@)
  246. endphoneme
  247. phoneme E3
  248. vwl starttype #e endtype #e
  249. length 80
  250. IF nextVowel(isMaxStress) THEN
  251. ChangePhoneme(I)
  252. ENDIF
  253. IF thisPh(isMaxStress) THEN
  254. ChangePhoneme(e)
  255. ENDIF
  256. IF prevPhW(isPalatal) THEN
  257. ChangePhoneme(E2)
  258. ENDIF
  259. FMT(vwl_ru/E@)
  260. endphoneme
  261. phoneme E% // е in prefix "интер"
  262. vwl
  263. ChangePhoneme(E#)
  264. endphoneme
  265. phoneme o
  266. vwl starttype #o endtype #o
  267. length 100
  268. ChangeIfNotStressed(V)
  269. FMT(vwl_ru/o)
  270. endphoneme
  271. phoneme O
  272. vwl starttype #o endtype #o
  273. length 80
  274. IF prevPhW(isPalatal) THEN
  275. ChangePhoneme(8)
  276. ENDIF
  277. IF thisPh(isMaxStress) THEN
  278. ChangePhoneme(o)
  279. ENDIF
  280. FMT(vwl_ru/oo)
  281. endphoneme
  282. phoneme u
  283. vwl starttype #u endtype #u
  284. length 80
  285. FMT(vwl_ru/u)
  286. endphoneme
  287. phoneme u#
  288. vwl starttype #u endtype #u
  289. length 80
  290. FMT(vwl_ru/u#)
  291. endphoneme
  292. phoneme u"
  293. vwl starttype #u endtype #u
  294. length 150
  295. FMT(vwl_ru/u#u)
  296. endphoneme
  297. phoneme 8
  298. vwl starttype #o endtype #o
  299. length 100
  300. ChangeIfNotStressed(V)
  301. FMT(vwl_ru/8)
  302. endphoneme
  303. phoneme e
  304. vwl starttype #e endtype #e
  305. length 100
  306. IF prevPh(Z) THEN
  307. ChangeIfNotStressed(y)
  308. ChangePhoneme(E)
  309. ENDIF
  310. IF prevPh(S) THEN
  311. ChangeIfNotStressed(y)
  312. ChangePhoneme(E)
  313. ENDIF
  314. IF prevPh(ts) THEN
  315. ChangeIfNotStressed(y)
  316. ChangePhoneme(E)
  317. ENDIF
  318. ChangeIfNotStressed(i)
  319. FMT(vwl_ru/ee)
  320. endphoneme
  321. phoneme ju
  322. vwl starttype #u endtype #u
  323. length 190
  324. FMT(vwl_ru/ju)
  325. endphoneme
  326. phoneme ja
  327. vwl starttype #i endtype #a
  328. IF thisPh(isMaxStress) THEN
  329. length 200
  330. FMT(vwl_ru/ja)
  331. ELSE
  332. FMT(vdiph2/ii@)
  333. ENDIF
  334. endphoneme
  335. phoneme ja#
  336. vwl starttype #i endtype #a
  337. IF thisPh(isMaxStress) THEN
  338. FMT(vowel/&)
  339. ELSE
  340. IF prevPhW(isPalatal) THEN
  341. ChangePhoneme(I)
  342. ENDIF
  343. ENDIF
  344. endphoneme
  345. phoneme V#
  346. vwl starttype #a endtype #@
  347. unstressed
  348. length 80
  349. IF thisPh(isMaxStress) THEN
  350. IF prevPhW(j) THEN
  351. ChangePhoneme(A)
  352. ENDIF
  353. ENDIF
  354. IF prevPhW(isPalatal) THEN
  355. ChangePhoneme(V)
  356. ENDIF
  357. FMT(vowel/V_2)
  358. endphoneme
  359. phoneme Y // will not be used in future
  360. vwl starttype #u endtype #u
  361. unstressed
  362. length 140
  363. FMT(vowel/ii#)
  364. endphoneme
  365. phoneme A
  366. vwl starttype #a endtype #a
  367. length 100
  368. FMT(vwl_ru/a)
  369. endphoneme
  370. phoneme a
  371. vwl starttype #a endtype #a
  372. length 100
  373. IF prevPhW(j) THEN
  374. ELSE
  375. IF thisPh(isMaxStress) THEN
  376. IF prevPhW(isPalatal) THEN
  377. ChangePhoneme(ja)
  378. ELSE
  379. ChangePhoneme(A)
  380. ENDIF
  381. ELSE
  382. IF prevPhW(isPalatal) THEN
  383. ChangePhoneme(I)
  384. ENDIF
  385. ENDIF
  386. ENDIF
  387. IF thisPh(isWordEnd) THEN
  388. FMT(vowel/a#_3)
  389. ENDIF
  390. FMT(vwl_ru/aa)
  391. endphoneme
  392. phoneme V
  393. vwl starttype #a endtype #@
  394. length 80
  395. unstressed
  396. IF nextVowel(isMaxStress) THEN
  397. ChangePhoneme(a)
  398. ENDIF
  399. IF thisPh(isMaxStress) THEN
  400. IF prevPhW(j) THEN
  401. ChangePhoneme(a)
  402. ELSE
  403. ChangePhoneme(A)
  404. ENDIF
  405. ENDIF
  406. FMT(vowel/V_2)
  407. endphoneme
  408. phoneme a#
  409. vwl starttype #a endtype #a
  410. length 100
  411. FMT(vowel/a#_3)
  412. endphoneme
  413. phoneme R4
  414. liquid
  415. lengthmod 6
  416. Vowelin f1=0 f2=1500 -300 300 f3=-200 80 rms=60 brk
  417. Vowelout f1=2 f2=1500 -300 300 f3=-200 80
  418. FMT(r3/r_ru2) addWav(r3/r_ru, 50)
  419. endphoneme