improved the phsource and om_listmaster
_dpt tuqa: | _dpt tuqa: | ||||
_. tuqa: | _. tuqa: | ||||
_roman roma:ni: | _roman roma:ni: | ||||
?!3 _0and fi |
.group a | .group a | ||||
a a | a a | ||||
aa a: | aa a: | ||||
.group b | .group b | ||||
b b | b b | ||||
bb b: | bb b: | ||||
.group c | .group c | ||||
c tS' | |||||
c tS` | |||||
.group d | .group d | ||||
d d | d d | ||||
dd d: | dd d: | ||||
.group e | .group e | ||||
e e | e e | ||||
ee e: | ee e: | ||||
.group f | .group f | ||||
f f | f f | ||||
.group g | .group g | ||||
g g | g g | ||||
gg g: | gg g: | ||||
.group h | .group h | ||||
h h | h h | ||||
.group i | .group i | ||||
i i | i i | ||||
ii i: | ii i: | ||||
.group j | .group j | ||||
j dZ | j dZ | ||||
.group k | .group k | ||||
k k | k k | ||||
kk k: | kk k: | ||||
.group l | .group l | ||||
l l | l l | ||||
ll l: | ll l: | ||||
.group m | .group m | ||||
m m | m m | ||||
mm m: | mm m: | ||||
.group n | .group n | ||||
n n | n n | ||||
nn n: | nn n: | ||||
.group o | .group o | ||||
o o | o o | ||||
oo o: | oo o: | ||||
.group p | .group p | ||||
p p | p p | ||||
pp p: | pp p: | ||||
.group q | .group q | ||||
q k | |||||
qq k: | |||||
q k` | |||||
qq k`: | |||||
.group r | .group r | ||||
r r | r r | ||||
rr r: | rr r: | ||||
.group s | .group s | ||||
s s | s s | ||||
ss s: | ss s: | ||||
.group t | .group t | ||||
t t | t t | ||||
tt t: | tt t: | ||||
.group u | .group u | ||||
u u | u u | ||||
uu u: | uu u: | ||||
.group v | .group v | ||||
v v | v v | ||||
.group w | .group w | ||||
w v | |||||
w w | |||||
.group x | .group x | ||||
x t' | |||||
xx t': | |||||
x t` | |||||
xx t`: | |||||
.group y | .group y | ||||
y y | y y | ||||
yy y: | yy y: | ||||
.group z | .group z | ||||
z ts | z ts | ||||
zz ts | |||||
zz ts | |||||
.group ch | .group ch | ||||
ch tS | |||||
.group sh | |||||
sh S | |||||
.group ph | |||||
ph p' | |||||
ch tS | |||||
.group dh | .group dh | ||||
dh d' // http://en.wikipedia.org/wiki/Voiced_alveolar_implosive | |||||
dh D | |||||
.group ny | .group ny | ||||
ny n^ | |||||
ny n^ | |||||
.group ph | |||||
ph p' | |||||
.group sh | |||||
sh S | |||||
.group ts | |||||
ts ts | |||||
.group zy | |||||
zy Z |
name default | name default | ||||
language en | |||||
language om | |||||
gender male | gender male | ||||
FMT(vowel/ii#_2) | FMT(vowel/ii#_2) | ||||
endphoneme | endphoneme | ||||
phoneme a | phoneme a | ||||
vowel starttype #a endtype #a | vowel starttype #a endtype #a | ||||
length 220 | length 220 | ||||
FMT(vowel/a_6) | FMT(vowel/a_6) | ||||
endphoneme | endphoneme | ||||
phoneme @ | phoneme @ | ||||
vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
length 220 | length 220 | ||||
FMT(vowel/@_3) | FMT(vowel/@_3) | ||||
endphoneme | endphoneme | ||||
phoneme o | phoneme o | ||||
vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
length 220 | length 220 | ||||
FMT(vowel/o-_4) | FMT(vowel/o-_4) | ||||
endphoneme | endphoneme | ||||
phoneme u | phoneme u | ||||
vowel starttype #u endtype #u | vowel starttype #u endtype #u | ||||
length 220 | length 220 | ||||
FMT(vowel/u_2) | FMT(vowel/u_2) | ||||
endphoneme | endphoneme | ||||
phoneme r | phoneme r | ||||
import_phoneme base/R2 | import_phoneme base/R2 | ||||
endphoneme | endphoneme | ||||
phoneme p' | |||||
vls blb stop | |||||
phoneme k` | |||||
vls vel stop | |||||
lengthmod 2 | 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 | endphoneme | ||||
phoneme t` | phoneme t` | ||||
vls alv stop | vls alv stop | ||||
lengthmod 2 | lengthmod 2 | ||||
WAV(ustop/t_hi, 70) | WAV(ustop/t_hi, 70) | ||||
endphoneme | endphoneme | ||||
phoneme tS` | phoneme tS` | ||||
vls pla afr sibilant | vls pla afr sibilant | ||||
voicingswitch dZ | voicingswitch dZ | ||||
WAV(ustop/tsh_unasp, 80) | WAV(ustop/tsh_unasp, 80) | ||||
endphoneme | 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 | 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 | ENDIF | ||||
endphoneme | endphoneme |
break; | break; | ||||
case L('a','r'): // Arabic | case L('a','r'): // Arabic | ||||
tr->letter_bits_offset = OFFSET_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; | 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; | ||||
} | } | ||||
break; | 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 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}; | static const short stress_lengths_om[8] = {200,200, 200,200, 0,0, 200,200}; | ||||
SetupTranslator(tr,stress_lengths_om,stress_amps_om); | SetupTranslator(tr,stress_lengths_om,stress_amps_om); | ||||
tr->langopts.stress_rule = STRESSPOSN_2R; | tr->langopts.stress_rule = STRESSPOSN_2R; | ||||
tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | 0x80000; | 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; | break; | ||||