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.9KB

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