Browse Source

rules for number transliteration for language om src/tr_languages.cpp

improved the phsource and om_list
master
gude432 11 years ago
parent
commit
d88e5a8df6
5 changed files with 44 additions and 113 deletions
  1. 1
    0
      dictsource/om_list
  2. 19
    73
      dictsource/om_rules
  3. 1
    1
      espeak-data/voices/default
  4. 18
    38
      phsource/ph_oromiffa
  5. 5
    1
      src/tr_languages.cpp

+ 1
- 0
dictsource/om_list View File

@@ -36,3 +36,4 @@ _0M3 bilijoni:
_dpt tuqa:
_. tuqa:
_roman roma:ni:
?!3 _0and fi

+ 19
- 73
dictsource/om_rules View File

@@ -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
- 1
espeak-data/voices/default View File

@@ -1,4 +1,4 @@
name default
language en
language om
gender male


+ 18
- 38
phsource/ph_oromiffa View File

@@ -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

+ 5
- 1
src/tr_languages.cpp View File

@@ -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;


Loading…
Cancel
Save