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

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