Browse Source

Latvian language improvements

master
Valdis Vitolins 7 years ago
parent
commit
154c9f5089
4 changed files with 112 additions and 44 deletions
  1. 6
    5
      dictsource/lv_list
  2. 47
    22
      dictsource/lv_rules
  3. 6
    6
      espeak-ng-data/lang/bat/lv
  4. 53
    11
      phsource/ph_latvian

+ 6
- 5
dictsource/lv_list View File

tikvien $u2+ tikvien $u2+
turpat $u2+ turpat $u2+
turpretī $u2 turpretī $u2
uzreiz $2
vienalga $2 vienalga $2
vismaz $2 vismaz $2


// Abbreviations // // Abbreviations //
/////////////////// ///////////////////
as $abbrev as $abbrev
asv ,a:_:,ess_!v'e:_:
asv ,a:_:,ess_!v'e:_: $allcaps
ano 'ano: ano 'ano:
ba $abbrev ba $abbrev
bba $abbrev bba $abbrev
eest $abbrev eest $abbrev
est $abbrev est $abbrev
eur 'euR eur 'euR
lnnk 'ell_,en_,en_k'a: $pause
lnnk $abbrev $pause
lp $abbrev lp $abbrev
ls $abbrev ls $abbrev
lu $abbrev lu $abbrev
na $abbrev na $abbrev
nra $abbrev nra $abbrev
nr $abbrev nr $abbrev
pctvl p'e:_ts,e:_t,e:_v,e:_'ell_ $pause
pctvl $abbrev $pause
prks $abbrev prks $abbrev
psrs $abbrev psrs $abbrev
rpi $abbrev rpi $abbrev
šķ $abbrev šķ $abbrev
tjpr $abbrev $u $pause tjpr $abbrev $u $pause
tml $abbrev $u $pause tml $abbrev $u $pause
tp t,e:_p'e: $pause
tp $abbrev $pause
utjpr $abbrev $u $pause utjpr $abbrev $u $pause
utml $abbrev $u $pause utml $abbrev $u $pause
utt $abbrev $u $pause utt $abbrev $u $pause
zzs z'e:_z,e:_'ess $pause
zzs $abbrev $pause


/////////////////////////// ///////////////////////////
// other exception words // // other exception words //

+ 47
- 22
dictsource/lv_rules View File

.L17 ai ais am ā ām ās ie iem o os // suffixes of certain adjectives finishing with ..ējais .L17 ai ais am ā ām ās ie iem o os // suffixes of certain adjectives finishing with ..ējais
.L18 am āk i u ot ēt os // suffixes of adverbs (apstākļa vārdi) .L18 am āk i u ot ēt os // suffixes of adverbs (apstākļa vārdi)


.L10 ~ at ie iz jā jā jāat jāie jāiz jāno jāsa ne no no pa pār pie pie sa vis // optional verb prefixes
.L20 ~ ne // optional negation prefix .L20 ~ ne // optional negation prefix


// +---------------------------+ // +---------------------------+
// +---------------------------+ // +---------------------------+
// | Pronunciation of o | // | Pronunciation of o |
// +---------------------------+ // +---------------------------+
.L30 ō ȯ // uo pre/post fixes. If facultative writing is used, o is spelled as uo


