diff --git a/dictsource/om_list b/dictsource/om_list index 0bdc71ce..132687b6 100644 --- a/dictsource/om_list +++ b/dictsource/om_list @@ -36,3 +36,4 @@ _0M3 bilijoni: _dpt tuqa: _. tuqa: _roman roma:ni: +?!3 _0and fi diff --git a/dictsource/om_rules b/dictsource/om_rules index 12339021..4aa1119b 100644 --- a/dictsource/om_rules +++ b/dictsource/om_rules @@ -3,141 +3,87 @@ .group a a a aa a: - - .group b b b bb b: - - .group c - c tS' - - + c tS` .group d d d dd d: - - .group e e e ee e: - .group f f f - - .group g g g gg g: - - .group h h h - - .group i i i ii i: - - .group j j dZ - - .group k k k kk k: - - .group l l l ll l: - - .group m m m mm m: - - .group n n n nn n: - .group o o o oo o: - - - - .group p p p pp p: - - .group q - q k - qq k: - - + q k` + qq k`: .group r r r rr r: - .group s s s ss s: - - .group t t t tt t: - - .group u u u uu u: - - .group v v v - - .group w - w v - - + w w .group x - x t' - xx t': - - + x t` + xx t`: .group y y y yy y: - - - .group z z ts - zz ts - - + zz ts .group ch - ch tS - - -.group sh - sh S - -.group ph - ph p' - - + ch tS .group dh - dh d' // http://en.wikipedia.org/wiki/Voiced_alveolar_implosive - - + dh D .group ny - ny n^ + ny n^ +.group ph + ph p' +.group sh + sh S + +.group ts + ts ts +.group zy + zy Z diff --git a/espeak-data/voices/default b/espeak-data/voices/default index b2fd9d08..c58d47a3 100644 --- a/espeak-data/voices/default +++ b/espeak-data/voices/default @@ -1,4 +1,4 @@ name default -language en +language om gender male diff --git a/phsource/ph_oromiffa b/phsource/ph_oromiffa index 3586c24f..69ccc0b6 100644 --- a/phsource/ph_oromiffa +++ b/phsource/ph_oromiffa @@ -32,7 +32,6 @@ phoneme y FMT(vowel/ii#_2) endphoneme - phoneme a vowel starttype #a endtype #a length 220 @@ -42,7 +41,6 @@ phoneme a FMT(vowel/a_6) endphoneme - phoneme @ vowel starttype #@ endtype #@ length 220 @@ -52,45 +50,30 @@ phoneme @ 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 +phoneme k` + vls vel 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) + 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 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 @@ -103,7 +86,6 @@ phoneme t` WAV(ustop/t_hi, 70) endphoneme - phoneme tS` vls pla afr sibilant voicingswitch dZ @@ -116,22 +98,20 @@ phoneme tS` 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) +phoneme p' + vcd blb stop + IF prevPhW(isVowel) AND nextPhW(isVowel) THEN + ChangePhoneme(P) + ENDIF + CALL base/b endphoneme - -phoneme x - vls vel frc - lengthmod 3 - IF prevPhW(#i) THEN - ChangePhoneme(C) - ELSE - CALL base/x +phoneme D + vcd alv stop + lengthmod 6 + voicingswitch d + CALL base/D + IF nextPh(isPause2) THEN + FMT(voc/dh_) addWav(vocw/dh, 35) // weaker ENDIF endphoneme diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index b4885d35..88769e2f 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -511,6 +511,8 @@ Translator *SelectTranslator(const char *name) break; + + case L('a','r'): // Arabic tr->letter_bits_offset = OFFSET_ARABIC; tr->langopts.numbers = NUM_SWAP_TENS | NUM_AND_UNITS | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_AND_HUNDRED | NUM_THOUSAND_AND | NUM_OMIT_1_THOUSAND; @@ -1260,7 +1262,7 @@ SetLengthMods(tr,3); // all equal } break; - case L('o','m'): + case L('o','m'): // Oromo { static const unsigned char stress_amps_om[] = {18,15, 20,20, 20,22, 22,22 }; static const short stress_lengths_om[8] = {200,200, 200,200, 0,0, 200,200}; @@ -1268,6 +1270,8 @@ SetLengthMods(tr,3); // all equal SetupTranslator(tr,stress_lengths_om,stress_amps_om); tr->langopts.stress_rule = STRESSPOSN_2R; tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | 0x80000; + tr->langopts.numbers = NUM_OMIT_1_HUNDRED | NUM_HUNDRED_AND; + tr->langopts.numbers2 = 0x200; // say "thousands" before its number } break;