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

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