Browse Source

Latvian language improvements: rule adjustments, updates for specific words, generic support for Russian language

master
Valdis Vitolins 8 years ago
parent
commit
6c5903fd4b
3 changed files with 220 additions and 73 deletions
  1. 22
    20
      dictsource/lv_list
  2. 183
    51
      dictsource/lv_rules
  3. 15
    2
      phsource/ph_latvian

+ 22
- 20
dictsource/lv_list View File

// This file is UTF8 encoded
// This file is UTF8 encoded
// Spelling-to-phoneme words for Latvian // Spelling-to-phoneme words for Latvian


// names of Latvian letters // names of Latvian letters
a a>_:
a a>_:
ā a::_! ā a::_!
b be:_: b be:_:
c tse:_: c tse:_:
ž Ze:_: ž Ze:_:


// Names of Greek letters // Names of Greek letters
α 'alfa
α 'alfa
β b'e>ta β b'e>ta
γ g'amma
γ g'amma
δ d'elta δ d'elta
ε 'epsilo:ns
ε 'epsilo:ns
ζ z'e>ta ζ z'e>ta
η 'e>ta
η 'e>ta
θ t'e>ta θ t'e>ta
ι j'ota
ι j'ota
κ k'apa κ k'apa
λ l'am>da
λ l'am>da
μ m'i: μ m'i:
ν n'i: ν n'i:
ξ ks'i: ξ ks'i:
ο 'omikRo:ns
ο 'omikRo:ns
π p'i: π p'i:
ρ R'o:
ρ R'o:
σ s'igma σ s'igma
τ t'au
τ t'au
υ 'ipsilo:ns υ 'ipsilo:ns
φ f'i:
φ f'i:
χ h'i: χ h'i:
ψ ps'i:
ψ ps'i:
ω 'omega ω 'omega


// diphthong consonants // diphthong consonants
_0Co s'imtais _0Co s'imtais




// accent names
// accent names
_lig l'igatu:Ra _lig l'igatu:Ra
_acu 'aku:ts _acu 'aku:ts
_ac2 d'ubultaku:ts _ac2 d'ubultaku:ts
kurai $u+ kurai $u+
kuram $u+ kuram $u+
kuras $u+ kuras $u+
kura $u+
kura $u+
kurā $u+ kurā $u+
kurš $u+ kurš $u+
kuru $u+ kuru $u+
co $abbrev co $abbrev
dr $abbrev dr $abbrev
dz $abbrev dz $abbrev
eest $abbrev
est $abbrev
eur 'euR eur 'euR
lnnk 'ell_,en_,en_k'a: $pause lnnk 'ell_,en_,en_k'a: $pause
lp $abbrev lp $abbrev
lu $abbrev lu $abbrev
lvu $abbrev lvu $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 p'e:_ts,e:_t,e:_v,e:_'ell_ $pause
prks $abbrev prks $abbrev
tml $abbrev $u $pause tml $abbrev $u $pause
tp t,e:_p'e: $pause tp t,e:_p'e: $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 z'e:_z,e:_'ess $pause


bordo $alt bordo $alt
borneo $alt borneo $alt
bravo $alt bravo $alt
brno $alt
brno $alt
bruno $alt bruno $alt
bruto $alt bruto $alt
bufalo $alt bufalo $alt
eldorado $alt $3 eldorado $alt $3
embargo $alt $2 embargo $alt $2
esperanto $alt esperanto $alt
euro $alt
euro $alt
fiasko $alt $2 fiasko $alt $2
fito $alt fito $alt
flamenko $alt $2 flamenko $alt $2
oracle $alt oracle $alt
oregano $alt $3 oregano $alt $3
orinoko $alt orinoko $alt
oslo $alt
oslo $alt
otello $alt $2 otello $alt $2
oto $alt oto $alt
otto $alt otto $alt

+ 183
- 51
dictsource/lv_rules View File

