Browse Source

Support of Ukrainian language

master
Andrij Mizyk 2 years ago
parent
commit
4b48328d29
5 changed files with 321 additions and 129 deletions
  1. 225
    82
      dictsource/uk_list
  2. 51
    45
      dictsource/uk_rules
  3. 4
    0
      espeak-ng-data/lang/zle/uk
  4. 38
    0
      phsource/ph_ukrainian
  5. 3
    2
      phsource/phonemes

+ 225
- 82
dictsource/uk_list View File

@@ -1,82 +1,225 @@
// This file is UTF8 encoded
// Spelling-to-phoneme words for Ukrainian

// Letter names
а a
_б bE
б bE $atend
_в vE
в vE $atend
г gE
ґ gE
д dE
е e
є je
_ж ZE
ж ZE $atend
з zE
и i
і i
ї ji
й jot
к kA
л El
м Em
н En_
о o
п pE
р Er
_с Es
с Es $atend
т tE
у u
ф Ef
х xA
ц tsE
ч tS;e
ш SA
щ S;ja
ь m;'jak;I#jzn'Ak
ю ju
я ja

// Numbers
_0 nul;j
_1 od;'in
_2 dv'a
_3 tR;'i
_4 tS;otiR;i
_5 p;j'at;
_6 S'is;t;
_7 s;'im
_8 v'is;im
_9 d;'evjat;
_10 d;'esjat;
_11 od;'inadtsjat;
_12 dv;'anadtsjat;
_13 trin'adtsjat;
_14 tSot'irnadtsjat;
_15 pjatn'adtsjat;
_16 Sistn'adtsjat;
_17 simn'adtsjat;
_18 visimn'adtsjat;
_19 d;ev;jatn'adtsjat;
_2X dv'adtsjat;
_3X tr'idtsjat;
_4X s'orok
_5X pjatdesj'at;
_6X Sistdesj'at;
_7X s;imd;es;jat;
_8X vis;imdesj;at;
_9X d;ev;jan'osto
_0C st'o
_2C dv;'es;t;I
_3C tr;'ista
_4C tS;It'yr;esta
_5C p;,It;s'ot
_6C S,es;t;s'ot
_7C s;,Ims'ot
_8C vOs;Ims'ot
_9C d;ev;Vts'ot
_0M1 t'isjatSa
_dpt _:'i_:
// This file is UTF-8 encoded
/// pronunciation of signs, numbers and exceptional words
// Author: Andrij Mizyk <[email protected]>, 2022

// all words must be LOWER CASE (although the initial letter will be
// automatically converted if it's a 7bit ascii character)
//
// You can use the uk_extra file, rather than this one
// to add your own pronunciation definitions.
//
// if they are spoken as a single character in text precede by _
// to distinguish from pronunciation as a language word


// CHARACTERS
//***********

