diff --git a/dictsource/om_list b/dictsource/om_list new file mode 100644 index 00000000..46f2777c --- /dev/null +++ b/dictsource/om_list @@ -0,0 +1,40 @@ +// numeric +_0 duwa: +_1 tokko +_2 lem@: +_3 sedii +_4 afur +_5 S'an +_6 dZ'a:ha +_7 To:rba: +_8 seddeit: +_9 sagal +_10 kud@'n +_1X + ku'@ +_20 dig'dam@ +_2X dig'dami: +_3X sodomi: +_4X afU:rt@mI: +_5X S@nt@mi: +_6X dZat@mI: +_7X torbat@mi: +_8X s@de:t@mi: +_9X s@gal'tami: +_0C ib:'a +_1C ib:'atokko +_2C ib:'alama +_3C ib:'as@di +_4C ib:'a:furi +_5C ib:'a:S@ni +_6C ib:'a'dZa +_7C ib:'a'torb@ +_8C ib:'a's@de:ti: +_9C ib:'a'sag@li +_0of na +_0M1 kum@: +_0M2 miliyoni: +_0M3 biliyonI: +_dpt tuqa: +_. tuqa: +_roman roma:ni: \ No newline at end of file diff --git a/dictsource/om_rules b/dictsource/om_rules index 8486d44e..12339021 100644 --- a/dictsource/om_rules +++ b/dictsource/om_rules @@ -109,8 +109,8 @@ .group x - x t` - xx t`: + x t' + xx t': .group y @@ -130,14 +130,13 @@ .group sh sh S - ssh S: .group ph - ph p` + ph p' .group dh - dh d` // http://en.wikipedia.org/wiki/Voiced_alveolar_implosive + dh d' // http://en.wikipedia.org/wiki/Voiced_alveolar_implosive .group ny diff --git a/espeak-data/voices/test/om b/espeak-data/voices/test/om index 9e133e37..045bec5c 100644 --- a/espeak-data/voices/test/om +++ b/espeak-data/voices/test/om @@ -1,2 +1,2 @@ -name oromo-test +name oromiffa language om diff --git a/phsource/ph_oromiffa b/phsource/ph_oromiffa new file mode 100644 index 00000000..3586c24f --- /dev/null +++ b/phsource/ph_oromiffa @@ -0,0 +1,137 @@ + +//==================================================== +// Oromiffa +//==================================================== + + +phoneme i + vowel starttype #i endtype #i + length 200 + IfNextVowelAppend(;) + FMT(vowel/ii_5) +endphoneme + +phoneme e + vowel starttype #e endtype #e + length 220 + FMT(vowel/e_mid2) +endphoneme + +phoneme y + vowel starttype #@ endtype #@ + ipa ? + length 180 + + // assume that word-final [y] are not added by am_rules + // Only allow [y] in first or last syllables +// IF thisPh(isFinalVowel) THEN +// ELIF thisPh(isFirstVowel) THEN +// ELSE +// ChangePhoneme(NULL) +// ENDIF + FMT(vowel/ii#_2) +endphoneme + + +phoneme a + vowel starttype #a endtype #a + length 220 + IF nextPhW(isPalatal) THEN + FMT(vdiph/ai_5) + ENDIF + FMT(vowel/a_6) +endphoneme + + +phoneme @ + vowel starttype #@ endtype #@ + length 220 + IF nextPhW(isPalatal) THEN + FMT(vdiph/@i_2) + ENDIF + FMT(vowel/@_3) +endphoneme + + +phoneme o + vowel starttype #o endtype #o + length 220 + FMT(vowel/o-_4) +endphoneme + + +phoneme u + vowel starttype #u endtype #u + length 220 + FMT(vowel/u_2) +endphoneme + + +phoneme r + import_phoneme base/R2 +endphoneme + + +phoneme p' + vls blb stop + lengthmod 2 + voicingswitch b + Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 gpaus + Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30 + WAV(ustop/p_unasp) +endphoneme + + +phoneme b + vcd blb stop + IF prevPhW(isVowel) AND nextPhW(isVowel) THEN + ChangePhoneme(B) + ENDIF + CALL base/b +endphoneme + + +phoneme t` + vls alv stop + lengthmod 2 + voicingswitch d + Vowelin f1=0 f2=1700 -300 300 f3=-100 80 gpaus + Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 + IF nextPh(isPause2) THEN + WAV(ustop/t_) + ENDIF + WAV(ustop/t_hi, 70) +endphoneme + + +phoneme tS` + vls pla afr sibilant + voicingswitch dZ + lengthmod 2 + Vowelin f1=0 f2=1800 -200 200 f3=-100 80 gpaus + + IF nextPh(isPause2) THEN + WAV(ustop/tsh_unasp, 80) + ENDIF + WAV(ustop/tsh_unasp, 80) +endphoneme + + +phoneme k` + vls vel stop + lengthmod 2 + Vowelin f1=0 f2=1700 -250 250 f3= -200 80 gpaus f4 + Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20 + WAV(ustop/k_ejc, 60) +endphoneme + + +phoneme x + vls vel frc + lengthmod 3 + IF prevPhW(#i) THEN + ChangePhoneme(C) + ELSE + CALL base/x + ENDIF +endphoneme diff --git a/phsource/phonemes b/phsource/phonemes index 15aca447..3d468896 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -1949,3 +1949,6 @@ include ph_korean phonemetable kl base include ph_greenlandic + +phonemetable om base +include ph_oromiffa