// Default rules for o with succeeding consonants // Default rules for o with succeeding consonants
.L40 č ģ ķ ļ ņ ŗ š ž // uo indicators — o is spelled as uo in words with Latvian soft consonants .L40 č ģ ķ ļ ņ ŗ š ž // uo indicators — o is spelled as uo in words with Latvian soft consonants
.group e .group e
e e // Default as narrow e e e // Default as narrow e
ee e_|e // internationalisms, prefix: ne-e... ee e_|e // internationalisms, prefix: ne-e...
ei (+ ei
ei (++ ei


// narrow e ---------------------------------------------------------------------- // // narrow e ---------------------------------------------------------------------- //
a) e (ro e // internationalisms a) e (ro e // internationalisms


// wide e ------------------------------------------------------------------------ // // wide e ------------------------------------------------------------------------ //
// widening consonants follow // widening consonants follow
e (L25 E
e (L25< E
e (L25L25 E e (L25L25 E
// widening vowels follow // widening vowels follow
e (L25L24+ E e (L25L24+ E
e (L25L01_ E e (L25L01_ E
e (L25L25L01_ E e (L25L25L01_ E
e (Jam E e (Jam E
L25) e (L18_+ E // vareni etc.
L25) e (CJL18_ E // vareni etc.


// specific words ----------------------------------------------------------------- // // specific words ----------------------------------------------------------------- //
b) e (dL82L05_ e // bedre b) e (dL82L05_ e // bedre
_L20) e (sat_+ _!e // esat _L20) e (sat_+ _!e // esat
_L20) e (si_ _!e // esi _L20) e (si_ _!e // esi
_L20) e (smu_ _!e // esmu _L20) e (smu_ _!e // esmu
_L20) e (sot_ _!e // esot
_m) e (dūzL04_ e _m) e (dūzL04_ e
_m) e (kL04_ e // Meka _m) e (kL04_ e // Meka
m) e (lL88 E m) e (lL88 E
_n) ere (tL04_ ERE // Nereta _n) ere (tL04_ ERE // Nereta
n) e (rv E n) e (rv E
p) e (rs e p) e (rs e
pr) e (cL52z e
pr) e (L71L05_ e // prece pr) e (L71L05_ e // prece
_pr) e (t e _pr) e (t e
pr) etē (@ ete: pr) etē (@ ete:
t) ermo eRmo t) ermo eRmo
t) e (st e t) e (st e
_t) e (v_ e // tev _t) e (v_ e // tev
_t) e (vi_ e // tevi
_v) e (lgL04_ e // Velga _v) e (lgL04_ e // Velga
_v) e (ltL04_ e // Velta _v) e (ltL04_ e // Velta
_v) e (ntL04_ E // Venta _v) e (ntL04_ E // Venta
_v) e (ntsp E // Ventspils _v) e (ntsp E // Ventspils
_z) e (lmL04_ e // Zelma _z) e (lmL04_ e // Zelma
_z) e (m e
z) e (m+ e


.group ē .group ē
ē e: // Default as narrow ē ē e: // Default as narrow ē


// wide ē --------------------------------------------------------------------------- // // wide ē --------------------------------------------------------------------------- //
// widening consonants follow // widening consonants follow
ē (L25 E:
ē (L25< E:
ē (L25L25 E: ē (L25L25 E:
// widening vowels follow // widening vowels follow
ē (L25L24+ E: ē (L25L24+ E:
ē (L25L25L25L25L24 E: ē (L25L25L25L25L24 E:
// widening endings // widening endings
ē (L01_ E: ē (L01_ E:
ē (L25L01_ E:
ē (L25L01_+ E:
ē (L25L25L01_ E: ē (L25L25L01_ E:
// 5. dec. words // 5. dec. words
ē (CL05_ e: ē (CL05_ e:
ē (rkšķ e: ē (rkšķ e:
ē (tā_ E: ē (tā_ E:
ē (tL55_ E: ē (tL55_ E:
gr) ē (kL01_ E:
izp) ē (t e: izp) ē (t e:
_kāp) ē (c_ e: // kāpēc _kāp) ē (c_ e: // kāpēc
_l) ē (L83+ e: // lēst
m) ēne (L83 e:ne m) ēne (L83 e:ne
m) ē (rķ e: m) ē (rķ e:
_m) ē (s_ e: // mēs _m) ē (s_ e: // mēs
t) ē (L90 e: t) ē (L90 e:
t) ē (mL04_ e: // ..tēma t) ē (mL04_ e: // ..tēma
t) ērē e:Re: t) ērē e:Re:
t) ē (zL05_ e: // ..tēze
_v) ē (l_ e: // vēl _v) ē (l_ e: // vēl
_v) ē (lL01_ E: // vēls _v) ē (lL01_ E: // vēls
_v) ē (rā_ e: // vērā _v) ē (rā_ e: // vērā
i i i i
i (A i_! i (A i_!
ie ie ie ie
ikv) ie (n 'ie // stress on 2nd syllable
_) i (kkat %i // ikkatrs
_) i (kkuL82 %i // ikkurš
_) i (kvien %i // ikviens
iu iu iu iu


.group ī .group ī
ī i: ī i:


.group j .group j
A) j (@ :j
j j j j
_) jebk j%ebk // stress on 2nd syllable _) jebk j%ebk // stress on 2nd syllable


C) n (C n- // more voiced variant between consonants C) n (C n- // more voiced variant between consonants
L59) n (@ :n L59) n (@ :n
n (d N n (d N
ne (vienl+ n'e // nevienlīdzība
_) ne (vien n%e // stress on 2nd syllable _) ne (vien n%e // stress on 2nd syllable
n (g N n (g N
n (k N n (k N
o (L41+ o // o indicators after o (L41+ o // o indicators after
o (JL41+ o o (JL41+ o


L30J) o uo // uo indicators before (facultative writing)
L30) o (+ uo
o (JL30 uo // uo indicators after (facultative writing)
o (L30+ uo

o uo // words with Latvian roots are more common o uo // words with Latvian roots are more common
o (_++ uo // common ending for Latvian words o (_++ uo // common ending for Latvian words
o (L40 uo // usually uo before soft (Latvian) consonants o (L40 uo // usually uo before soft (Latvian) consonants
arist) o o arist) o o
ater) o o: ater) o o:
_aut) o (< o _aut) o (< o
bals) o uo
bandr) o o: bandr) o o:
_bar) o (L12_ uo _bar) o (L12_ uo
bar) o (L65 uo // barot bar) o (L65 uo // barot
dinam) o o: dinam) o o:
disp) o o disp) o o
eg) o o> eg) o o>
eir) o o
_ek) o o _ek) o o
eks) o o eks) o o
ekspl) o o ekspl) o o
ekvin) o o ekvin) o o
elektr) o o: elektr) o o:
ez) o o>
energ) o o: energ) o o:
enL87) o o enL87) o o
ent) o (@ o ent) o (@ o
epr) o o epr) o o
ept) o (@ o ept) o (@ o
eur) o o eur) o o
ez) o o>
gen) o o gen) o o
get) o o get) o o
glik) o o glik) o o
pomp) o o: pomp) o o:
por) o o por) o o
pr) o (L90 o pr) o (L90 o
_pr) o o
prop) o o prop) o o
pseid) o o pseid) o o
raps) o o: raps) o o:
sol) o o: sol) o o:
son) o o son) o o
spid) o o spid) o o
sp) o (L77++ uo
sport) o uo sport) o uo
sten) o (L65 uo sten) o (L65 uo
_sten) o o _sten) o o
gl) ob ob gl) ob ob
g) ob (e ob g) ob (e ob
k) ob ob k) ob ob
l) ob (ē ob
l) oboto (m oboto
m) ob ob m) ob ob
_) ob (amL01_ ob // Obama _) ob (amL01_ ob // Obama
ob (je ob ob (je ob
m) od (u od m) od (u od
m) od (uš uod m) od (uš uod
n) od (L05_ o:d // ..node n) od (L05_ o:d // ..node
n) od uod
_) od (ek od _) od (ek od
od (erL51 uod od (erL51 uod
_) od (esL04_ od // Odesa _) od (esL04_ od // Odesa
_d) ok (L01_ ok // doks _d) ok (L01_ ok // doks
d) ok (u ok d) ok (u ok
fil) okok okok fil) okok okok
gl) ok (sīn ok
g) ok ok g) ok ok
_k) okako (lL04_ okako: // kokakola _k) okako (lL04_ okako: // kokakola
k) ok (L01 uok // koks k) ok (L01 uok // koks
pr) om om pr) om om
_pr) om (_ uom // prom _pr) om (_ uom // prom
pt) om (L01_ o:m // ..ptoms pt) om (L01_ o:m // ..ptoms
pt) om o>m
rd) om (L01_ o:m rd) om (L01_ o:m
r) om (b om r) om (b om
_r) om (L04_ uom // Roma _r) om (L04_ uom // Roma
m) op op m) op op
net) op (_ uop net) op (_ uop
n) op (er+++ uop n) op (er+++ uop
n) opo (st uopuo
op (c op op (c op
op (en op op (en op
_) op (erL04_++++ o:p // opera _) op (erL04_++++ o:p // opera
or (ien oR or (ien oR
_) origo (_ oRigo: // Origo _) origo (_ oRigo: // Origo
or (iģ oR or (iģ oR
or (kā oR
or (ķest oR or (ķest oR
or (L01_+ o:R // ..ors or (L01_+ o:R // ..ors
_) or (L02_+ uoR // ore _) or (L02_+ uoR // ore
.group os .group os
ap) ostrof ostRo:f ap) ostrof ostRo:f
atm) os os atm) os os
b) os (L01_ os // boss
_blont) os (_ uos // Blontos _blont) os (_ uos // Blontos
b) os (L01_ os // boss
_cit) os (_ uos // citos _cit) os (_ uos // citos
_dat) os (_ uos _dat) os (_ uos
_d) osto (jevskL02_ osto // Dostojevskis _d) osto (jevskL02_ osto // Dostojevskis
f) osfo osfo: f) osfo osfo:
_gr) osto (nL04_ osto: // Grostona _gr) osto (nL04_ osto: // Grostona
iz) os uos iz) os uos
kāp) os (t uos
k) os (in os k) os (in os
k) os (m os k) os (m os
_k) osmo (sL01_ osmo // kosmoss _k) osmo (sL01_ osmo // kosmoss
osto (L65 uostuo osto (L65 uostuo
os (t_ uos os (t_ uos
p) os (m uos p) os (m uos
p) os (tC@ os
p) os (te os p) os (te os
p) os (ter os p) os (ter os
p) os (tind os
p) os (tī uos p) os (tī uos
p) os (tL56m os
p) os (tm os
p) os (tk os
p) os (tL01 uos
p) os (tL55m os
p) os (to uos p) os (to uos
p) os (tso os
p) os (tul os p) os (tul os
pr) os (p os pr) os (p os
pr) os (t os pr) os (t os
š) os (ej os š) os (ej os
_t) os (te os _t) os (te os
_t) os (tL01_ os // tosts _t) os (tL01_ os // tosts
v) osto (k osto
_z) os (L06_ uos // zoss _z) os (L06_ uos // zoss


.group ot .group ot

an) ot ot an) ot ot
ast) ot uot
av) ot uot av) ot uot
_bal) ot (ē ot _bal) ot (ē ot
bankr) ot ot
b) ot (ān ot b) ot (ān ot
d) ot (āc ot d) ot (āc ot
d) ot (ē ot d) ot (ē ot
er) ot (iL67 o:t er) ot (iL67 o:t
er) ot (is o:t er) ot (is o:t
_er) ot (L01_ ot // Erots
_ez) ot ot _ez) ot ot
f) oto (_ oto: f) oto (_ oto:
g) ot (ik o:t g) ot (ik o:t
k) ot (an ot k) ot (an ot
k) ot (L51 ot k) ot (L51 ot
k) ot (l ot k) ot (l ot
_L10pr) ot (L13_ uot // (ne|sa..)prot(i|u)
lin) ot (ip ot lin) ot (ip ot
_l) ot (iņL04 ot // Lotiņa _l) ot (iņL04 ot // Lotiņa
l) ot (L05_ ot // ..lote l) ot (L05_ ot // ..lote
nepr) ot uot nepr) ot uot
_n) ot (L04_ ot // nota _n) ot (L04_ ot // nota
n) ot (L50r ot n) ot (L50r ot
ot (āj uot
ot (k ot ot (k ot
m) otō oto:
_) oto (C< oto _) oto (C< oto
pil) ot ot pil) ot ot
_p) ot (ašL04 ot // potaša _p) ot (ašL04 ot // potaša
p) ot (eL68 ot p) ot (eL68 ot
pr) ot (am uot
pr) ot (e ot pr) ot (e ot
pr) ot (o ot pr) ot (o ot
pr) oto (š uotuo // protoš.. pr) oto (š uotuo // protoš..
pr) otot (ip otot pr) otot (ip otot
pr) oto (t uotuo // ..protot pr) oto (t uotuo // ..protot
pr) ot (u_ uot
publisk) ot uot publisk) ot uot
r) ot (āc ot r) ot (āc ot
r) ot (b ot
r) ot (er ot r) ot (er ot
r) ot (ē ot r) ot (ē ot
r) ot (kaL77 o`t
sab) ot ot sab) ot ot
sk) ot (L01_ ot sk) ot (L01_ ot
sl) ot (L04_ uot // slota sl) ot (L04_ uot // slota
sp) ot (+ ot sp) ot (+ ot
t) ot (ēm ot t) ot (ēm ot
t) ot (L50l ot t) ot (L50l ot
tr) ot ot
_v) ot (_++++++ ot // vot _v) ot (_++++++ ot // vot
zig) ot (L01_ ot // ..zigots zig) ot (L01_ ot // ..zigots
zig) ot (L04_ ot // ..zigota zig) ot (L04_ ot // ..zigota
v v v v
// unstressed if starts as vis.. prefix // unstressed if starts as vis.. prefix
// except for words where vis.. is part of root // except for words where vis.. is part of root
vecvec vetsvets
_) vi (sād v'i // visād _) vi (sād v'i // visād
_) vi (sēd v'i // visēd _) vi (sēd v'i // visēd
_) vi (skijL01_ v'i // viskijs _) vi (skijL01_ v'i // viskijs

+ 6
- 6
espeak-ng-data/lang/bat/lv View File

status mature status mature
words 0 2 words 0 2
pitch 64 118 pitch 64 118
breath 5 2 0 0 0 1
breathw 20 40 500 1200
formant 1 95 100 100 -5
breath 10 2 1 0 0 0
breathw 20 42 85 200 500 1200
formant 0 95 100 100 -5
//tunes s5 c5 q5 e5 //tunes s5 c5 q5 e5
tone 150 220 450 255 850 10 3500 255
stressAmp 12 10 10 8 0 0 18 15
stressLength 180 180 180 160 0 0 240 180
tone 150 220 450 255 750 20 3500 255
stressAmp 12 10 10 8 0 0 20 15
stressLength 180 180 180 160 0 0 250 180

+ 53
- 11
phsource/ph_latvian View File

phoneme i: phoneme i:
vwl starttype #i endtype #i vwl starttype #i endtype #i
length 300 length 300
FMT(vwl_lv/ii, 100) // was i_7
FMT(vwl_lv/ii, 90) // was i_7
endphoneme endphoneme




WAV(ustop/tsh,40) WAV(ustop/tsh,40)
endphoneme endphoneme


phoneme n-
phoneme n- // more voiced variant of n
vwl starttype #a endtype #a vwl starttype #a endtype #a
ipa nU+0329 ipa nU+0329
lengthmod 4 lengthmod 4
FMT(n/n-syl) FMT(n/n-syl)
endphoneme endphoneme


phoneme h // more quiet version of standard h
vls glt apr
lengthmod 3
ipa h

IF nextPh(#a) THEN
WAV(h/ha, 20)
ELIF nextPh(#e) THEN
WAV(h/he, 20)
ELIF nextPh(#i) THEN
WAV(h/hi, 20)
ELIF nextPh(#o) THEN
WAV(h/ho, 20)
ELIF nextPh(#u) THEN
WAV(h/hu, 20)
ENDIF
WAV(h/h_, 20) // no vowel following
endphoneme

phoneme R // Latvian hard r phoneme R // Latvian hard r
liquid trl liquid trl
lengthmod 6 lengthmod 6
length 5 length 5
endphoneme endphoneme


// TODO should use this with correct lengthening
//phoneme l
// liquid
// unstressed
// dnt
// length 150
// FMT(vwl_hi/l-voc)
//endphoneme

phoneme s phoneme s
vls alv frc sib vls alv frc sib
voicingswitch z voicingswitch z
WAV(ufric/s,60) WAV(ufric/s,60)
endphoneme endphoneme


phoneme j // **y**es
liquid pal starttype #i

IF nextPhW(isVowel) THEN
NextVowelStarts
VowelStart(j/j@)
VowelStart(j/ja)
VowelStart(j/je)
VowelStart(j/ji)
VowelStart(j/jo)
VowelStart(j/ju)
EndSwitch
VowelEnding(j/xj, 70) // In difference with English, vowel is lengthened, not shortened
ELSE
Vowelout len=127 // no vowel follows
FMT(j/xj)
ENDIF

IF prevPh(isPause) THEN
FMT(j/_j)
ENDIF
endphoneme

// TODO should use this with correct lengthening
//phoneme l
// liquid
// unstressed
// dnt
// length 150
// FMT(vwl_hi/l-voc)
//endphoneme


Loading…
Cancel
Save