! zn'ak||'okleku
" podv'i:jna||l'apka
# RES'i:tka
$ d'olaR
% vi:ds'otok
& ampeRs'and
//' odIn'aRna||l'apka
//( Bi:dkR'eta||d'uZka
//) zakR'eta||d'uZka
* z'i:RotSka
+ pl^'us
, k'oma
- m'i:nus
. kR'apka
/ kos'a||R'Iska
: dB'i:||kR'apkI
; kR'apka||z||k'omoju
< m'EnSE
= R'i:vnE
> b'i:l^SE
//? zn'ak||pIt'an:ja // не читає
@ sob'atSka
[ Bi:dkR'eta||kBadR'atna||d'uZka
\ ob'ERnEna||kos'a||R'Iska
] zakR'eta||kBadR'atna||d'uZka
^ daS'ok
\\_ n'IZn^e||pi:dkR'EslEn:ja
` hRaf'i:s
{ B'i:dkReta||fi:h'uRna||d'uZka
| BERtIk'al^na||R'Iska
} zakR'eta||fi:h'uRna||d'uZka
~ t'Il^da
ʼ ap'ostRof
« B'i:dkRIti:||lapk'I
» z'akRIti:||lapk'I
… tR'e||kR'apkI


// NUMBERS
//********

_0 n'ul^
_1 od'en
_2 dB'a
_3 tR'I
_4 tSot'eRe
_5 pj'at;
_6 S'i:st;
_7 s'i:m
_8 v'i:si:m
_9 d'Evjat;

_10 d'Esjat;
_11 oden'adsjat;
_12 dvan'adsjat;
_13 tRen'adsjat;
_14 tSoteRn'adsjat;
_15 pjatn'adsjat;
_16 Si:stn'adsjat;
_17 si:mn'adsjat;
_18 vi:si:mn'adsjat;
_19 devjatn'adsjat;
_2X dv'adsjat;
_3X tR'edsjat;
_4X s'oRok
_5X pjatdesj'at;
_6X Si:stdesj'at;
_7X si:mdesj'at;
_8X vi:si:mdesj'at;
_9X devjan'osto
_1C st'o
_2C dv'i:sti:
_3C tR'esta
_4C tSot'eResta
_5C pjats'ot
_6C Si:sts'ot
_7C si:ms'ot
_8C vi:si:ms'ot
_9C devjats'ot

// large numbers, short scale
_0C st'o
_0M1 t'esjatSa
_0M2 mi:l;j'on
_0M3 bi:l;j'on
_0M4 tRel;j'on
_0M5 kvadRal;j'on
_0M6 kvi:ntel;j'on
_0M7 sEkstel;j'on
_0M8 sEptel;j'on
_0M9 oktel;j'on
_0M10 nonel;j'on


// LETTERS
//********

_б bE
_в BE
г hE
ґ gE
д dE
_ж ZE
_з zE
_й jot
к ka
л El^
м Em
н En
п pE
р ER
с Es
т tE
ф Ef
х xa
ц tsE
ч tSa
ш Sa
щ StSa
ь m|jak'Ij||zn'ak


// ABBREVIATIONS
//**************

зсу $abbrev


// MAIN WORD DICTIONARY
//*********************

// дні
вівторок $2
середа $2
четвер $2
пʼятниця $1

// місяці
березень $1
вересень $1

// свята
різдво $2

// міста
вінниця $1
дніпро $2
запоріжжя $3
ужгород 'uZhoRod
херсон $2
чернівці $3

// країни
україна $3
австрія $1
англія $1
боснія $1
герцеговина $4
греція $1
грузія $2
данія $1
латвія $1
литва $2
нідерланди $3
сербія $1
франція $1
чехія $1
швеція $1

//-------------

або $2
ага $2
агов $2
але $2
були $2
було $2
вʼїзд v|j'i:zd
вона $2
вони $2
воно $2
дякую $1
їй ji:j
їм ji:m
їх ji:x
його $2
коли $2
лише $2
отож $2
проте $2
себе $2
таких $2
тепер $2
тому $2
хоча $2
чогось $2
чому $2
яка $2
якби $2
який $2
якийсь $2
яким $2
яких $2
які $2
якось $2
якщо $2

//

+ 51
- 45
dictsource/uk_rules View File

@@ -1,112 +1,118 @@
// This file is UTF8 encoded
// Translation rules for Ukrainian

// Special characters:
// A vowel: а е ё и о у ы э ю я ә ө ұ ү і
// B soft consonant: ь й ч щ
// C any consonant: б в г д ж з й к л м н п р с т ф х ц ч ш щ ъ ь қ ң һ
// F consonant, not hard: б в г д з й к л м н п р с т ф х ч щ ь
// G voiced: б в г д ж з
// H hard consonant: ъ ж ц ш
// Y iotated vowel, softsign: ь ю я ё
// This file is UTF-8 encoded
/// Spelling to phoneme words and exceptions for Ukrainian
// Author: Andrij Mizyk <[email protected]>, 2022

.group а
а a
а a

.group б
б b
б b

.group в
в v
в B

.group г
г h
г h // вимовляється як середнє між г та х

.group ґ
ґ g
ґ g

.group д
д d
д d
дж dZ

.group е
е e
е E

.group є
є e
є jE

.group ж
ж Z
ж Z

.group з
з z
з z

.group и
и i
и I

.group і
і i
і i:

.group ї
ї i

ї ji:

.group й
й j
й j

.group к
к k
к k

.group л
л l
л l
л (і l^
лє l^E
лю l^u
ля l^a
ль l^

.group м
м m
м m

.group н
н n
н n
н (і n^
нє n^E
ню n^u
ня n^a
нь n^

.group о
о o
о o

.group п
п p
п p

.group р
р r
р R

.group с
с s
с s

.group т
т t
т t[
ть t;

.group у
у u
у u

.group ф
ф f
ф f

.group х
х x
х x

.group ц
ц ts
ц ts

.group ч
ч tS;
ч tS

.group ш
ш S
ш S
ш (в l# // швеція

.group щ
щ S;
щ StS

.group ь
ь ;
ь ;

.group ю
ю ju
ю ju

.group я
я ja
я ja

.group ʼ
ʼ |

+ 4
- 0
espeak-ng-data/lang/zle/uk View File

@@ -1,3 +1,7 @@
name Ukrainian
language uk

maintainer Andrij Mizyk <[email protected]>
status testing

speed 80

+ 38
- 0
phsource/ph_ukrainian View File

@@ -0,0 +1,38 @@
//====================================================
// Ukrainian
//====================================================

phoneme E
vwl starttype #a endtype #a
length 150
IF nextPhW(n) THEN
ChangeIfDiminished(@)
ELSE
ChangeIfDiminished(I2)
ENDIF
FMT(vowel/ee)
endphoneme

phoneme I
vwl starttype #i endtype #i
length 130
IfNextVowelAppend(;)
FMT(vowel/ii)
endphoneme

phoneme I2 // **i**ntend. As \[I\], but also indicates an unstressed syllable.
vwl starttype #i endtype #i
unstressed
length 130

IF MbrolaSynth THEN
ChangePhoneme(I)
ENDIF

IfNextVowelAppend(;)

IF thisPh(isAfterStress) AND thisPh(isFinalVowel) THEN
FMT(vowel/ii#_3)
ENDIF
FMT(vowel/ii_4)
endphoneme

+ 3
- 2
phsource/phonemes View File

@@ -1811,6 +1811,9 @@ include ph_setswana
phonemetable tt base1
include ph_tatar

phonemetable uk base1
include ph_ukrainian

phonemetable vi base1
include ph_vietnam

@@ -2019,8 +2022,6 @@ include ph_serbian
phonemetable ru-lv ru
include ph_russian_lv

phonemetable uk ru

phonemetable az tr
include ph_azerbaijani


Loading…
Cancel
Save