From 774d9ebd826fdc99a5dac87c6315624c1ea40e18 Mon Sep 17 00:00:00 2001 From: Valdis Vitolins Date: Thu, 7 Jan 2016 01:06:31 +0200 Subject: [PATCH 1/2] Latvian language improvements. lv_list fix. --- dictsource/lv_list | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dictsource/lv_list b/dictsource/lv_list index 4567de78..aa81e595 100644 --- a/dictsource/lv_list +++ b/dictsource/lv_list @@ -253,6 +253,7 @@ jebkur $2 labdien $2 labvakar $2 nekad $2 +neko $2 nekur $2 pagalam $2 palaikam $2 @@ -272,7 +273,7 @@ turpretī $2 (kaut cik) $2 (kaut kā) $2 (nez kad) $2 -(nezin kad) $2 +(nezin kad) $3 (nezin kur) $3 From 05c8695b51d598a197373acc5993cc9ff4a00617 Mon Sep 17 00:00:00 2001 From: Valdis Vitolins Date: Tue, 19 Jan 2016 22:47:54 +0200 Subject: [PATCH 2/2] Latvian language improvements. New vowel definitions, fixes in rules and voice intonation. --- dictsource/lv_list | 2 + dictsource/lv_rules | 26 +++++---- espeak-data/voices/europe/lv | 2 +- phsource/ph_latvian | 94 ++++++++++++++++----------------- phsource/vwl_lv/E | Bin 0 -> 1509 bytes phsource/vwl_lv/EE | Bin 0 -> 1510 bytes phsource/vwl_lv/a | Bin 0 -> 4509 bytes phsource/vwl_lv/aa | Bin 0 -> 4510 bytes phsource/vwl_lv/e | Bin 0 -> 4510 bytes phsource/vwl_lv/ee | Bin 0 -> 4510 bytes phsource/vwl_lv/i | Bin 0 -> 4509 bytes phsource/vwl_lv/ii | Bin 0 -> 4510 bytes phsource/vwl_lv/o | Bin 0 -> 1589 bytes phsource/vwl_lv/oo | Bin 0 -> 1590 bytes phsource/vwl_lv/u | Bin 0 -> 4509 bytes phsource/vwl_lv/uu | Bin 0 -> 4510 bytes phsource/vwl_lv/vowelchart.png | Bin 0 -> 16391 bytes 17 files changed, 65 insertions(+), 59 deletions(-) create mode 100644 phsource/vwl_lv/E create mode 100644 phsource/vwl_lv/EE create mode 100644 phsource/vwl_lv/a create mode 100644 phsource/vwl_lv/aa create mode 100644 phsource/vwl_lv/e create mode 100644 phsource/vwl_lv/ee create mode 100644 phsource/vwl_lv/i create mode 100644 phsource/vwl_lv/ii create mode 100644 phsource/vwl_lv/o create mode 100644 phsource/vwl_lv/oo create mode 100644 phsource/vwl_lv/u create mode 100644 phsource/vwl_lv/uu create mode 100644 phsource/vwl_lv/vowelchart.png diff --git a/dictsource/lv_list b/dictsource/lv_list index aa81e595..97ae44a4 100644 --- a/dictsource/lv_list +++ b/dictsource/lv_list @@ -250,6 +250,8 @@ aizvien $2 arvien $2 jebkad $2 jebkur $2 +joprojām $2 +kautko $2 labdien $2 labvakar $2 nekad $2 diff --git a/dictsource/lv_rules b/dictsource/lv_rules index 7187eefb..73dcf124 100644 --- a/dictsource/lv_rules +++ b/dictsource/lv_rules @@ -33,9 +33,9 @@ // +---------------------------+ // E narrowers -.L21 i ī ie ei // vowel narrowers of e +.L21 i ī ie ei y // vowel narrowers of e .L22 j k ģ ļ ņ ŗ š ž č dž // consonant narrowers of e -.L26 f h ḩ // international consonants as a narrowers of e +.L26 f h ḩ q x w // international consonants as a narrowers of e .L23 s i m // remaining ending of the 2. and 5. decl. words // E wideners @@ -48,8 +48,8 @@ // +---------------------------+ // Default rules for o with succeeding consonants -.L40 č ģ ķ ļ ņ ŗ š ž // uo indicator letters o is spelled as uo with Latvian soft consonants -.L41 f h w x y // o indicators — o is spelled as o with Latin letters +.L40 č ģ ķ ļ ņ ŗ š ž // uo indicator letters o is spelled as uo with Latvian soft consonants +.L41 f h q w x y // o indicators — o is spelled as o with Latin letters .L42 i e o // o vowel pre/postfixes .L43 lg ng zn // o postfixes @@ -73,7 +73,7 @@ // | All letters | // +---------------------------+ // These are used for "." like padding -.L88 a ā b c č d e ē f g ģ h ḩ i ī j k ķ l ļ m n ņ o ō p r ŗ s š t u ū v w x y z ž - +.L88 a ā b c č d e ē f g ģ h ḩ i ī j k ķ l ļ m n ņ o ō p q r ŗ s š t u ū v w x y z ž // +---------------------------+ // | Pronunciation groups | @@ -278,10 +278,10 @@ L42) o o: // o prefixes o (L43 o // o postfixes - L41) o (L88 o // o indicators before - L41L88) o (L88 o - L41L88L88) o (L88 o - L41L88L88L88) o (L88 o + L41) o o // o indicators before + L41L88) o o + L41L88L88) o o +L41L88L88L88) o o o (L41 o // o indicators after o (L88L41 o o (L88L88L41 o @@ -293,12 +293,15 @@ o (L44 uo // uo postfixes + _femt) o o _kil) o o // international prefixes _mikr) o (+ o // otherwise conflicts with ..kroko(t/d).. _micr) o o _nan) o o _pik) o o _hekt) o o + _yokt) o o + _zept) o o _m) ono ono: _stere) o o: @@ -707,7 +710,7 @@ lj) o o: l) o (ģ o: l) o (ģiz+ o - l) o (jL50 l o + l) o (jL50 o _l) o (litL04_ o // Lolita l) o (kal o l) okomo okomo @@ -877,7 +880,7 @@ _) o (mi o: o (ng o o (nko o - o (pL01_+ o: // ..ops + @) o (pL01_+ o: // ..ops o (nL01_+ o: // ..ons o (no o on) o o @@ -1182,6 +1185,7 @@ _t) opo (n opo t) opo (t uopuo t) opo (š uopuo + _t) o (pL01_ o t) o (ra o t) o (rā o _t) o (reiz_ uo // toreiz diff --git a/espeak-data/voices/europe/lv b/espeak-data/voices/europe/lv index 8c5a104a..4d6bd421 100644 --- a/espeak-data/voices/europe/lv +++ b/espeak-data/voices/europe/lv @@ -2,7 +2,7 @@ name latvian language lv gender male - +words 0 2 //intonation 2 //tunes s5 c5 q5 e5 diff --git a/phsource/ph_latvian b/phsource/ph_latvian index 97f012c7..1fbe7b1b 100644 --- a/phsource/ph_latvian +++ b/phsource/ph_latvian @@ -3,18 +3,18 @@ // ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN // FMT(vowel/..., 50) // ELSE -// FMT(vowel/..., 75) +// FMT(vowel/..., 80) // ENDIF phoneme a vowel starttype #a endtype #a length 120 IF thisPh(isStressed) THEN - FMT(vowel/aa_7, 90) // other possible variants: a_3, a_5 or aa_7 + FMT(vwl_lv/a, 100) // adjusted from aa_3 ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN - FMT(vowel/aa_7, 45) + FMT(vwl_lv/a, 50) ELSE - FMT(vowel/aa_7, 68) + FMT(vwl_lv/a, 80) ENDIF endphoneme @@ -23,11 +23,11 @@ phoneme a: length 300 long IF thisPh(isStressed) THEN - FMT(vowel/aa_9, 80) // other possible variants: a_3 + FMT(vwl_lv/aa, 100) ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN - FMT(vowel/aa_9, 40) + FMT(vwl_lv/aa, 50) ELSE - FMT(vowel/aa_9, 60) + FMT(vwl_lv/aa, 80) ENDIF endphoneme @@ -35,11 +35,11 @@ phoneme E vowel starttype #e endtype #e length 120 IF thisPh(isStressed) THEN - FMT(vowel/ee_3, 90) + FMT(vwl_lv/E, 100) ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN - FMT(vowel/ee_3, 45) + FMT(vwl_lv/E, 50) ELSE - FMT(vowel/ee_3, 68) + FMT(vwl_lv/E, 80) ENDIF endphoneme @@ -47,11 +47,11 @@ phoneme E: vowel starttype #e endtype #e length 300 IF thisPh(isStressed) THEN - FMT(vowel/ee_5, 60) + FMT(vwl_lv/EE, 100) ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN - FMT(vowel/ee_5, 30) + FMT(vwl_lv/EE, 50) ELSE - FMT(vowel/ee_5, 45) + FMT(vwl_lv/EE, 80) ENDIF endphoneme @@ -59,11 +59,11 @@ phoneme e vowel starttype #e endtype #e length 120 IF thisPh(isStressed) THEN - FMT(vowel/e_9, 100) // other alternative e_5 + FMT(vwl_lv/e, 100) // other alternative e_5 ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN - FMT(vowel/e_9, 50) + FMT(vwl_lv/e, 50) ELSE - FMT(vowel/e_9, 75) + FMT(vwl_lv/e, 80) ENDIF endphoneme @@ -71,11 +71,11 @@ phoneme e: vowel starttype #e endtype #e length 300 IF thisPh(isStressed) THEN - FMT(vowel/e_mid2, 100) // other alternative e_8 + FMT(vwl_lv/ee, 100) // other alternative e_8 ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN - FMT(vowel/e_mid2, 50) + FMT(vwl_lv/ee, 50) ELSE - FMT(vowel/e_mid2, 75) + FMT(vwl_lv/ee, 80) ENDIF endphoneme @@ -83,11 +83,11 @@ phoneme i vowel starttype #i endtype #i length 120 IF thisPh(isStressed) THEN - FMT(vowel/i_6, 140) + FMT(vwl_lv/i, 110) // was i_6 ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN - FMT(vowel/i_6, 70) + FMT(vwl_lv/i, 55) ELSE - FMT(vowel/i_6, 105) + FMT(vwl_lv/i, 88) ENDIF endphoneme @@ -95,11 +95,11 @@ phoneme i: vowel starttype #i endtype #i length 300 IF thisPh(isStressed) THEN - FMT(vowel/i_7, 120) + FMT(vwl_lv/ii, 110) // was i_7 ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN - FMT(vowel/i_7, 60) + FMT(vwl_lv/ii, 55) ELSE - FMT(vowel/i_7, 90) + FMT(vwl_lv/ii, 88) ENDIF endphoneme @@ -107,11 +107,11 @@ phoneme o vowel starttype #o endtype #o length 120 IF thisPh(isStressed) THEN - FMT(vowel/oo_2, 100) + FMT(vwl_lv/o, 90) ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN - FMT(vowel/oo_2, 50) + FMT(vwl_lv/o, 45) ELSE - FMT(vowel/oo_2, 75) + FMT(vwl_lv/o, 68) ENDIF endphoneme @@ -119,11 +119,11 @@ phoneme o: vowel starttype #o endtype #o length 300 IF thisPh(isStressed) THEN - FMT(vowel/oo_1, 90) + FMT(vwl_lv/oo, 80) ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN - FMT(vowel/oo_1, 45) + FMT(vwl_lv/oo, 40) ELSE - FMT(vowel/oo_1, 68) + FMT(vwl_lv/oo, 60) ENDIF endphoneme @@ -131,11 +131,11 @@ phoneme u vowel starttype #u endtype #u length 120 IF thisPh(isMaxStress) THEN - FMT(vowel/u, 140) + FMT(vwl_lv/u, 140) ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN - FMT(vowel/u, 70) + FMT(vwl_lv/u, 70) ELSE - FMT(vowel/u, 105) + FMT(vwl_lv/u, 105) ENDIF endphoneme @@ -143,11 +143,11 @@ phoneme u: vowel starttype #u endtype #u length 300 IF thisPh(isMaxStress) THEN - FMT(vowel/u_3, 120) + FMT(vwl_lv/uu, 120) ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN - FMT(vowel/u_3, 60) + FMT(vwl_lv/uu, 60) ELSE - FMT(vowel/u_3, 90) + FMT(vwl_lv/uu, 90) ENDIF endphoneme @@ -160,7 +160,7 @@ phoneme ai ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN FMT(vdiph/aai, 50) ELSE - FMT(vdiph/aai, 75) + FMT(vdiph/aai, 80) ENDIF endphoneme @@ -173,7 +173,7 @@ phoneme au ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN FMT(vdiph/aau, 50) ELSE - FMT(vdiph/aau, 75) + FMT(vdiph/aau, 80) ENDIF endphoneme @@ -186,7 +186,7 @@ phoneme ei ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN FMT(vdiph/eei_2, 50) ELSE - FMT(vdiph/eei_2, 75) + FMT(vdiph/eei_2, 80) ENDIF endphoneme @@ -199,7 +199,7 @@ phoneme ie ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN FMT(vdiph2/ie_2, 50) ELSE - FMT(vdiph2/ie_2, 75) + FMT(vdiph2/ie_2, 80) ENDIF endphoneme @@ -212,7 +212,7 @@ phoneme iu ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN FMT(vdiph2/iu_2, 50) ELSE - FMT(vdiph2/iu_2, 75) + FMT(vdiph2/iu_2, 80) ENDIF endphoneme @@ -225,7 +225,7 @@ phoneme ui ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN FMT(vdiph/ui, 50) ELSE - FMT(vdiph/ui, 75) + FMT(vdiph/ui, 80) ENDIF endphoneme @@ -234,11 +234,11 @@ phoneme uo length 200 //long IF thisPh(isMaxStress) THEN - FMT(vdiph2/uaa, 100) + FMT(vdiph2/uaa 100) ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN - FMT(vdiph2/uaa, 50) + FMT(vdiph2/uaa 50) ELSE - FMT(vdiph2/uaa, 75) + FMT(vdiph2/uaa 80) ENDIF endphoneme @@ -251,7 +251,7 @@ phoneme oi ELIF thisPh(isDiminished) AND NOT prevVowel(isStressed) THEN FMT(vdiph/ooi, 50) ELSE - FMT(vdiph/ooi, 75) + FMT(vdiph/ooi, 80) ENDIF endphoneme diff --git a/phsource/vwl_lv/E b/phsource/vwl_lv/E new file mode 100644 index 0000000000000000000000000000000000000000..83415a1341b1bcfdf28d5847b68b1d9e0b9b97a0 GIT binary patch literal 1509 zcmeH{y-EW?6otRt%|9Dg5kepki-1Jzgji_AO(cT&Lqcq{3hDz0TBNiPL9no}FjhW^ zq_l|O8<>Z%(tzICjmhptt27oFxXhhz&cJYHIQ42}W4~To(tt{c6Pdij4u3tmYukA4 zZwy&kNU={LreR(hJ>x)#DtOaLceSo|D7`A^M%w9D{Z7A;UKO0jNhwW8ZlDTIlWo&a ziq=KcPa2uFuE@KbPzB8_0g}(nd&sI1IV1nm4CWG5>T>5>&e&v|9riflo+qwZV}TOK zG`XTCI-4!gEVC=BISMSY!Za39Oky(6$SO%fI@95n^d@2AvTI16WJ=bvWXX^cRf33A zjP;LB=f%0v&|f?3dIUpOM)$nZ#PhK{|NO=CKmNJlzBiVvV0B^RyNVYf{Z?;GV`O>Cn1xX|05?{7Br-me-^J@NkwtNHQEzZXP literal 0 HcmV?d00001 diff --git a/phsource/vwl_lv/EE b/phsource/vwl_lv/EE new file mode 100644 index 0000000000000000000000000000000000000000..025206fb3112813ec77fc61a48e9a4d3b22d5ea9 GIT binary patch literal 1510 zcmeH{yGjE=6o$X-=FY}dgb)bCA|MevK?{wzQC1KyWLX=ng8Bf07AY-65CknOEPVw# zD+xY~3O}#v%iUIp>>yU^sL5-KxE`={i#yVB1mlWcM#C_I2H= zE&aKD&|!;0%54gdU>xh8`j!wCaHElHMw*dr$yGoz-pD;@m)e=+D&R0hR%xOUPyzdy zh7lxX^C%G{wR}TU%tDHX?kWKM~^Rr*PO_X<^9dGiGaEVIfQ8|-k!9jDAQ zL4{rFoZyJgVnsAFtcz-lX(pLv7?T7BN!drF%8-`K@VF_tL5!4~>XK&|l6sT^d9tEP z6PHM`@b-Ft?!BnfUn}0L=bG=A20ibq=kGmw{>PlR=2v~tpyz${{NvVn3eCA!hFF)k q(B&;C2k?6fba{)X@q3GSP{3`D@$r&cmhDb{rv$A~D^fF&vRtm)a@X!9(J9Fmz<}>%4 zGjq?}&-}h~W@S$+oKuh#1OO;egHmMzAoGv!s?7e%^FYnRnmbkS8@F$dRPVT#`>Rf6 zmCIiNP!Vz!0IEi%3ZAEsdB7Pg1pTG*=oYIMtBMs;4CbqU0FSAGPEtv#T7}dCyJic} zLV(W(oefeed#Qs;P(L_{02(DPF;%Kq0yLv!_&~D+)WhUgW!3Nipwb9bca!Mw$T7q@ z{F48P{-^kNPL}f{o8ycrth3yemeHG0ma)^Va$j^6xcl7$?jhImv{?JL`0B_>mOrQ5 zbav-3v*G+hrFgMn#hF!wt9{Y?gI)qUPo-fz75YdfF+V#D+o>uToK&GpTz&#uS5 zuG*r_*EYWU+`6i&6)lT?FWFJ_(L-(1L()ldyS3SRG$ALs*mm0fRcfW| zxYo4Gyw<|WrLtFECYQ@ia&GwUi1x?@lgnaXi$9X|sqJOQ#B_`MM26rw?@61=PF>>3 z%lyFIo4(q4*=|dDG|_8qn9>pb^&~3XZLTzYF21d844bLlBsLnZnV*d4iy~7Jt>KAZ zCg<5J98qb{r02SJxGG(P>7S$(IM<~vw5gKI6Pn`o#Q360B4o>HLyK4y*2L$qC&?pZ z4e28N6?}qe;WC8xLV-3$mnz2TX=zBRH^doRjUgtFX|^fTq%j>b zW*IvSl3}HEOdp~5iM-gY+p62FYt>!S<%n%!gnpmiE)7UtgVlJ>SZ}hKkDF&%dMu*6 zK(3Sb$@}F7<$EN^Lzbs4SIrB}$4yq#R^uf@p5cJRN-OmPqE%e4>(>g}!mzr~4~2_7 z!zXe1Y&o-r`0!r37yU+gs5UqgVt8A_!c4dxo`lI%BNdF6qCu2NzeP{LWw;N=lUK=2 z@;LJ`qh~AFgY0Ei<_frKZa+83P2^qtQhpbIf(Js3P#`=jY!?m)y~2PnD10V#3(Z1> z5G$PHxA2qsZslf=vQBmF?2QRE9FIZ!Q}0|9@i)qgD)Z zhXs!sMm6H3fMEiL2^c0|nEN)&jr9g*ykUZ`{AUj{Ys5Q&9wyMk1bUc24|AVA%#Fi! z?~gOgh)9&lGp2_brGCSJ@hJ&_dr}g(CnbT=1T>P8#*mSeG=>bHsiY)7xho}&BY~6@ NNJ)W|^#4pre*?>G)~Wyi literal 0 HcmV?d00001 diff --git a/phsource/vwl_lv/aa b/phsource/vwl_lv/aa new file mode 100644 index 0000000000000000000000000000000000000000..467a7cea9b6b968d0d16c5cf4e96df3e9676bd91 GIT binary patch literal 4510 zcmeH~Yfw~G0LKrP)o{-}_niBJ-Me>RcM%X_dG4|cyRbe${XmN1B;;6|1SOba=727i zk8DJ7v9b`uG4nA=4LUg^3{ljGjphuKU_+#(jWI>}sHrBWwC)lrYJI6Meb_T|?m6?j z=bU@zp1Hp{|9NxrrxnjDN~Zt-e!m8ksqNU}8(;sBb_Dn$uZ`aDMZV>&9_e>P0N@#= zl~HE_pzA3rvP2~%z#S<@?5BMCDyoVqRY@sWsQDH=ssVbLlBumK*$SN6EkFkWz7TOC zLZhywiSVOd(2oGRLtbQSsU!llcSz`g78z(lf)5^Sn;w-zGLG4I*-xYvWRyD2IlsuNalP+4?%L+ExYlI7?%d&6 zkoiOU<7pi!KPK}@)Sv0LR@3pM8 z@=BQ!P?jqdO0zQ4wlDTr+@eY4Nw20HPyg8Ql50Ya)q5sa^j-30PvNF4^%ds5>+Q)| z?Y`o4WImD>us2O^Pxx{oZSz`cjGszx>UPG=(ruD<8n0WPh&>fgCa2kLX`g2lIxAiA z*-z)p^z8Q3cm{Gl$}V!R%UbN9GAdG=llLbE&NFMxM@>^r?MB(S zQa)*jH3TI=>e6r1Z`QZ!FY61WHYwI{(BPE&cDfi{MVlBM-iu>NGa1MF z**5k&R>x&>>h^LD&cxkh&$9d3rL3JDB28o}8NwT}1$Q!~3}B9+YUD#!M35Fi#HcMs z6VOfid-^QhK{wGW=$W)c55sm?5B+c|Ooeus4U6Gw*b2Xf@$_=Kn~ql3=tap)J#&f4 z!W(c8{teqm4wQMj9_VN#fH&^}a-ZvT2JloGnzCF%RzYCS7S_9U(W_pCR5@ zANO(6*CPIXcst9DcysKC@^WN8orrXYjVO#gJElYPqF=eGXZi1fF)JKy2vitLO`H*+ zWIs4(>VxQhaLUqWt+X$VuSkqesY%*Tv0AxMoxNe+Q5WW<8P&`Ov+9ujPG)MY`>yaYjK*-w%b-}yJ=lz zy=C!O+Rb40n7&pgt9`}~jXRBpjgjg`)nyXq+vaGi+xC{$V~>d|ihq4vZ9+lf`Knu<-WroT*O=7Z)q%X-UzrP_McT4nRuW@`Ji8=A$QU=OjM)Lzwox6QSE zU_E8&H{UQ_QG1PELu>51nCj^HQ6*ywBWFdFhu4Iy3vCJM9MiAFD~-}FV`PDBk$2^D z%6jE9<(Sf~e5LGB8k8c%q5LKf%Pn%5oG(k{Oj#sn>3yDb$tZbVY!gq5b5ueHQD6$V zxr8<_p$8jqE!JTHuo*m%qW@c$`7gYm5Abk^11C&{*-#Bz;Rsv<6(?b#p69`0 zbmIh!#XE2rzSGA(g=W|QuRuPS;YZ%Uqj)y&;%w%90|#5;OaDe^_KxJ@T%H@%_fPopfFO!+jQmQfS6 z(jhuc7w87vCJ;h^KJz-Ar*HI;27Oj29l|oa0C}*P@8zY?3t8BR`|v29#&dWEd(eyR z_&(O-92}2-fEU)nGXU@fpT`H;ll&9zfYs0kPF#Tp@G2T8lX7SVO`&AsbQZVcY>dL6 z;aj)^&*L%7q^)$7oMNG<7c2F%r;9#XLO)>|HbX0n#ih6lcj97wr)*fmcfb~Wk(gK` z`bD}d*T39ra)Hd2A+kp_>QCKC3n+|ycnwo&IdxH_DAM1_m%=ANYVuzRBm7kGw?M+c zJtq0}AYp=p2@)nqm`5hef7CGk`ee8T2@@ntkT5~QJSt)Cb7XW4!$#FGj6Lj<82g7y tVh_6{#zq{_uuBS5hFwyiGVGFul|Yv?TJgK2Kqcssf-WiOlKw9)>2GUagzEqR literal 0 HcmV?d00001 diff --git a/phsource/vwl_lv/ee b/phsource/vwl_lv/ee new file mode 100644 index 0000000000000000000000000000000000000000..711e35205bf6dd2b45dda0f88196aa6e9891546a GIT binary patch literal 4510 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 literal 0 HcmV?d00001 diff --git a/phsource/vwl_lv/o b/phsource/vwl_lv/o new file mode 100644 index 0000000000000000000000000000000000000000..9f3b31b9bd381af167affdd8713b9fcd19b646e6 GIT binary patch literal 1589 zcmeH{yG}wu5QaYv_nT1@MBwBI5|u z7^rv)!y{Nwn5e_C~usf)ym+>nzK+0p1twQ9G1aIb=1$TbiyNNvzz?l^tCdQ1aD+OG$5g3v!zr)4 zQ6Wu|1Uez+#X>|_5?dp~zEo~<&H*Vw;uuo3&ISw2N>yAuN&qKrF%N!x1SR*21#saN z)FqL^<_NQ5o{(T!%rIkvn4GaFS(Mz@eWcS#3lENu?!5U1C(1K;A8SXu`iT+~sziZ9@zub_i3;OroE z@-3u~;2=1-cy7{alGe2#G>5}I_m^`nB>&{!I@sN5x0*EtbUI zQ_u*#y9K{&U&wZ!!Yd>m)t%Cl?)0ZYZc~}+ScuLLS0PMO$c^lDLNnRT^o*VnHb5sl zq#8a_jjvC2W8R)>{Juy;lMk8D36~biPwdLFhivI4=duUI&syh%3tqV9lqa5PQ>8)~ zlPt3mS@JAMtWaZ5IyX4y5L-wIOS)EBV~%O*DoGYd6CoxMCq{AkHq9lYyrP6GM z981m#WfmnYr?x1{8S}C$jMgDKN(a?fPCwE_hq37J$N!+ebN8C)Fb*9CZ<~NGxlX3< niVh6<5<|X3(3e2_iPx9>MEg>Zh%Y%)K3@tDyW;KnkG}K`fYQE7 literal 0 HcmV?d00001 diff --git a/phsource/vwl_lv/u b/phsource/vwl_lv/u new file mode 100644 index 0000000000000000000000000000000000000000..2e49524f2127e80395ef5a1b5d7e262ce1e9e029 GIT binary patch literal 4509 zcmeH~drVe!7{`Cl^ZYL7yjQ#}OhOSAEG(kXfuaO2;01;#Sb!my7IRT%iBhgq6ejPm zz+0};1TW7K#`hgo`ahPELo>{C+ z8&O=t&#^PzQ%Tb*?q}pu28~{>gRvt2jd-UL9O$Xcb``lJ_@Cr<8~^a8M>dB|oY@dD zIjST2E62PAwMoyXP^u+uRqC=Ok0w_w%A9{TF5A%;8|3)WQ5jbgSMSJ+X_?y|(f*j2 zacOFgzw$jZs>9N(`|BBcn;vO8W(qbZn8%o%rdGXPD^Yp!MRAlz^LAQD%jqxL%R|H~ zVw+ecLd6x{#|ODp+~iH%mrtX!uog4v8@fupR8EuVGhC0a<96JM>+lJjh{;%o*U*<3 zHDWv#7+DKVp9Mah_95F% zYp>-UbEYXm&(+M@axGHNF>N)@_-P(4Hj4()C`!aE z(Zln(;0I|7CDC=)Wfe3gfSRu^jr&9St4wMEf56f*?TY^bFmo9uoCxSA95N^ ziUx5I{b&W%(gh0ODSQnt<4#^^JZ;5WD4qVm-57}jPy=fq0eql`U0}1|HTWE^K{!5# zJFv>AD8Mi@;RBdre3@IZ5a;7)yabnk@IIW3Q!v0-v5uGFTWEtSsD$;91(DzjH`p20 z#Uwlp^Zsm2`OW?Rc@RdpsNf1u!r*Ntc?shsjF&K8!rUWaZu|>j{$mg0+Ml?>OBgR< zyoB)*<{k+% zZ>`qL8U$Lrn2MokqBy6l)r_W+%B;1-nkv0~3Bps7b6(Y)UAIYmGTH<A(v~pD-UlT`oEI&laluiH84jv-j z6dS}+5hkwk9^TKb;x^yKefT6g2P-g(exPgAO;t3WzQR@b4sOCNxDsdJI84JvypBG^ zs0C-@5~J2i6Zs;Z!$dJ5S=}{0xr}YechX5#=IM zbn!wi_C%1d342W5lYD&LZ6(jnVLp)uQU z_)4C@<9Hdr!e0`{g;hQy<7A8slVhcjy`n>G75QSa2oO`ntD@d$aa3$JMm@;mIq}E& zcAg=;WS6W^f!b%yEWfCfLqe5}NE#+$ti#V`}HAO!+o8T3Ll7U1(Z8tdS9 z21f5vNQDk|jlB+^!%p}Fn&1xz#5fEydai(LECn{eS_p)T>?0VB`B;V(Sc5yU2RV6@ zqJHehv9yR9=o0zybiSNd@Je1}JZ;5WX#xF>+b{}yp&pjQEO0;`}>gpXpn@nx>ZB1}SW?1Mfad>AKS0Qwm-*6|Ab2>YNGYG4)QKot1EO?H+Y zXA)k3={GlK2fO}1H^a#L83yk;$zvFgVLXQM80G;DbL&2a`HwY>bA9409>aJH<1viK zFb`^&)20}gHwM=*uERTQNJ_e!t6YX*!%`9(mXg@8l*9%T&_GIZBhDd>lr)66Qj&|f Zr=&Y=21$^=JMp9>PfGHnr2k7w`WGn}E&c!i literal 0 HcmV?d00001 diff --git a/phsource/vwl_lv/vowelchart.png b/phsource/vwl_lv/vowelchart.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f8a46ed6ff4798485ca231a881461c30ec8700 GIT binary patch literal 16391 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 G