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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536
  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. FMT(vwl_ru/ii)
  183. endphoneme
  184. phoneme I2
  185. vwl starttype #i endtype #i
  186. length 80
  187. IF thisPh(isMaxStress) THEN
  188. ChangePhoneme(e)
  189. ENDIF
  190. IF prevPhW(isPalatal) THEN
  191. ChangePhoneme(I)
  192. ENDIF
  193. FMT(vwl_ru/ii)
  194. endphoneme
  195. phoneme I3
  196. vwl starttype #i endtype #i
  197. length 80
  198. IF thisPh(isMaxStress) THEN
  199. IF prevPhW(j) THEN
  200. ChangePhoneme(e)
  201. ELSE
  202. ChangePhoneme(ja)
  203. ENDIF
  204. ENDIF
  205. IF prevPhW(isPalatal) THEN
  206. ChangePhoneme(I)
  207. ENDIF
  208. FMT(vwl_ru/ii)
  209. endphoneme
  210. phoneme E
  211. vwl starttype #e endtype #e
  212. length 100
  213. FMT(vwl_ru/e)
  214. endphoneme
  215. phoneme E#
  216. vwl starttype #e endtype #e
  217. length 100
  218. IF thisPh(isMaxStress) THEN
  219. IF prevPhW(j) THEN
  220. ChangePhoneme(e)
  221. ELSE
  222. ChangePhoneme(E)
  223. ENDIF
  224. ENDIF
  225. FMT(vwl_ru/E#)
  226. endphoneme
  227. phoneme E2
  228. vwl starttype #e endtype #e
  229. length 80
  230. IF nextVowel(isMaxStress) THEN
  231. IF prevPh(j) THEN
  232. ChangePhoneme(I3)
  233. ELSE
  234. ChangePhoneme(E#)
  235. ENDIF
  236. ENDIF
  237. IF thisPh(isMaxStress) THEN
  238. IF prevPhW(j) THEN
  239. ChangePhoneme(e)
  240. ELSE
  241. ChangePhoneme(E)
  242. ENDIF
  243. ENDIF
  244. FMT(vwl_ru/E@)
  245. endphoneme
  246. phoneme E3
  247. vwl starttype #e endtype #e
  248. length 80
  249. IF nextVowel(isMaxStress) THEN
  250. ChangePhoneme(I)
  251. ENDIF
  252. IF thisPh(isMaxStress) THEN
  253. ChangePhoneme(e)
  254. ENDIF
  255. IF prevPhW(isPalatal) THEN
  256. ChangePhoneme(E2)
  257. ENDIF
  258. FMT(vwl_ru/E@)
  259. endphoneme
  260. phoneme E% // е in prefix "интер"
  261. vwl
  262. ChangePhoneme(E#)
  263. endphoneme
  264. phoneme o
  265. vwl starttype #o endtype #o
  266. length 100
  267. ChangeIfNotStressed(V)
  268. FMT(vwl_ru/o)
  269. endphoneme
  270. phoneme O
  271. vwl starttype #o endtype #o
  272. length 80
  273. IF prevPhW(isPalatal) THEN
  274. ChangePhoneme(8)
  275. ENDIF
  276. IF thisPh(isMaxStress) THEN
  277. ChangePhoneme(o)
  278. ENDIF
  279. FMT(vwl_ru/oo)
  280. endphoneme
  281. phoneme u
  282. vwl starttype #u endtype #u
  283. length 80
  284. FMT(vwl_ru/u)
  285. endphoneme
  286. phoneme u#
  287. vwl starttype #u endtype #u
  288. length 80
  289. FMT(vwl_ru/u#)
  290. endphoneme
  291. phoneme u"
  292. vwl starttype #u endtype #u
  293. length 150
  294. FMT(vwl_ru/u#u)
  295. endphoneme
  296. phoneme 8
  297. vwl starttype #o endtype #o
  298. length 100
  299. ChangeIfNotStressed(V)
  300. FMT(vwl_ru/8)
  301. endphoneme
  302. phoneme e
  303. vwl starttype #e endtype #e
  304. length 100
  305. IF prevPh(Z) THEN
  306. ChangeIfNotStressed(y)
  307. ChangePhoneme(E)
  308. ENDIF
  309. IF prevPh(S) THEN
  310. ChangeIfNotStressed(y)
  311. ChangePhoneme(E)
  312. ENDIF
  313. IF prevPh(ts) THEN
  314. ChangeIfNotStressed(y)
  315. ChangePhoneme(E)
  316. ENDIF
  317. ChangeIfNotStressed(i)
  318. FMT(vwl_ru/ee)
  319. endphoneme
  320. phoneme ju
  321. vwl starttype #u endtype #u
  322. length 190
  323. FMT(vwl_ru/ju)
  324. endphoneme
  325. phoneme ja
  326. vwl starttype #i endtype #a
  327. IF thisPh(isMaxStress) THEN
  328. length 200
  329. FMT(vwl_ru/ja)
  330. ELSE
  331. FMT(vdiph2/ii@)
  332. ENDIF
  333. endphoneme
  334. phoneme ja#
  335. vwl starttype #i endtype #a
  336. IF thisPh(isMaxStress) THEN
  337. FMT(vowel/&)
  338. ELSE
  339. IF prevPhW(isPalatal) THEN
  340. ChangePhoneme(I)
  341. ENDIF
  342. ENDIF
  343. endphoneme
  344. phoneme V#
  345. vwl starttype #a endtype #@
  346. unstressed
  347. length 80
  348. IF thisPh(isMaxStress) THEN
  349. IF prevPhW(j) THEN
  350. ChangePhoneme(A)
  351. ENDIF
  352. ENDIF
  353. IF prevPhW(isPalatal) THEN
  354. ChangePhoneme(V)
  355. ENDIF
  356. FMT(vowel/V_2)
  357. endphoneme
  358. phoneme Y // will not be used in future
  359. vwl starttype #u endtype #u
  360. unstressed
  361. length 140
  362. FMT(vowel/ii#)
  363. endphoneme
  364. phoneme A
  365. vwl starttype #a endtype #a
  366. length 100
  367. FMT(vwl_ru/a)
  368. endphoneme
  369. phoneme a
  370. vwl starttype #a endtype #a
  371. length 100
  372. IF prevPhW(j) THEN
  373. ELSE
  374. IF thisPh(isMaxStress) THEN
  375. IF prevPhW(isPalatal) THEN
  376. ChangePhoneme(ja)
  377. ELSE
  378. ChangePhoneme(A)
  379. ENDIF
  380. ELSE
  381. IF prevPhW(isPalatal) THEN
  382. ChangePhoneme(I)
  383. ENDIF
  384. ENDIF
  385. ENDIF
  386. IF thisPh(isWordEnd) THEN
  387. FMT(vowel/a#_3)
  388. ENDIF
  389. FMT(vwl_ru/aa)
  390. endphoneme
  391. phoneme V
  392. vwl starttype #a endtype #@
  393. length 80
  394. unstressed
  395. IF nextVowel(isMaxStress) THEN
  396. ChangePhoneme(a)
  397. ENDIF
  398. IF thisPh(isMaxStress) THEN
  399. IF prevPhW(j) THEN
  400. ChangePhoneme(a)
  401. ELSE
  402. ChangePhoneme(A)
  403. ENDIF
  404. ENDIF
  405. FMT(vowel/V_2)
  406. endphoneme
  407. phoneme a#
  408. vwl starttype #a endtype #a
  409. length 100
  410. FMT(vowel/a#_3)
  411. endphoneme
  412. phoneme R4
  413. liquid
  414. lengthmod 6
  415. Vowelin f1=0 f2=1500 -300 300 f3=-200 80 rms=60 brk
  416. Vowelout f1=2 f2=1500 -300 300 f3=-200 80
  417. FMT(r3/r_ru2) addWav(r3/r_ru, 50)
  418. endphoneme