From 199b53b036367443dcf3b6095005d78494a7ed2b Mon Sep 17 00:00:00 2001 From: Valdis Vitolins Date: Mon, 4 Sep 2017 20:24:22 +0300 Subject: [PATCH] WIP Latvian improvements --- dictsource/lv_list | 1 + dictsource/lv_rules | 6 ++-- espeak-ng-data/lang/bat/lv | 4 +-- phsource/ph_latvian | 66 ++++++++++++++++++++++++++++++-------- 4 files changed, 60 insertions(+), 17 deletions(-) diff --git a/dictsource/lv_list b/dictsource/lv_list index bb633f78..ecde154e 100644 --- a/dictsource/lv_list +++ b/dictsource/lv_list @@ -285,6 +285,7 @@ tiklab $u $brk tomēr $u $pause turpretim $u $2 $pause turpretī $u $2 $pause +tur $u+ un $u uz $u vai $u+ $brk diff --git a/dictsource/lv_rules b/dictsource/lv_rules index 5bb9c6db..1090bf5f 100644 --- a/dictsource/lv_rules +++ b/dictsource/lv_rules @@ -416,7 +416,9 @@ i i i (A i_! ie ie - ikv) ie (n 'ie // stress on 2nd syllable + _) i (kkat %i // ikkatrs + _) i (kkuL82 %i // ikkurš + _) i (kvien %i // ikviens iu iu .group ī @@ -1442,6 +1444,7 @@ L46L45L45) o (<< uo pr) ot (u_ uot publisk) ot uot r) ot (āc ot + r) ot (b ot r) ot (er ot r) ot (ē ot sab) ot ot @@ -1450,7 +1453,6 @@ L46L45L45) o (<< uo sp) ot (+ ot t) ot (ēm ot t) ot (L50l ot - tr) ot ot _v) ot (_++++++ ot // vot zig) ot (L01_ ot // ..zigots zig) ot (L04_ ot // ..zigota diff --git a/espeak-ng-data/lang/bat/lv b/espeak-ng-data/lang/bat/lv index 7bbbd4ce..a64ebfc0 100644 --- a/espeak-ng-data/lang/bat/lv +++ b/espeak-ng-data/lang/bat/lv @@ -9,5 +9,5 @@ breathw 20 42 85 200 500 1200 formant 0 95 100 100 -5 //tunes s5 c5 q5 e5 tone 150 220 450 255 750 20 3500 255 -stressAmp 12 10 10 8 0 0 18 15 -stressLength 180 180 180 160 0 0 240 180 +stressAmp 12 10 10 8 0 0 20 15 +stressLength 180 180 180 160 0 0 250 180 diff --git a/phsource/ph_latvian b/phsource/ph_latvian index 87e079ab..8b867e6c 100644 --- a/phsource/ph_latvian +++ b/phsource/ph_latvian @@ -171,7 +171,7 @@ phoneme tS WAV(ustop/tsh,40) endphoneme -phoneme n- +phoneme n- // more voiced variant of n vwl starttype #a endtype #a ipa nU+0329 lengthmod 4 @@ -347,20 +347,60 @@ phoneme j // **y**es VowelStart(j/jo) VowelStart(j/ju) EndSwitch - - IF prevPhW(e) THEN - VowelEnding(j/xj, 10) // - ELSE - VowelEnding(j/xj, 127) // In difference with English, vowel is lengthened, not shortened - ENDIF - - IF prevPh(isPause) THEN - FMT(j/_j) - ENDIF + VowelEnding(j/xj, 70) // In difference with English, vowel is lengthened, not shortened ELSE - // no vowel follows - Vowelout len=127 + Vowelout len=127 // no vowel follows FMT(j/xj) ENDIF + + IF prevPh(isPause) THEN + FMT(j/_j) + ENDIF endphoneme +phoneme l + liquid + + IF nextPh(isNotVowel) THEN + ChangePhoneme(l/) + ENDIF + + IF nextPh(isNotVowel) THEN + PrevVowelEndings + VowelEnding(l/L1_@L) + VowelEnding(l/L1_aL) + VowelEnding(l/L1_eL) + VowelEnding(l/L1_iL) + VowelEnding(l/L1_oL) + VowelEnding(l/L1_uL) + EndSwitch + + FMT(l/l_) + RETURN + ENDIF + + CALL vowelstart_l + + IF prevPh(a) OR prevPh(a:) THEN + VowelEnding(l/xl,30) // FIXME + ELSEIF prevPh(isVowel) THEN + VowelEnding(l/xl, 10) + ENDIF + + IF prevPh(isPause) THEN + FMT(l/_l) + ENDIF + + IF prevPh(t) THEN + FMT(l/tl) + ENDIF + + IF prevPh(l/) THEN + FMT(l/l_long) // double l, make it longer + ENDIF + + FMT(l/l) +endphoneme + + +