Browse Source

Fixes for Ukrainian language (#1480)

master
Juho Hiltunen 2 years ago
parent
commit
822abfd1f3
No account linked to committer's email address
7 changed files with 323 additions and 130 deletions
  1. 1
    0
      ChangeLog.md
  2. 225
    82
      dictsource/uk_list
  3. 51
    45
      dictsource/uk_rules
  4. 4
    0
      espeak-ng-data/lang/zle/uk
  5. 38
    0
      phsource/ph_ukrainian
  6. 3
    2
      phsource/phonemes
  7. 1
    1
      tests/language-phonemes.test

+ 1
- 0
ChangeLog.md View File

@@ -35,6 +35,7 @@ updated languages:
* shn (Shan Tay Yai) -- ronaldaug
* tk (Turkmen) -- Andiv06
* tr (Turkish) -- Gurbuzguven, Qchristensen
* uk (Ukrainian) -- Andrij Mizyk
* uz (Uzbek) -- Andiv06

new languages:

+ 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


+ 1
- 1
tests/language-phonemes.test View File

@@ -139,7 +139,7 @@ test_phwav tn 206f0e832cc4a5fa19dc3917752e1d5b274047d4 "ma na Na pa ta ka ba da
test_phwav tr d825077cd573b9be9a38448bb52403b3117adf50 "ma na pa ba ta da tSa dZa tsa dza ca Ja Ca ka ga fa va sa za Sa Za xa Qa ha la ja wa Ra *a _:_ mi me m& my mW mu mo ma m@"
test_phwav tt f9363e26db4fd706e630787462c2b36318debc4b "ma na pa ba ta da tSa dZa tsa dza ca Ja Ca ka ga fa va sa za Sa Za xa Qa ha la ja wa Ra *a _:_ mi me m& my mW mu mo ma m@"
test_phwav ug 09635dcd9f86b27623d462a0f20661143e6d7bfc "ma na pa ba ta da tSa dZa tsa dza ca Ja Ca ka ga fa va sa za Sa Za xa Qa ha la ja wa Ra *a _:_ mi me m& my mW mu mo ma m@"
test_phwav uk 3b6ea017b9394c750669b4231933f8af15b2be30 "ma na pa ba ta da tSa dZa tsa dza ca Ja Ca ka ga fa va sa za Sa Za xa Qa ha la ja wa Ra *a _:_ mi me m& my mW mu mo ma m@"
test_phwav uk f323718b45f92f5f9006e1cbc0a2bb4ef20be612 "ma na pa ba ta da tSa dZa tsa dza ca Ja Ca ka ga fa va sa za Sa Za xa Qa ha la ja wa Ra *a _:_ mi me m& my mW mu mo ma m@"
test_phwav ur e0ce9b04c614df8b34180478f2f87ae58baa95ba "ma na n.a n^a pa t#a t.a tSa ka qa p#a t.#a c#a k#a ba d#a d.a dZa ga b#a d.#a J#a g#a fa sa Sa xa va za Za Qa Ha ra r.a la ja _:_ mI mU me m@ mo mE mV mO ma mi: mu: me: mo: mE: mO: ma: m&: mI~ mi~ mU~ mu~ mU~ me~ mo~ mE~ mV~ mO~ ma~ mAI maU"
test_phwav uz 7927f6336d940d7c8aa2d3bf96fce07a0ae9f97c "ma na pa ba ta da tSa dZa tsa dza ca Ja Ca ka ga fa va sa za Sa Za xa Qa ha la ja wa Ra *a _:_ mi me m& my mW mu mo ma m@"
test_phwav vi b1f7d82ac30d12cfd8f4bf6eba8837bc38e6d2be "na Na la ja pa pha fa ta tha ka kha tS;a tS;ha S;a s.a tsa tsha ts.a ts.ha N-a _:_ ma mA mai mAu m@ m@r mE mei mi mi[ mi. miA miAu miE mio miou mo mo- mou mong mu muA mua muai mu@ mei muo my myu my& myE my@ myi _:_ ma11 ma21 ma214 ma22 ma33 ma35 ma44 ma51 ma53 ma55"

Loading…
Cancel
Save