.L45 b c č d g ģ j k ķ l ļ m n ņ p r ŗ s š t v z ž // non-o/ō consonants .L45 b c č d g ģ j k ķ l ļ m n ņ p r ŗ s š t v z ž // non-o/ō consonants
.L46 ā ē ī ū // uo indicator vowels .L46 ā ē ī ū // uo indicator vowels


// +---------------------------+
// | Russian letters |
// +---------------------------+

.L47 я е ё и ю ь // soft Russian vowels and soft delimiter
.L48 а э о ы у // hard Russian vowels
.L49 б в г д ж з к л м н п р с т ф х ц ч ш щ // Russian consonants

// +---------------------------+ // +---------------------------+
// | Vowel groups | // | Vowel groups |
// +---------------------------+ // +---------------------------+
.L56 a e i u // short vowels without o .L56 a e i u // short vowels without o
.L57 ā ē ī ū ō // long vowels including ō .L57 ā ē ī ū ō // long vowels including ō
.L58 ā ē ī ū // long vowels without ō .L58 ā ē ī ū // long vowels without ō
.L59 ae ai ei ie io iu oi ui uo // Dipthongs


// +---------------------------+ // +---------------------------+
// | Consonant groups | // | Consonant groups |
.L91 zl žļ // zizlis - zižļa .L91 zl žļ // zizlis - zižļa
.L92 zn žņ // zvaigzne - zvaigžņu .L92 zn žņ // zvaigzne - zvaigžņu


.L93 m l n // vowel (pre)lengtheners — vowels after these are spelled longer than usual
// j is vowel (post)lengthener, but as only one is handled in group j


