improved the phsource and om_listmaster
@@ -36,3 +36,4 @@ _0M3 bilijoni: | |||
_dpt tuqa: | |||
_. tuqa: | |||
_roman roma:ni: | |||
?!3 _0and fi |
@@ -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 |
@@ -1,4 +1,4 @@ | |||
name default | |||
language en | |||
language om | |||
gender male | |||
@@ -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) | |||
endphoneme | |||
phoneme b | |||
vcd blb stop | |||
IF prevPhW(isVowel) AND nextPhW(isVowel) THEN | |||
ChangePhoneme(B) | |||
ENDIF | |||
CALL base/b | |||
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 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 |
@@ -510,6 +510,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; | |||
@@ -1251,7 +1253,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}; | |||
@@ -1259,6 +1261,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; | |||