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

_dpt tuqa: _dpt tuqa:
_. tuqa: _. tuqa:
_roman roma:ni: _roman roma:ni:
?!3 _0and fi

+ 19
- 73
dictsource/om_rules View File

.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

+ 1
- 1
espeak-data/voices/default View File

name default name default
language en
language om
gender male gender male



+ 18
- 38
phsource/ph_oromiffa View File

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

+ 5
- 1
src/tr_languages.cpp View File

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;



Loading…
Cancel
Save