// +---------------------------+ // +---------------------------+
// | Pronunciation groups | // | Pronunciation groups |
ai ai ai ai
aie a_!ie // a-ie is more frequent than ai-e aie a_!ie // a-ie is more frequent than ai-e
au au au au
L93) a (C@ a>
L93) a (L93 a
L93) ai (@ ai:
L93) au (@ au:


.group ā .group ā
ā a: ā a:
ā (A a:_! ā (A a:_!
L93) ā (@ a::


.group b .group b
b b b b


.group c .group c
c ts c ts
L55) c (L55 ts>
c (C ts_! c (C ts_!


.group č .group č
č tS č tS
L55) č (L55 tS>


.group d .group d
d d d d
L25) e (L18_+ E // vareni etc. L25) e (L18_+ E // vareni etc.


// specific words ----------------------------------------------------------------- // // specific words ----------------------------------------------------------------- //
e (lL88 e // ..el[tš]
b) e (dL82L05_ e // bedre b) e (dL82L05_ e // bedre
_b) e (t_ e _b) e (t_ e
_b) e (z e _b) e (z e
_b) e (z_ e _b) e (z_ e
_C) e (_ e // re, te, ve _C) e (_ e // re, te, ve
_č) e (trL07_ e // četri
c) e (tur e
č) e (tr e
d) ebe (L83 ebe d) ebe (L83 ebe
d) ebe (t ebe d) ebe (t ebe
_d) e (c e _d) e (c e
_d) e (poz e _d) e (poz e
_dr) e (nL04_ e _dr) e (nL04_ e
_) e (dgarL01_ e // Edgars
elem elem elem elem
_) e (lgL04_ e // Elga _) e (lgL04_ e // Elga
e (lL88 e // ..el[tš]
_) e (lzL04_ e // Elza _) e (lzL04_ e // Elza
ene (r ene ene (r ene
_L20) e (sam_+ _!e // esam
_L20) e (sat_+ _!e // esat
e (nt+ e
_) e (s_ e // es _) e (s_ e // es
_L20) e (si_ _!e // esi
_L20) e (smu_ _!e // esmu
etno etno
g) e (t e g) e (t e
gr) e (dz E
gr) e (z E
ģ) enē (z ene: ģ) enē (z ene:
int) e (r e int) e (r e
int) ere (L83 eRe int) ere (L83 eRe
_j) e (b_ e _j) e (b_ e
_j) e (l_ e _j) e (l_ e
_L20) e (sam_+ _!e // esam
_L20) e (sat_+ _!e // esat
_L20) e (si_ _!e // esi
_L20) e (smu_ _!e // esmu
_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 (tr e m) e (tr e
_n) e (@+ e _n) e (@+ e
_n) ere (tL04_ ERE // Nereta _n) ere (tL04_ ERE // Nereta
_pr) e (t e _pr) e (t e
pr) etē (@ ete: pr) etē (@ ete:
r) ecep (L88L05_ etsep // recepte r) ecep (L88L05_ etsep // recepte
r) e (dz e
r) e (sp e
r) e (surs e
r) et (L18_ et // reti r) et (L18_ et // reti
r) e (z+ e
r) eze (rL89L05_ eze // rezerve r) eze (rL89L05_ eze // rezerve
_s) e (n_ e // sen _s) e (n_ e // sen
_s) e (p e _s) e (p e
_s) evastopo (lL05_ evastopo: // Sevastopole _s) evastopo (lL05_ evastopo: // Sevastopole
_s) e (v_ e // sev _s) e (v_ e // sev
_s) e (vi_ e _s) e (vi_ e
st) e (nd e
t) e (c+ e
t) ego ego: t) ego ego:
_t) e (klL04_ e // Tekla _t) e (klL04_ e // Tekla
t) e (km e
_t) e (mp e _t) e (mp e
t) ermo eRmo t) ermo eRmo
t) e (st e
_t) e (v_ e // tev _t) e (v_ e // tev
_v) e (lgL04_ e // Velga _v) e (lgL04_ e // Velga
_v) e (ltL04_ e // Velta _v) e (ltL04_ e // Velta
_z) e (lmL04_ e // Zelma _z) e (lmL04_ e // Zelma
_z) e (m e _z) e (m e
// z) eme (L80L05_ 'e'me // zemene


.group ē .group ē
ē e: // Default as narrow ē ē e: // Default as narrow ē
_m) ē (s_ e: // mēs _m) ē (s_ e: // mēs
_n) ē (_ e: _n) ē (_ e:
_p) ē (c+ e: _p) ē (c+ e:
_p) ē (rL01_ e: // pērs
p) ēte (r e:te // Pēter.. p) ēte (r e:te // Pēter..
sāp) ē (+ e: sāp) ē (+ e:
_s) ē (dL05_ e: // sēde _s) ē (dL05_ e: // sēde
_tāp) ē (c_ e: // tāpēc _tāp) ē (c_ e: // tāpēc
t) ē (L90 e: t) ē (L90 e:
t) ē (mL04_ e: // ..tēma t) ē (mL04_ e: // ..tēma
_v) ē (rā_ e: // vērā
v) ērtē e:Rte: v) ērtē e:Rte:


.group f .group f
f f f f
L55) f (L55 f>


.group g .group g
g g g g


.group h .group h
h h h h
L55) h (L55 h>


.group i .group i
i i i i
i (A i_! i (A i_!
ie ie ie ie
L93) i (C@ i>
L93) ie (@ ie:
ikv) ie (n 'ie // stress on 2nd syllable ikv) ie (n 'ie // stress on 2nd syllable
iu iu iu iu


ī i: ī i:


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


.group k .group k
k k k k
L55) k (L55 k>
k (ļ k} // tiny pause between k and ļ k (ļ k} // tiny pause between k and ļ


.group ķ .group ķ
ķ c ķ c
L55) ķ (L55 c>
ķ (L55 c} // tiny pause for sharper sound before short vowels ķ (L55 c} // tiny pause for sharper sound before short vowels


.group l .group l
L56) l (@ >l // short vowels (or diphthongs) before
o) l (@ :l // short vowels before
CL57) l (@ :l // long vowels before
l l l l
ll (++ ll // espeak says doubled ll shorter than doubled ļļ
C) l (C l- // more voiced variant between consonants C) l (C l- // more voiced variant between consonants
L55) l (@ >l
L57) l (@ :l
L59) l (@+ :l
ll (++ ll


.group ļ .group ļ
ļ l^ ļ l^
ļ (ķ l^}


.group m .group m
L55) m (@ >m
m m m m
C) m (C m- // more voiced variant between consonants C) m (C m- // more voiced variant between consonants
mm >m:


.group n .group n
n n n n
C) n (C n- // more voiced variant between consonants C) n (C n- // more voiced variant between consonants
L59) n (@ :n
n (d N n (d N
_) 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
nn nn: // espeak says doubled nn shorter that doubled ņņ
nn n:


.group ņ .group ņ
ņ n^ ņ n^


L41J) o (lL01_+ o: // [fhqxw]..ols L41J) o (lL01_+ o: // [fhqxw]..ols
oJ) o (lL01_ o: // o...ols oJ) o (lL01_ o: // o...ols
o (L62% o
o (L62%+ o


aer) o o: aer) o o:
agn) o o agn) o o
bar) o o bar) o o
_bar) o (_ uo _bar) o (_ uo
bet) o o bet) o o
bir) o o
biz) o (L65+ uo biz) o (L65+ uo
blāv) o uo blāv) o uo
blef) o uo
bl) o (ķ o bl) o (ķ o
_b) o (L77L05_ uo // bole _b) o (L77L05_ uo // bole
_b) o (L88L05_ o // bote _b) o (L88L05_ o // bote
_b) o (L90L05_++ uo // boze _b) o (L90L05_++ uo // boze
b) o (līL65 uo
br) o (š o br) o (š o
celm) o uo celm) o uo
cet) o o cet) o o
daktil) o o daktil) o o
darb) o (L65 uo darb) o (L65 uo
dat) o o dat) o o
deg) o (L65 uo
dek) o o dek) o o
dem) o o dem) o o
den) o o den) o o
epiz) o (L72 o: epiz) o (L72 o:
epr) o o epr) o o
ept) o (@ o ept) o (@ o
etn) o o
eur) o o eur) o o
gen) o o gen) o o
get) o o get) o o
inkas) o o inkas) o o
interp) o o interp) o o
intr) o o intr) o o
i) o (CL01_ o:
i) o (CL04_ o:
i) o (CL05_ o:
ip) o o ip) o o
ir) o (L64 uo ir) o (L64 uo
itr) o o itr) o o
iz) o o iz) o o
jān) o (+ uo jān) o (+ uo
j) o (L90++ uo j) o (L90++ uo
_j) o (_ uo
kaif) o (L65 uo kaif) o (L65 uo
kain) o o kain) o o
kant) o uo
karb) o o karb) o o
kart) o o kart) o o
_kastr) o (L77L02_ uo // kastrolis _kastr) o (L77L02_ uo // kastrolis
k) o (ķ o k) o (ķ o
kol) o o kol) o o
kons) o o kons) o o
kontr) o o:
kontr) o (JL56 o:
konv) o o konv) o o
kript) o o kript) o o
kr) o (L80 uo kr) o (L80 uo
vec) o uo vec) o uo
vel) o o vel) o o
versm) o uo // versmo versm) o uo // versmo
viegl) o (+ uo
vizm) o uo vizm) o uo
zil) o (L80 uo zil) o (L80 uo
žēl) o (L65+ uo žēl) o (L65+ uo


.group od .group od
an) od o:d an) od o:d
_ar) od uod
atm) od uod atm) od uod
čem) od od čem) od od
d) od (ek od d) od (ek od
_m) od (L05_ uod // mode TODO should think how to handle mōda _m) od (L05_ uod // mode TODO should think how to handle mōda
m) od (L50l od m) od (L50l od
m) od (u od m) od (u od
m) od (uš uod
n) od (L05_ o:d // ..node n) od (L05_ o:d // ..node
_) od (ek od _) od (ek od
od (erL51 uod od (erL51 uod
adv) ok ok adv) ok ok
ap) ok ok ap) ok ok
apr) ok uok apr) ok uok
bar) ok (L01_ ok // baroks
_bar) ok (L77L02_ uok // baroklis _bar) ok (L77L02_ uok // baroklis
bl) ok ok bl) ok ok
b) ok (s ok b) ok (s ok
pr) ok ok pr) ok ok
prot) oko oko: prot) oko oko:
_r) ok (ādL05_ ok // rokāde _r) ok (ādL05_ ok // rokāde
r) ok (L04_ uok // ..roka
r) ok (m ok r) ok (m ok
r) okope oko:p r) okope oko:p
r) ok (tu uok r) ok (tu uok
v) ol (ej ol v) ol (ej ol
v) ol (t ol v) ol (t ol
v) ol (u ol v) ol (u ol
zīm) ol uol
z) ol (it ol z) ol (it ol
@z) ol (L01_ o:l // ..zols @z) ol (L01_ o:l // ..zols
z) ol (L05_ uol // ..zole z) ol (L05_ uol // ..zole
om (nib om om (nib om
omot (o omot omot (o omot
_) om (s o:m _) om (s o:m
pārd) om uom
pārd) om (+ uom
pl) om om pl) om om
p) om (er om p) om (er om
p) om (p om p) om (p om
.group oo .group oo
_aut) oo (stL01_ o:uo // autoosta _aut) oo (stL01_ o:uo // autoosta
k) oo (per o:o k) oo (per o:o
k) oo (rd o:o
oo (_ oo: oo (_ oo:
z) oo oo: z) oo oo:


eir) op (L04_ o:p eir) op (L04_ o:p
eir) op op eir) op op
_gal) op (L01_ op // galops _gal) op (L01_ op // galops
k) op (pr uop // ..koppr..
k) op (en op // Kopenhāgena k) op (en op // Kopenhāgena
k) op (ēC op // ..kopēt../..kopēš.. k) op (ēC op // ..kopēt../..kopēš..
_k) op (ējais_ uop // kopējais
k) op (ējL01_ uop // ..kopējs k) op (ējL01_ uop // ..kopējs
k) op (ējL04_ uop // ..kopēja k) op (ējL04_ uop // ..kopēja
_k) op (ējo_ uop // kopējo _k) op (ējo_ uop // kopējo
k) op (j uop // ..kopj.. k) op (j uop // ..kopj..
_k) op (L04_ uop // kopa _k) op (L04_ uop // kopa
k) opo uopuo k) opo uopuo
k) op (pr uop // ..koppr..
k) op (ulā op k) op (ulā op
k) op (ulē op k) op (ulē op
kr) op (ļo uop kr) op (ļo uop
_hl) or (L01_ o:R // hlors _hl) or (L01_ o:R // hlors
_ig) or (L01_ o:R // Igors _ig) or (L01_ o:R // Igors
kal) or o:R kal) or o:R
kant) or uoR
k) or (a oR k) or (a oR
_k) or (ā oR _k) or (ā oR
k) orbo oRbo k) orbo oRbo
m) or (L50 oR m) or (L50 oR
m) or (s oR m) or (s oR
n) or (b oR n) or (b oR
_n) or (mL04_ o>R // norma
n) or (m oR n) or (m oR
n) or (v oR n) or (v oR
or (an+ oR or (an+ oR
_l) oto (sL01_ oto // lotoss _l) oto (sL01_ oto // lotoss
m) ot (L52 ot m) ot (L52 ot
m) oto oto: m) oto oto:
nepr) ot uot
_n) ot (L04_ ot // nota _n) ot (L04_ ot // nota
n) ot (L50r ot n) ot (L50r ot
_) oto (C< oto _) oto (C< oto
n) ov (āci ov n) ov (āci ov
n) ov (elL05_ ov // novele n) ov (elL05_ ov // novele
_n) ov (emb ov // novembris _n) ov (emb ov // novembris
n) ov (it ov
n) ov (L04_ ov // nova n) ov (L04_ ov // nova
n) ov (o ov n) ov (o ov
_) ov (āc ov _) ov (āc ov
p) oz oz p) oz oz
_r) oz (eL88L05_ oz // rozete _r) oz (eL88L05_ oz // rozete
_r) oz (īL80L05_ oz // rozīne _r) oz (īL80L05_ oz // rozīne
skandal) oz o:z
sp) oz (m uoz sp) oz (m uoz
_š) oz (iem_ uoz // šoziem _š) oz (iem_ uoz // šoziem
_t) oz (iem_ uoz // toziem _t) oz (iem_ uoz // toziem


.group p .group p
p p p p
L55) p (L55 p>
_) pus (vien p%us // pus..number stress on next syllable _) pus (vien p%us // pus..number stress on next syllable
_) pus (div p%us _) pus (div p%us
_) pus (otr p%us _) pus (otr p%us
sh s_!h_! // probably no need to make distinct in other places sh s_!h_! // probably no need to make distinct in other places
_) s (L61 s_ // make s distinct at start of the word before unvocied consonants _) s (L61 s_ // make s distinct at start of the word before unvocied consonants
s s s s
L55) s (L55 s>


.group š .group š
š S š S
L55) š (L55 S>


.group t .group t
t t t t
L55) t (L55 t>


.group u .group u
ui ui
u u u u
ui ui
u (u u_! u (u u_!
L93) u (C@ u>
L93) u (L93 u
L93) ui (@ ui>

.group ū .group ū
ū u: ū u:


C) x _ks C) x _ks


.group y .group y
y j
C) y i
y (C i
y (_ i
y y // y is used instead of simple "i", to distinguish them in writing


.group z .group z
z z z z
.group ž .group ž
ž Z ž Z



// Russian writing

.group а
а a

.group б
б b

.group в
в v

.group г
г g
г(L47 J

.group д
д d
д(L47 J

.group е
е je
L49) е e

.group ё
ё jo
L49) ё o

.group є
є e

.group ж
ж Z

.group з
з z

.group и
и i

.group й
й j

.group к
к k

.group л
л l
л(L47 l^

.group м
м m

.group н
н n
н(L47 n^

.group о
о o

.group п
п p

.group р
р R

.group с
с s

.group т
т t
т(L47 c}

.group у
у u

.group ф
ф f

.group х
х h

.group ц
ц ts

.group ч
ч tS

.group ш
ш S

.group щ
щ StS

.group ы
ы y

.group э
э e

.group ю
ю ju
L49) ю u

.group я
я ja
L49) я a

.group ь
ь _!

.group ъ
ъ _!

// Other characters

.group .group

! (\! ! (\!
. (. _: . (. _:
' '

+ 15
- 2
phsource/ph_latvian View File

vwl starttype #a endtype #a vwl starttype #a endtype #a
length 300 length 300
lng lng
FMT(vwl_lv/aa, 90)
FMT(vwl_lv/aa, 90)
endphoneme endphoneme


phoneme E phoneme E
FMT(vwl_lv/ii, 100) // was i_7 FMT(vwl_lv/ii, 100) // was i_7
endphoneme endphoneme



phoneme y // English y, short Latgalian "hard i"
vwl starttype #i endtype #i
length 120
FMT(vowel/y_2)
endphoneme

phoneme y: // Long Latgalian "hard i"
vwl starttype #i endtype #i
length 300
FMT(vowel/y_2)
endphoneme

phoneme o phoneme o
vwl starttype #o endtype #o vwl starttype #o endtype #o
length 120 length 120


phoneme o: phoneme o:
vwl starttype #o endtype #o vwl starttype #o endtype #o
length 310
length 300
FMT(vwl_lv/oo, 75) FMT(vwl_lv/oo, 75)
endphoneme endphoneme



Loading…
Cancel
Save