Browse Source

Merge branch 'master' into build

master
Reece Dunn 14 years ago
parent
commit
8c9fab6ebb
65 changed files with 2742 additions and 684 deletions
  1. 15
    2
      dictsource/af_list
  2. 9
    1
      dictsource/af_rules
  3. 514
    40
      dictsource/da_list
  4. 539
    123
      dictsource/da_rules
  5. 2
    1
      dictsource/de_list
  6. 2
    2
      dictsource/de_rules
  7. 54
    42
      dictsource/dict_phonemes
  8. 55
    43
      dictsource/el_list
  9. 13
    11
      dictsource/el_rules
  10. 20
    16
      dictsource/en_list
  11. 10
    4
      dictsource/en_rules
  12. 12
    10
      dictsource/eo_list
  13. 7
    2
      dictsource/fr_rules
  14. 144
    7
      dictsource/hu_list
  15. 22
    0
      dictsource/hu_rules
  16. 354
    1
      dictsource/nl_list
  17. 79
    26
      dictsource/nl_rules
  18. 4
    3
      dictsource/pt_list
  19. 4
    0
      dictsource/pt_rules
  20. 63
    61
      dictsource/sv_rules
  21. 18
    5
      dictsource/ta_list
  22. 201
    33
      dictsource/ta_rules
  23. 2
    2
      dictsource/zh_list
  24. 1
    1
      docs/add_language.html
  25. 15
    7
      docs/commands.html
  26. 19
    7
      docs/dictionary.html
  27. 3
    1
      docs/docindex.html
  28. 101
    0
      docs/intonation.html
  29. 12
    17
      docs/mbrola.html
  30. 9
    3
      docs/phontab.html
  31. 27
    13
      docs/speak_lib.h
  32. 5
    0
      docs/ssml.html
  33. 53
    28
      phsource/compile_report
  34. 53
    0
      phsource/ph_danish
  35. 6
    0
      phsource/ph_dutch
  36. 19
    31
      phsource/ph_german
  37. 19
    5
      phsource/ph_greek
  38. 14
    1
      phsource/ph_polish
  39. 3
    0
      phsource/ph_pt_brazil
  40. 3
    3
      phsource/ph_tamil
  41. 7
    2
      phsource/phonemes
  42. 24
    14
      platforms/big_endian/espeak-phoneme-data.c
  43. 15
    9
      platforms/windows/make_espeak.iss
  44. 4
    1
      platforms/windows/make_espeakedit.iss
  45. 3
    2
      platforms/windows/windows_sapi/ttsengobj.cpp
  46. 5
    5
      platforms/windows/windows_sapi/version.rc2
  47. 9
    6
      src/compiledata.cpp
  48. 6
    4
      src/dictionary.cpp
  49. 3
    1
      src/espeakedit.cpp
  50. 5
    0
      src/mbrowrap.cpp
  51. 12
    1
      src/numbers.cpp
  52. 5
    6
      src/readclause.cpp
  53. 1
    1
      src/setlengths.cpp
  54. 12
    3
      src/speak_lib.h
  55. 1
    0
      src/speech.h
  56. 39
    3
      src/synth_mbrola.cpp
  57. 2
    2
      src/synthdata.cpp
  58. 7
    2
      src/synthesize.cpp
  59. 8
    30
      src/synthesize.h
  60. 13
    12
      src/tr_languages.cpp
  61. 34
    11
      src/translate.cpp
  62. 14
    12
      src/translate.h
  63. 6
    3
      src/voices.cpp
  64. 1
    1
      src/vowelchart.cpp
  65. 1
    1
      src/wavegen.cpp

+ 15
- 2
dictsource/af_list View File

_7o s'e@v@n _7o s'e@v@n
_8o _'ax2 _8o _'ax2
_9o ne@x2@n _9o ne@x2@n
_0Co h'On@rtst@
//_0Co h'On@rtst@




// Place names // Place names
avignon _^_FR avignon _^_FR
babilon babilOn babilon babilOn
babilonië babil'o@ni;@ babilonië babil'o@ni;@
bainskloof beInsklo@f
bangladesj baNglad'ES bangladesj baNglad'ES
barcelona bars@l'o@na barcelona bars@l'o@na
barkly _^_EN barkly _^_EN
montagu mOnt@ky montagu mOnt@ky
moreletapark mOr@l,Etap'ark moreletapark mOr@l,Etap'ark
moorreesburg mur'e@sbWrx2 moorreesburg mur'e@sbWrx2
mouillepunt mulipWnt
(thaba nchu) tab'A:||ntSu (thaba nchu) tab'A:||ntSu
europa Y@r'o@pa europa Y@r'o@pa
nigel _^_EN nigel _^_EN
wolseley wulsli wolseley wulsli
uganda ug'anda uganda ug'anda
uruguay urugwaI uruguay urugwaI
wakloof vA:klo@f
zimbabwe zI:mb'ab_wE zimbabwe zI:mb'ab_wE
zulu zulu // Kwazulu-Natal zulu zulu // Kwazulu-Natal


blignault blIx2n@Ut blignault blIx2n@Ut
blomerus blum'e@rWs blomerus blum'e@rWs
blum blum blum blum
borodin bOrud'in
botha bo@ta botha bo@ta
bouwer b@U@r bouwer b@U@r
braham brA:m braham brA:m
(du toit) d@||toI (du toit) d@||toI
dustin _^_EN dustin _^_EN
duvenage dyv@nA:x2@ duvenage dyv@nA:x2@
dvorak d@-v'O:Zak
einstein aInstaI:n einstein aInstaI:n
eksteen $1 eksteen $1
elana il'A:na elana il'A:na
grange x2rA:nsi grange x2rA:nsi
gregory _^_EN gregory _^_EN
greta gre@ta greta gre@ta
grieg gri:g
grové x2ruv'e@ grové x2ruv'e@
gulliver _^_EN gulliver _^_EN
gustav gustaf gustav gustaf
jane _^_EN jane _^_EN
Jean ZA~n $capital Jean ZA~n $capital
jesebel je@s@b&l jesebel je@s@b&l
jessica _^_EN
jimmy _^_EN jimmy _^_EN
joachim juw'A:x2@m joachim juw'A:x2@m
joan _^_EN joan _^_EN
lulu lulu lulu lulu
mabalêl mabal'&l mabalêl mabal'&l
mabel _^_EN mabel _^_EN
macgill m@gjil
mackintosh _^_EN mackintosh _^_EN
madelene mad@l'e@n madelene mad@l'e@n
mbeki mbE:ki mbeki mbE:ki
mozart mo@tsart mozart mo@tsart
myburgh meIbWrx2 myburgh meIbWrx2
naomi na_'o@mi naomi na_'o@mi
napoleon nap'o@liOn
natasha n%at'aSa natasha n%at'aSa
naudé nOd'e@ naudé nOd'e@
nefertiti nEf@rt'iti nefertiti nEf@rt'iti
retha re@ta retha re@ta
retief r@tif retief r@tif
rhodes _^_EN rhodes _^_EN
richard _^_EN
riekert rik@rt riekert rik@rt
robert _^_EN robert _^_EN
robin _^_EN robin _^_EN
kafee kaf'e@ kafee kaf'e@
kaliefa kal'ifa kaliefa kal'ifa
kameraderie kam@rA:d@r'i kameraderie kam@rA:d@r'i
kapittel kap'It@l
katswink katsv@nk katswink katsv@nk
kaviaar kavi'A:r kaviaar kavi'A:r
kennisvaardig $1 kennisvaardig $1
oorkom $2 oorkom $2
oorle o@rl@ oorle o@rl@
oorleef $2 oorleef $2
oorry o@reI
oorsee $2 oorsee $2
oorsese $2 oorsese $2
oorval $2 $verb oorval $2 $verb
plaasjaap plA:sjA:p plaasjaap plA:sjA:p
plasenta plas'Enta plasenta plas'Enta
poinsettia pOIns'Etia poinsettia pOIns'Etia
pond po~nt
potpourri pOtpur'i potpourri pOtpur'i
primate $2 primate $2
profetes prOf@t'Es profetes prOf@t'Es
voorgee fo@rx2e@ voorgee fo@rx2e@
voorkeer $1 voorkeer $1
voorkom $2 $only voorkom $2 $only
voorlente $1
voormalige fo@rm'A:l@x2@ voormalige fo@rm'A:l@x2@
voornemens fo@rne@m@ns voornemens fo@rne@m@ns
//voorsien $2 //voorsien $2
welaf v&l_af welaf v&l_af
weleer v&l_'e@r weleer v&l_'e@r
wentaktiek $1 wentaktiek $1
willens vIl@ns
wysgere veIsx2e@r@ wysgere veIsx2e@r@



+ 9
- 1
dictsource/af_rules View File

bonde (C bOnd@ // verbondenheid/bondeldraer/gebondene/saambondelend bonde (C bOnd@ // verbondenheid/bondeldraer/gebondene/saambondelend
boos (aardig b%o@s_ // move default stress: boosaardig/-e/-heid boos (aardig b%o@s_ // move default stress: boosaardig/-e/-heid
_) bor (dA@ b%Or // geborduur/bordeel/bordele _) bor (dA@ b%Or // geborduur/bordeel/bordele
borde (r bOrd@ // fix stress and e sound: borderak/-ke
bos (A@ bOs? // bosaap/bosoorlog/bosuil bos (A@ bOs? // bosaap/bosoorlog/bosuil
bo (v bo@ // fix o sound: bovlak/-e and similar bo (v bo@ // fix o sound: bovlak/-e and similar
bowen bo@v@n' // bowenal/bowendien bowen bo@v@n' // bowenal/bowendien
bene (dy b%e@n@ // fix stress and e sounds: gebenedy/-de bene (dy b%e@n@ // fix stress and e sounds: gebenedy/-de
_) ben (ga b%EN // fix stress and n/g sounds: Bengaalse/Bengale _) ben (ga b%EN // fix stress and n/g sounds: Bengaalse/Bengale
beni (g be@n@ // fix stress and e sound: (swaar/twee/vier)benig, etc. beni (g be@n@ // fix stress and e sound: (swaar/twee/vier)benig, etc.
_) ben (Cien b%En // fix 1st e sound: bensien/benzien and compounds
ber (lyn b%&r // move default stress: Berlyn/-er/-se ber (lyn b%&r // move default stress: Berlyn/-er/-se
ber (serk b@r // fix stress and 1st e sound: berserk/-er ber (serk b@r // fix stress and 1st e sound: berserk/-er
C) be (rsie b'&: //kombersie etc. C) be (rsie b'&: //kombersie etc.
d (d d (d
dd d // gladde/midde/kudde/opskudding dd d // gladde/midde/kudde/opskudding
ddh d // Boeddha/boeddhisme ddh d // Boeddha/boeddhisme
@) d (raam t // fix d sound: draad-/skilpad-/standaardraam and compounds
daad (werk d%A:t // move default stress: daadwerklik/-e daad (werk d%A:t // move default stress: daadwerklik/-e
daaren (te d%A:r@n // fix stress and e sound: daarenteen/daarenteë daaren (te d%A:r@n // fix stress and e sound: daarenteen/daarenteë
daarop (v d%A:r%Op // move default stress: daaropvolgend/-e daarop (v d%A:r%Op // move default stress: daaropvolgend/-e
dani (gh d'A:n@ // -hoedanigheid/hoedanighede/onderdanigheid dani (gh d'A:n@ // -hoedanigheid/hoedanighede/onderdanigheid
@) dant d'ant // dant takes stress: kommandant/pruimedant @) dant d'ant // dant takes stress: kommandant/pruimedant
@) dderd (_ d@rt // ontredderd, se rule: dd d @) dderd (_ d@rt // ontredderd, se rule: dd d
@) d (einde_ t_ // fix d sound: maand-/noord-/suideinde
@) d (eis t_ // fix d sound, insert pause: skuldeiser/grondeise and many compounds @) d (eis t_ // fix d sound, insert pause: skuldeiser/grondeise and many compounds
dge (_ _^_EN // words ending in -dge are English: Cambridge/Hambidge... dge (_ _^_EN // words ending in -dge are English: Cambridge/Hambidge...
dia (C d%i%a // diabeet/diafragma/diagnose/dialek/dialoog/diamant dia (C d%i%a // diabeet/diafragma/diagnose/dialek/dialoog/diamant
geldi x2&ld@ geldi x2&ld@
geld (inC x2&lt_ // fix d sound, pause: geldinkomste/-insamelaar/-insameling, etc. geld (inC x2&lt_ // fix d sound, pause: geldinkomste/-insamelaar/-insameling, etc.
geld (ing x2&ld // but: ver-/ontgelding and similar geld (ing x2&ld // but: ver-/ontgelding and similar
geldjie x2'&lci
geldjie x2&lci // spaargeldjies
_) gelykeni (s x2@l'eIk@n@ // gelykenis/se _) gelykeni (s x2@l'eIk@n@ // gelykenis/se
gemmer x2'Em@r gemmer x2'Em@r
ge (ogra x2i //geografie etc. ge (ogra x2i //geografie etc.
_) na (latig n%A: // move default stress: nalatig/-e/-heid _) na (latig n%A: // move default stress: nalatig/-e/-heid
names nA:m@s // fix e sound: afnames/opnames names nA:m@s // fix e sound: afnames/opnames
napole (ont n%ap%o@l%i // fix stress and vowel sounds: Napoleonties/-e napole (ont n%ap%o@l%i // fix stress and vowel sounds: Napoleonties/-e
napo (leon n%apo@ // fix stress and a sound: Napoleon(magte/-troepe...)
_) na (rC na // nartjie/nardus/narsing _) na (rC na // nartjie/nardus/narsing
_) na (rk n%a // narkose/narkotiseer/narkoties/narkotika _) na (rk n%a // narkose/narkotiseer/narkoties/narkotika
_) na (skeer n''A: // restore default stress: naskeermiddel/-room _) na (skeer n''A: // restore default stress: naskeermiddel/-room
_) na (speur n%A: // fix stress and a sound: (on)naspeurbaar/-lik/-e _) na (speur n%A: // fix stress and a sound: (on)naspeurbaar/-lik/-e
_) na (speur_N nA: // but default stress: naspeur _) na (speur_N nA: // but default stress: naspeur
_) na (tC na // many compounds beginning with nat _) na (tC na // many compounds beginning with nat
_) na (trekK nA: // fix stress and a sound: natrek/-ke
na (trium nA: // lengthen a sound: natrium and compounds na (trium nA: // lengthen a sound: natrium and compounds
na (trosK nA: // lengthen a sound: natros/-se/-sies na (trosK nA: // lengthen a sound: natros/-se/-sies
na (tuur n%a // natuur and compounds and derivatives na (tuur n%a // natuur and compounds and derivatives
o (terap u // psigo-/fisioterapeut o (terap u // psigo-/fisioterapeut
_) ob (s %Op // obskuur/obskure/obskuriteit/obsessie/obseen _) ob (s %Op // obskuur/obskure/obskuriteit/obsessie/obseen
obser (veer %Ops%&r // fix stress, b sound: (ge)observeer(d/-e) obser (veer %Ops%&r // fix stress, b sound: (ge)observeer(d/-e)
obsti (na %Opst@ // fix stress and i sound: obstinaat/-nate/-naatheid
C) o (dium o@ // fix stress and o sound: jodium/podium/rodium and their compounds C) o (dium o@ // fix stress and o sound: jodium/podium/rodium and their compounds
oe u oe u
oe (r u: //long oe sound before r in most cases, but see flg. exceptions: oe (r u: //long oe sound before r in most cases, but see flg. exceptions:
pa (trA p%a // patrollie/patroon/patrys pa (trA p%a // patrollie/patroon/patrys
patri (@ p%atr%i // move default stress: patriarg/patriot/-te and derivatives patri (@ p%atr%i // move default stress: patriarg/patriot/-te and derivatives
patriar (ga p%atr%i%ar // move default stress: patriargaal/-gale patriar (ga p%atr%i%ar // move default stress: patriargaal/-gale
patro (lle p%atr%u // fix stress and o sound: patrolleer and compounds
paté p%ate@ // fix stress and vowel sounds: (lewer)paté, etc. paté p%ate@ // fix stress and vowel sounds: (lewer)paté, etc.
pavil (joe p%av@l // fix stress and v sound: paviljoen and compounds pavil (joe p%av@l // fix stress and v sound: paviljoen and compounds
pawil (joe p%av@l // fix stress: pawiljoen and compounds pawil (joe p%av@l // fix stress: pawiljoen and compounds

+ 514
- 40
dictsource/da_list View File

// PB = Peter Bjarkov - [email protected] // PB = Peter Bjarkov - [email protected]


iv $abbrev

// This file is UTF8 encoded // This file is UTF8 encoded
// Spelling-to-phoneme words for Danish // Spelling-to-phoneme words for Danish


// numbers // numbers
_0 'nOl _0 'nOl
_1 'e:n _1 'e:n
_2 t'o:
_3 tR'&:
_2 t'o
_3 tR'e
_4 f'i:V _4 f'i:V
_5 f'Em _5 f'Em
_6 s'Egs _6 s'Egs
_7 s'yw _7 s'yw
_8 'O:d@ _8 'O:d@
_9 n'i:
_10 t'i:
_9 n'i
_10 t'i
_11 'Elv@ _11 'Elv@
_12 t'Vl _12 t'Vl
_13 tR'&#d@-n // PB & changed to &# _13 tR'&#d@-n // PB & changed to &#
_8X f'irs _8X f'irs
_9X h&lf'Ems // PB a changed to & _9X h&lf'Ems // PB a changed to &
_0C h'un*@:D _0C h'un*@:D
_1C ed||h'unR@:D // PB addet 'et hundrede'
_0M1 t'u:s@-n _0M1 t'u:s@-n
_1M1 ed||t'u:s@-n // PB added 'et' to tusind _1M1 ed||t'u:s@-n // PB added 'et' to tusind
_1M2 'e:n||milij'o:n _1M2 'e:n||milij'o:n


_0and 3 _0and 3
_dpt _k,Vm&: _dpt _k,Vm&:
_roman d%En



// PB a number followed by dot // PB a number followed by dot
// ordinals are followed by a dot in Danish // ordinals are followed by a dot in Danish
// conjunctions // conjunctions
og V $u+ $pause // and og V $u+ $pause // and
men $pause // but men $pause // but
eller $u+ $pause $only // or
eller // or
mens $pause // while mens $pause // while
for fV for fV
fordi fVd'i $pause // because - PB: changed stress fordi fVd'i $pause // because - PB: changed stress
når nVr $pause // while når nVr $pause // while
som $u+ $pause // who (relative)
der d&r $u+ $u // PB changed from [d]A der d&r $u+ $u // PB changed from [d]A
hvor v'Vr // where hvor v'Vr // where
hvorfor vVf'V // why - firan r deleted hvorfor vVf'V // why - firan r deleted
ad &D $atend $sentence // PB "Det må ikke skille os ad." ad &D $atend $sentence // PB "Det må ikke skille os ad."
at &: $u // PB changed from [at] to [&:] at &: $u // PB changed from [at] to [&:]
hos // at - PB: removed [$u+] hos // at - PB: removed [$u+]
som sVm // which / that - PB: removed [$u+]
som sVm $u // which / that - PB: removed [$u+]


// pronouns // pronouns
jeg jai $u+ // I jeg jai $u+ // I
hun $u hun $u
det de $u det de $u
dét de dét de
vi $u
vi vi $u
i _i $u+ i _i $u+
mig maj $u // me mig maj $u // me
dig daj $u dig daj $u
ham $u ham $u
hende $u hende $u
sig $u sig $u
os Vs $u
jer
os Vs $u+
jer $u
denne $u+ // this denne $u+ // this
dette $u+ dette $u+
disse $u+ // these disse $u+ // these
bør $u+ // ought bør $u+ // ought


// letter names // letter names
b be:
c se:
d de:
b be
c se
d de
_e e: _e e:
f Ef f Ef
g ge:
g ge
h hO: h hO:
_i i: _i i:
j jVD // PB changed from [o] j jVD // PB changed from [o]
m Em m Em
n En n En
o o o o
p pe:
q ku:
p pe
q ku
r Er r Er
s es s es
//t te: mooved to da_rules because of clash with T-shirt //t te: mooved to da_rules because of clash with T-shirt
u u? u u?
v ve:
v ve
w d'Vbeltve: w d'Vbeltve:
x Eks x Eks
y Y? y Y?
// PB English words // PB English words
bacon _^_EN bacon _^_EN
bondage _^_EN bondage _^_EN
baseball _^_EN
volleyball _^_EN volleyball _^_EN
dj _^_EN dj _^_EN
deadline _^_EN deadline _^_EN
paul _^_EN $alt paul _^_EN $alt
reynolds _^_EN $alt reynolds _^_EN $alt
purvis _^_EN purvis _^_EN
sally _^_EN $alt
washington _^_EN $alt washington _^_EN $alt
white _^_EN $alt white _^_EN $alt
chicago _^_EN $alt chicago _^_EN $alt


// PB French words // PB French words
croissant _^_FR
croquis _^_FR croquis _^_FR
crouton _^_FR crouton _^_FR
jugement _^_FR jugement _^_FR
jaguar $alt jaguar $alt
janitshar $alt janitshar $alt
jubilar $alt jubilar $alt
kommentar $alt
korsar $alt korsar $alt
laminar $alt laminar $alt
legatar $alt legatar $alt
opulent $alt opulent $alt
orient $alt orient $alt
patent $alt patent $alt
patient $alt
piment $alt piment $alt
permanent $alt permanent $alt
potent $alt potent $alt
violinistinde $alt violinistinde $alt
værtinde $alt værtinde $alt


// PB nouns with final -isme - stressed i
absolutisme $alt
absurdisme $alt
aforisme $alt
afværgemekanisme $alt
agnosticisme $alt
akademisme $alt
aktivisme $alt
albinisme $alt
alkoholisme $alt
alpinisme $alt
altruisme $alt
amatørisme $alt
amerikanisme $alt
anakronisme $alt
analfabetisme $alt
anarkisme $alt
anarkosyndikalisme $alt
anglicisme $alt
animisme $alt
antagonisme $alt
antropomorfisme $alt
aristokratisme $alt
arkaisme $alt
astigmatisme $alt
atavisme $alt
ateisme $alt
atomisme $alt
autisme $alt
avantgardisme $alt
baptisme $alt
barbarisme $alt
barthianisme $alt
behaviorisme $alt
bilisme $alt
bolsjevisme $alt
bonapartisme $alt
botulisme $alt
brahmanisme $alt
brandesianisme $alt
brutalisme $alt
buddhisme $alt
bureaukratisme $alt
calvinisme $alt
centralisme $alt
chauvinisme $alt
cyklisme $alt
cæsarisme $alt
dadaisme $alt
danisme $alt
darwinisme $alt
decentralisme $alt
defaitisme $alt
deisme $alt
dekonstruktivisme $alt
demokratisme $alt
despotisme $alt
determinisme $alt
dilettantisme $alt
dirigisme $alt
dogmatisme $alt
doktrinarisme $alt
dokumentarisme $alt
dramadokumentarisme $alt
dualisme $alt
egoisme $alt
eklekticisme $alt
ekshibitionisme $alt
eksistentialisme $alt
eksorcisme $alt
eksotisme $alt
ekspansionisme $alt
ekspressionisme $alt
ekstremisme $alt
ekvilibrisme $alt
elitisme $alt
empirisme $alt
epikuræisme $alt
erotisme $alt
eskapisme $alt
etnocentrisme $alt
eudaimonisme $alt
eufemisme $alt
evolutionisme $alt
fanatisme $alt
farisæisme $alt
fascisme $alt
fatalisme $alt
fauvisme $alt
federalisme $alt
feminisme $alt
fetichisme $alt
feudalisme $alt
flagellantisme $alt
forbrugerisme $alt
formalisme $alt
freudianisme $alt
fundamentalisme $alt
funktionalisme $alt
futurisme $alt
føderalisme $alt
gallicisme $alt
gaullisme $alt
georgisme $alt
germanisme $alt
gigantisme $alt
gnosticisme $alt
grundtvigianisme $alt
græcisme $alt
hedonisme $alt
hegemonisme $alt
hellenisme $alt
hermafroditisme $alt
heroisme $alt
hinduisme $alt
historicisme $alt
historisme $alt
holisme $alt
hooliganisme $alt
humanisme $alt
hypnotisme $alt
idealisme $alt
idiotisme $alt
imperialisme $alt
impressionisme $alt
indeterminisme $alt
individualisme $alt
industrialisme $alt
infantilisme $alt
intellektualisme $alt
internationalisme $alt
interventionisme $alt
irrationalisme $alt
islamisme $alt
isolationisme $alt
isomorfisme $alt
jesuitisme $alt
judaisme $alt
kannibalisme $alt
kapitalisme $alt
katolicisme $alt
klassicisme $alt
klerikalisme $alt
kokainisme $alt
kollektivisme $alt
kolonialisme $alt
kolorisme $alt
kommercialisme $alt
kommunisme $alt
kommunitarisme $alt
komparatisme $alt
konformisme $alt
konfucianisme $alt
konkretisme $alt
konservatisme $alt
konsonantisme $alt
konstruktivisme $alt
korporatisme $alt
korporativisme $alt
kosmopolitisme $alt
kreationisme $alt
kretinisme $alt
kubisme $alt
kulturisme $alt
kvietisme $alt
kynisme $alt
lakonisme $alt
lamaisme $alt
lamarckisme $alt
latinisme $alt
leninisme $alt
lesbianisme $alt
liberalisme $alt
lobbyisme $alt
lutheranisme $alt
lyrisme $alt
machiavellisme $alt
magnetisme $alt
malthusianisme $alt
manierisme $alt
maoisme $alt
markedsmekanisme $alt
marxisme $alt
maskulinisme $alt
masochisme $alt
materialisme $alt
mccarthyisme $alt
mekanisme $alt
merkantilisme $alt
messianisme $alt
metabolisme $alt
metodisme $alt
militarisme $alt
minimalisme $alt
modernisme $alt
monarkisme $alt
monetarisme $alt
mongolisme $alt
monisme $alt
monopolisme $alt
monoteisme $alt
moralisme $alt
morfinisme $alt
mormonisme $alt
muhamedanisme $alt
mutisme $alt
mysticisme $alt
naivisme $alt
narcissisme $alt
nationalisme $alt
naturalisme $alt
naturisme $alt
nazisme $alt
negativisme $alt
neologisme $alt
nepotisme $alt
neutralisme $alt
nihilisme $alt
nomadisme $alt
nordisme $alt
norvagisme $alt
nudisme $alt
objektivisme $alt
obskurantisme $alt
okkultisme $alt
opportunisme $alt
optimisme $alt
organisme $alt
ostrakisme $alt
pacifisme $alt
panteisme $alt
papisme $alt
parallelisme $alt
parkinsonisme $alt
parlamentarisme $alt
partikularisme $alt
paternalisme $alt
patriarkalisme $alt
patriotisme $alt
pennalisme $alt
perfektionisme $alt
perspektivisme $alt
pessimisme $alt
pietisme $alt
platonisme $alt
pluralisme $alt
pointillisme $alt
polycentrisme $alt
polyteisme $alt
populisme $alt
positivisme $alt
pragmatisme $alt
primitivisme $alt
privatisme $alt
professionalisme $alt
protektionisme $alt
protestantisme $alt
provinsialisme $alt
psykologisme $alt
purisme $alt
puritanisme $alt
racisme $alt
radikalisme $alt
rationalisme $alt
realisme $alt
reformisme $alt
regionalisme $alt
relativisme $alt
reumatisme $alt
revanchisme $alt
revisionisme $alt
rigorisme $alt
romantisme $alt
royalisme $alt
sadisme $alt
sadomasochisme $alt
satanisme $alt
seksualisme $alt
sekterisme $alt
sekularisme $alt
seminarisme $alt
sensationalisme $alt
sensualisme $alt
sentimentalisme $alt
separatisme $alt
serialisme $alt
sexisme $alt
shamanisme $alt
shiisme $alt
shintoisme $alt
skandinavisme $alt
skepticisme $alt
slavisme $alt
snobbisme $alt
socialisme $alt
sofisme $alt
solipsisme $alt
somnambulisme $alt
spiritisme $alt
spiritualisme $alt
spontanisme $alt
stalinisme $alt
stoicisme $alt
strukturalisme $alt
subjektivisme $alt
supranaturalisme $alt
surrealisme $alt
svecisme $alt
syllogisme $alt
symbolisme $alt
syndikalisme $alt
synkretisme $alt
synkronisme $alt
tachisme $alt
taoisme $alt
teisme $alt
terrorisme $alt
thomisme $alt
totalitarisme $alt
totemisme $alt
traditionalisme $alt
transvestisme $alt
transvestitisme $alt
tropisme $alt
trotskisme $alt
truisme $alt
tsarisme $alt
turisme $alt
uniformisme $alt
unionisme $alt
unitarisme $alt
universalisme $alt
urbanisme $alt
utilitarisme $alt
utopisme $alt
vandalisme $alt
vegetarianisme $alt
vegetarisme $alt
verisme $alt
victorianisme $alt
vitalisme $alt
vokalisme $alt
voyeurisme $alt
vulgarisme $alt
vulkanisme $alt
zarisme $alt
zenbuddhisme $alt
zionisme $alt
ækvilibrisme $alt
æsteticisme $alt

// PB words with final -ni - stressed i // PB words with final -ni - stressed i
agoni $alt agoni $alt
androgyni $alt androgyni $alt
monogami $alt monogami $alt
origami oreg'ami $alt origami oreg'ami $alt
pandemi $alt pandemi $alt
pastrami p&stR'Ami $alt
polygami $alt polygami $alt
salami sal'&mi $alt salami sal'&mi $alt
socionomi $alt socionomi $alt
vasektomi $alt vasektomi $alt
økonomi $alt økonomi $alt


// PB stressed second syllable in words with initial ge
gebet $alt
gebis $alt
gebommerlig $alt
gebrokken $alt
gebrækkelig $alt
gebyr $alt
gebærde $alt
gedigen $alt
gedulgt $alt
gehalt $alt
gehejmeråd $alt
gehenna $alt
gehæng $alt
gehør $alt
gelassen $alt
geled $alt
gelejde $alt
gelinde $alt
gelænder $alt
gemak $alt
gemal $alt
gemen $alt
gemyse $alt
gemyt $alt
gemytlig $alt
genom $alt
gentil $alt
genuin $alt
gepard $alt
geranie $alt
geranium $alt
geråde $alt
gesandt $alt
gesandtskab $alt
gesims $alt
gesjæft $alt
geskæftig $alt
gespenst $alt
gestagen $alt
gestalt $alt
gestik $alt
gesvejsning $alt
gesvindt $alt
gevaldig $alt
gevalt $alt
gevandt $alt
gevind $alt
gevinst $alt
gevir $alt
gevækst $alt
gevær $alt

// words with final "in" - stressed i // words with final "in" - stressed i
aborigin $alt aborigin $alt
adrenalin $alt adrenalin $alt
vivarium $alt vivarium $alt
vokabularium $alt vokabularium $alt


// PB nouns with final -um - stress on previous syllable
basilikum $alt
curriculum $alt
dekorum $alt
depositum $alt
desideratum $alt
epicentrum $alt
erratum $alt
faktotum $alt
filosofikum $alt
futurum $alt
gummiarabicum $alt
interregnum $alt
jubilæum $alt
karakteristikum $alt
karbolineum $alt
karborundum $alt
kemoterapeutikum $alt
kompositum $alt
konsum $alt
kuriosum $alt
linoleum $alt
mausoleum $alt
memorandum $alt
momentum $alt
museum $alt
narkotikum $alt
neolitikum $alt
opossum $alt
palæolitikum $alt
perfektum $alt
perikum $alt
periodikum $alt
petitum $alt
petroleum $alt
postscriptum $alt
præteritum $alt
psykofarmakum $alt
pædagogikum $alt
referendum $alt
responsum $alt
supinum $alt
tedeum $alt
ultimatum $alt
vademecum $alt

// PB nouns with final -ie - stress on previous syllable // PB nouns with final -ie - stress on previous syllable
// unofficial suffix for the "ium" words above // unofficial suffix for the "ium" words above
adverbie $alt adverbie $alt
stewardesse $alt stewardesse $alt
tristesse $alt tristesse $alt


final -ese - stressed e
anamnese $alt
askese $alt
diatese $alt
diurese $alt
eksegese $alt
fylogenese $alt
genese $alt
hypotese $alt
katakrese $alt
kinese $alt
ontogenese $alt
parese $alt
partenogenese $alt
patogenese $alt
protese $alt
syntese $alt

PB final -id - stressed i PB final -id - stressed i
adenoid $alt adenoid $alt
alkaloid $alt alkaloid $alt
blamer $alt blamer $alt
blancher $alt blancher $alt
bloker $alt bloker $alt
bogstaver $alt
bogstavere $alt
bombarder $alt bombarder $alt
bonbonniere bVNbVNj'E:r $alt bonbonniere bVNbVNj'E:r $alt
boniter $alt boniter $alt
konvoluter $alt konvoluter $alt
kooperer $alt kooperer $alt
koordiner $alt koordiner $alt
kopier $alt
kopiere $alt
kopuler $alt kopuler $alt
koreografer $alt koreografer $alt
korreler $alt korreler $alt
kursere $alt kursere $alt
kursiver $alt kursiver $alt
kurtiser $alt kurtiser $alt
kuverter $alt
kuvertere $alt
kvadrer $alt kvadrer $alt
kvaksalverer $alt kvaksalverer $alt
kvalificer $alt kvalificer $alt
merkantiliser $alt merkantiliser $alt
metalliser $alt metalliser $alt
metamorfoser $alt metamorfoser $alt
metastaser $alt
metastasere $alt
migrer $alt migrer $alt
mikroskoper $alt mikroskoper $alt
militariser $alt militariser $alt
pausere $alt pausere $alt
pelleter $alt pelleter $alt
pendulere $alt pendulere $alt
pensioner $alt
pensionere $alt
perciper $alt perciper $alt
perfektioner $alt perfektioner $alt
perforer $alt perforer $alt
petitioner $alt petitioner $alt
pigmenter $alt pigmenter $alt
piker $alt piker $alt
piloter $alt
pilotere $alt
pioner $alt pioner $alt
pipetter $alt pipetter $alt
pirater $alt pirater $alt
regaler $alt regaler $alt
regenerer $alt regenerer $alt
reger $alt reger $alt
ureger $alt // PB uregerlig
regionaliser $alt regionaliser $alt
registrer $alt registrer $alt
regreder $alt regreder $alt
rekompenser $alt rekompenser $alt
rekonvalescer $alt rekonvalescer $alt
rekreer $alt rekreer $alt
rekrutter $alt
rekruttere $alt
rektificer $alt rektificer $alt
rektoskoper $alt rektoskoper $alt
rekurrer $alt rekurrer $alt
trivialiser $alt trivialiser $alt
trompeter $alt trompeter $alt
trunker $alt trunker $alt
trænere $alt
//trænere $alt
tunneler $alt tunneler $alt
turner $alt turner $alt
tuscher $alt tuscher $alt
urbaniser $alt urbaniser $alt
urger $alt urger $alt
uriner $alt uriner $alt
urpremier $alt
usurper $alt usurper $alt
vacciner $alt vacciner $alt
vagabonder $alt vagabonder $alt
saigon sajg3-n // PB Saigon saigon sajg3-n // PB Saigon
managua m&n'&:gw& managua m&n'&:gw&
(deja-vu) deSja||'vy (deja-vu) deSja||'vy
(il duce) il||d'u:tSj@ // PB Italian faschist
(il duce) il||d'u:tSj@ // PB Italian Fascist


// Abbreviations // Abbreviations
pga pOgR'O?n'a? $hasdot // PB short for 'på grund af'
pga pO||gR'O?n||& $hasdot // PB short for 'på grund af'
hr h&r $hasdot // PB hr. - short for mister (Mr) in Danish hr h&r $hasdot // PB hr. - short for mister (Mr) in Danish
mr mestV $hasdot // PB mister mr mestV $hasdot // PB mister
mrs meses $hasdot // PB Mrs. mrs meses $hasdot // PB Mrs.
(f.eks) fVegsemp@l $hasdot // PB "f.eks" is short for 'for eksempel' (f.eks) fVegsemp@l $hasdot // PB "f.eks" is short for 'for eksempel'
(dj'en) di:'dje:j3n // *PB dj'en - the dj (dj'en) di:'dje:j3n // *PB dj'en - the dj
(dj'er) di:'dje:jV // *PB dj'er (dj'er) di:'dje:jV // *PB dj'er
(tv'et) te:ve:@d // PB
(tv'er) te:ve:V // PB
(cd'en) se:de:3n // PB (cd'en) se:de:3n // PB
(cd'er) se:de:V // PB (cd'er) se:de:V // PB
emp $abbrev emp $abbrev
hbo $abbrev // TV station
usa $abbrev usa $abbrev
who $abbrev $allcaps // PB World Health Organization
vsop $abbrev
eu $abbrev eu $abbrev
ekg $abbrev
co $abbrev $allcaps // PB for CO2-kvote
ngo $abbrev
edb $abbrev edb $abbrev
mri $abbrev
wc v'ese // w is pronounces as v in Danish
(wc'et) v'ese@d
(wc'er) v'eseV
(wc'erne) v'eseVn@
(wc'ernes) v'eseVn@s
it $abbrev it $abbrev
id $abbrev id $abbrev
dna $abbrev dna $abbrev
(så langt) sV||l'ANt (så langt) sV||l'ANt
(så vil) sV||v'el (så vil) sV||v'el
(så højt) sV||h'Vjt (så højt) sV||h'Vjt
(så var) sV||v'Ar
(så var) sV||v'Ar
(så længe) sV||l'EN3 (så længe) sV||l'EN3
(så må) sV||m'O (så må) sV||m'O
(så har) sV||har (så har) sV||har
(ville så) vil3||sV
så sV $sentence $atstart så sV $sentence $atstart
(virkede så) v'irkeD@||sV (virkede så) v'irkeD@||sV
(kom så) kVm||sV (kom så) kVm||sV
(koste med) kosd@||mED (koste med) kosd@||mED
(en kanoner) en||k&non'er
(en kanoner) en||k&non'er
nå nV $atstart // PB Nå, der er du

+ 539
- 123
dictsource/da_rules
File diff suppressed because it is too large
View File


+ 2
- 1
dictsource/de_list View File

_: d'Op@lp,UNkt _: d'Op@lp,UNkt
_; Str'ICpUNkt _; Str'ICpUNkt
__ ,Unt3Str'IC __ ,Unt3Str'IC
_- b'IndEstr,IC
_- b'Ind@str,IC
_! 'aUs_|r,u:f@ts,aIC@n _! 'aUs_|r,u:f@ts,aIC@n
_? fr'Ag@ts,aIC@n _? fr'Ag@ts,aIC@n
_' ,apo:str'Of _' ,apo:str'Of
browser _^_EN browser _^_EN
byte _^_EN byte _^_EN
camcorder _^_EN camcorder _^_EN
change _^_EN
chart _^_EN chart _^_EN
chat _^_EN chat _^_EN
coach _^_EN coach _^_EN

+ 2
- 2
dictsource/de_rules View File

B) gn (A g@-n B) gn (A g@-n


i) gt (_ Ct i) gt (_ Ct
zei) gt (_ kt
ei) gt (_ kt
gtet (_ kt@t gtet (_ kt@t
gtest kt@st gtest kt@st


v v v v
v) v v) v
v (_N f v (_N f
_) v (A v


_) v (lad v _) v (lad v
_) v (lies f _) v (lies f
_) vi (CC vI _) vi (CC vI
_) vi vi: _) vi vi:


_) v v
vater fA:t3 vater fA:t3
väter fE:t3 väter fE:t3
_) v (ät f _) v (ät f

+ 54
- 42
dictsource/dict_phonemes View File

Phonemes which are used in the *_rules and *_list files Phonemes which are used in the *_rules and *_list files




Dictionary af_dict 2010-05-24
Dictionary af_dict 2010-08-26


& &: 3: @ @- @L @U a & &: 3: @ @- @L @U a
A: aI AI aU A~ E e: e@ A: aI AI aU A~ E e: e@
x z x z




Dictionary da_dict 2010-07-29
Dictionary da_dict 2010-08-26


& &# 0 3 @ @- a A & &# 0 3 @ @- a A
e E i o O u V W e E i o O u V W
s S t T tS v w z s S t T tS v w z




Dictionary hu_dict 2010-08-02
Dictionary hu_dict 2010-09-13


A a: E e: i i: o o: A a: E e: i i: o o:
u u: Y y y: Y: u u: Y y y: Y:
t tS ts v z Z t tS ts v z Z




Dictionary de_dict 2010-07-27
Dictionary de_dict 2010-08-25


3 3: @ @- a A A: aI 3 3: @ @- a A A: aI
aU E E2 E: e: EI i I aU E E2 E: e: EI i I
tS ts v w x z Z tS ts v w x z Z




Dictionary el_dict 2008-12-16
Dictionary el_dict 2010-08-26


@ @- a aI e i o oI
u
a aI e i o oI u


* ; b c C d D f
g j k l l^ m n N
n^ p Q r R s s; t
T ts v x z z;
; b c C d D f g
j k l l^ m n N n^
p Q r R s s; t T
ts v x z z;




Dictionary en_dict 2010-07-30
Dictionary en_dict 2010-09-14


0 3 3: @ @- @2 @5 @L 0 3 3: @ @- @2 @5 @L
a a# A: A@ aa aI aI@ aU a a# A: A@ aa aI aI@ aU
z Z z Z




Dictionary eo_dict 2010-05-19
Dictionary eo_dict 2010-08-27


@- a aI aU e eI eU i @- a aI aU e eI eU i
o oI u uI o oI u uI
s2 t v w Z s2 t v w Z




Dictionary fr_dict 2010-07-30
Dictionary fr_dict 2010-09-04


@ @- a A~ e E E: E~ @ @- a A~ e E E: E~
i I o O O~ u u: w i I o O O~ u u: w
t. th th. v w x z t. th th. v w x z




Dictionary ta_dict 2010-07-30
Dictionary ta_dict 2010-09-14


a a: aI aU e E e: i a a: aI aU e E e: i
I i: o o: u U u2 u: I i: o o: u U u2 u:
t tS v w x t tS v w x




Dictionary nl_dict 2010-07-27
Dictionary nl_dict 2010-09-13


8 @ @- A a: A~ E e:
EI eU i I O O: o: u
VU Wy y Y: yU
8 @ @- a A a: A~ E
E2 e: EI eU i I o O
O: o: O~ u VU Wy y Y:
yU


* : ; b d D f g
h j k l m n N n^
p Q r s S t tS v
v# w x z Z
* : ; b d D dZ f
g h j k l m n N
n^ p Q r s S t tS
v v# w x z Z




Dictionary no_dict 2010-01-20 Dictionary no_dict 2010-01-20
y y


: ; b c C d d; dZ : ; b c C d d; dZ
dz f g h j k l m
n N n^ p r R s S
s; S; t t; tS ts tS; v
w x z Z Z;
dz dz; f g h j k l
m n N n^ p r R s
S s; S; t t; tS ts tS;
ts; v w x z Z Z;




Dictionary pt_dict 2010-07-03
Dictionary pt_dict 2010-09-04


& &/ &U~ &~ @ @- a A & &/ &U~ &~ @ @- a A
aI aU e E eI EI eU EU aI aU e E eI EI eU EU
w z Z w z Z




Dictionary sv_dict 2010-05-28
Dictionary sv_dict 2010-09-08


8 @ a A: E E- e: E: 8 @ a A: E E- e: E:
I i: O o: U u- u: W I i: O o: U u- u: W
v w x z v w x z




Dictionary sl_dict 2010-07-14
Dictionary sl_dict 2010-08-14


@ a a: e E e: i i: @ a a: e E e: i i:
o O o: u u: y o O o: u u: y
v w x z Z z. v w x z Z z.




Dictionary zh_dict 2010-06-29
Dictionary zh_dict 2010-09-13


@ @r a A ai Au E ei @ @r a A ai Au E ei
i i. i[ iA iE io iou N- i i. i[ iA iE io iou N-


@ a e i o u @ a e i o u


; b C d d; dZ dz f
g j k l L l^ m n
n^ p r s S s; t t;
tS ts v x z Z z;
; b C d d; dZ dz dz;
f g j k l L l^ m
n n^ p r s S s; t
t; tS ts ts; v x z Z
z;




Dictionary nso_dict 2010-05-26
Dictionary nso_dict 2010-08-27


@ a e i m- n- N- o
u
@ a e E i m- n- N-
o u U


- : b d D dZ f g
h j J k l l# m n
N n^ p Q r R R3 s
S t T tS v w x z
- : ; b B d D dZ
f h j J k K l l#
m n N n^ p Q R3 s
S t tS v w x X x2
z




Dictionary ht_dict 2010-06-29 Dictionary ht_dict 2010-06-29
tS v z Z tS v z Z




Dictionary ak_dict 2010-08-11

a e E i o O u

: b C d dZ dZ; f g
h j k l m n N n^
p R s t tS; v w z
z;


Dictionary az_dict 2010-07-27 Dictionary az_dict 2010-07-27


& @ a e E i o u & @ a e E i o u

+ 55
- 43
dictsource/el_list View File





// numbers // numbers
_0 miD'en
_1 'ena
_2 D'io
_3 t@-@'ia
_3f t@-@'is
_4 t'esera
_4f t'eseris
_5 p'ente
_6 'eksi
_7 ept'a
_8 okt'o
_9 en'ea
_1X D'eka
_11 'enDeka
_12 D'oDeka
_2X 'ikosi
_3X t@-*i'anda
_4X sar'anda
_5X pen'inda
_6X eks'inda
_7X ebdom'inda
_8X ogd'onda
_9X enen'inda
_0C ekat'on_
_1C0 ekat'o
_1C ekat'on_
_2C D;ak'os;a_
_3C t@-*iak'os;a_
_4C tet@-*ak'os;a_
_5C pendak'os;a_
_6C eksak'os;a_
_7C eptak'os;a_
_8C oktak'os;a_
_9C en^ak'os;a_
_0M1 Cil^'aDes
_1M1 C'il^a // no '1' before thousand
_1M2 'ena|ekatom'irio
_0M2 ekatom'iria
_1M3 'ena|Disekatom'irio
_0M3 Disekatom'iria
_dpt k'oma
_. tel'ia
_0 miD'en
_1 'ena
_2 D'io
_3 tr'ia
_3f tr'is
_4 t'esera
_4f t'eseris
_5 p'ente
_6 'eksi
_7 ept'a
_8 okt'o
_9 en'ea
_1X D'eka
_11 'enDeka
_12 D'oDeka
_2X 'ikosi
_3X tri'anda
_4X sar'anda
_5X pen'inda
_6X eks'inda
_7X ebdom'inda
_8X ogd'onda
_9X enen'inda
_0C ekat'on_
_1C0 ekat'o
_1C ekat'on_
_2C D;ak'os;a_
_3C triak'os;a_
_4C tetrak'os;a_
_5C pendak'os;a_
_6C eksak'os;a_
_7C eptak'os;a_
_8C oktak'os;a_
_9C en^ak'os;a_
_0M1 Cil^'aDes
_1M1 C'il^a // no '1' before thousand
_1M2 'ena|ekatom'irio
_0M2 ekatom'iria
_1M3 'ena|Disekatom'irio
_0M3 Disekatom'iria
_dpt k'oma
_. tel'ia
_#ος %os // ordinal suffix


// articles // articles
ο o $u // definate article ο o $u // definate article




// verbs // verbs
θα $u // future

είμαι $u // to be είμαι $u // to be
είσαι $u είσαι $u
είναι $u είναι $u
προς $brk // towards προς $brk // towards
μέχρι $brk // until μέχρι $brk // until
κοντά $brk // beside κοντά $brk // beside
επί $u



// conjunctions // conjunctions


επειδή $pause // because επειδή $pause // because
γιατί $pause // because, why γιατί $pause // because, why
διότι $pause // because, for διότι $pause // because, for
για $pause
ότι $pause


// Pronunciation exceptions




(για να) jan'a


// Letters // Letters
// If a letter has a "word" pronunciation which is different from its // If a letter has a "word" pronunciation which is different from its

+ 13
- 11
dictsource/el_rules View File

ι i ι i
C) ι (A ; C) ι (A ;
ρ) ι (A i ρ) ι (A i
δ) ι (α_ i
ι (ε i


.group κ .group κ
κ k κ k
ν_) π b ν_) π b


.group ρ .group ρ
ρ R
ρρ R
A) ρ (A *
C) ρ @-*
αυ) ρ @-* // υ becomes consionant [v]
αύ) ρ @-*
ευ) ρ @-*
εύ) ρ @-*
ηυ) ρ @-*
ηύ) ρ @-*
ρ r
ρρ r
A) ρ (A r
C) ρ r
αυ) ρ r // υ becomes consionant [v]
αύ) ρ r
ευ) ρ r
εύ) ρ r
ηυ) ρ r
ηύ) ρ r




.group σ .group σ

+ 20
- 16
dictsource/en_list View File

≠ n0t'i:kw@LtU ≠ n0t'i:kw@LtU
№ nju:m@roU № nju:m@roU
। dVnda# । dVnda#
● bl,aks'3:k@L


ß S,A@p'Es ß S,A@p'Es
ə SwA: ə SwA:
?7 _17 s'@v@nti:n ?7 _17 s'@v@nti:n
_18 'eIti:n _18 'eIti:n
_19 n'aInti:n _19 n'aInti:n
_2X tw'EntI
_3X T'3:tI
?5 _3X T'IRtI
_4X f'o@tI
_5X f'IftI
_6X s'IkstI
_7X s'Ev@ntI
?7 _7X s'@v@ntI
_8X 'eItI
_9X n'aIntI
_2X tw'Enti
_3X T'3:ti
?5 _3X T'IRti
_4X f'o@ti
_5X f'Ifti
_6X s'Iksti
_7X s'Ev@nti
?7 _7X s'@v@nti
_8X 'eIti
_9X n'aInti
_0C h'Vndr@d _0C h'Vndr@d
_0M1 T'aUz@nd _0M1 T'aUz@nd
_0M2 m'Ili@n _0M2 m'Ili@n
_70o s'Ev@nti@ _70o s'Ev@nti@
_80o 'eIti@ _80o 'eIti@
_90o n'aInti@ _90o n'aInti@
_0Co h'Vndr@dT
_0M1o T'aUz@ndT
//_0Co h'Vndr@dT
//_0M1o T'aUz@ndT




// ABBREVIATIONS // ABBREVIATIONS
suppose $2 suppose $2
suprise $2 // misspell suprise $2 // misspell
surest SU@@st surest SU@@st
surplus s3:pl@s
surrogate sVr@geIt surrogate sVr@geIt
?3 surrogate s3:@geIt ?3 surrogate s3:@geIt
survey s3:veI $onlys survey s3:veI $onlys
Damascus da#mask@s Damascus da#mask@s
Danish deInIS Danish deInIS
Delhi dElI Delhi dElI
Dhabi dA:bi
Djibouti dZIb'u:tI Djibouti dZIb'u:tI
Donegal d0nI2g'O:l Donegal d0nI2g'O:l
Durham dVr@m Durham dVr@m
Barbara bA@b@r@ Barbara bA@b@r@
Betsy bEtsI Betsy bEtsI
Bjorn bjO@n Bjorn bjO@n
Bjørn bj3:n
Boris b0rIs Boris b0rIs
Brien braI@n Brien braI@n
Candace kandIs Candace kandIs
Dominic d0mI2nIk Dominic d0mI2nIk
Donaghy d0n'hi: Donaghy d0n'hi:
Doris d0rIs Doris d0rIs
Dorothy dO@r@Ti
Dorothy d0r@Ti
Dougall du:g@L Dougall du:g@L
Duncan dVnk@n
Dvina d@vi:n@ Dvina d@vi:n@
Dylan dIl@n Dylan dIl@n
Edith i:dIT Edith i:dIT
Therese t@ri:z Therese t@ri:z
Thomas t0m@s Thomas t0m@s
Tina ti:n@ Tina ti:n@
Tracy treIsI
Tracy treIsi
Tricia trIS@ Tricia trIS@
Vanessa va#nEs@ Vanessa va#nEs@
Wally w0lI Wally w0lI
toward tUwO@d $2 toward tUwO@d $2
over oUv3 $u $strend2 $only over oUv3 $u $strend2 $only
under Vnd3 $u $strend2 $only under Vnd3 $u $strend2 $only
within wIDIn $u2
within wIDIn $u2 $strend2 $brk
without wIDaUt $u2 $strend2 without wIDaUt $u2 $strend2
above @bVv $u2 $strend2 above @bVv $u2 $strend2
about a#baUt $u2 $strend2 about a#baUt $u2 $strend2
thus DVs $pause thus DVs $pause
though ,DoU though ,DoU
whenever wEnEv3 $u2 $pause whenever wEnEv3 $u2 $pause
within $u $pause
whoever hu:Ev3 $2 whoever hu:Ev3 $2
whatever w0tEv3 $2 $pause whatever w0tEv3 $2 $pause
?3 whatever wVtEv3 $2 $pause ?3 whatever wVtEv3 $2 $pause

+ 10
- 4
dictsource/en_rules View File

accu (ra akjU accu (ra akjU
accus (A a#kju:z accus (A a#kju:z
ace (_ eIs ace (_ eIs
sp) ac (e eIs
sp) ac (e# eIs
_r) ac (e eIs _r) ac (e eIs
_) ac (e a#s _) ac (e a#s
_r) ac (is eIs _r) ac (is eIs
_) be (sC bI2 _) be (sC bI2
_) be (stia bE _) be (stia bE
_) be (tC bI2 _) be (tC bI2
_) be (v bE
_) be (vA bE
be (gA bI2 be (gA bI2
be (gr bI2 be (gr bI2
be (lat bI2 be (lat bI2
_) dj (Y dZ _) dj (Y dZ
_) d (nie d _) d (nie d
_) d (wY d // allow _dw _) d (wY d // allow _dw
_) d (h@@ d


d (d d (d
_) d' (AP2 d _) d' (AP2 d
&) i (c_ =I &) i (c_ =I
&) i (ca_ =I &) i (ca_ =I
&) i (cal =I &) i (cal =I
&) i (cism_ =I
&) i (cist_ =I
pr) i (ce aI pr) i (ce aI
adv) i (ce aI adv) i (ce aI
dev) i (ce aI dev) i (ce aI
ie (ve i: ie (ve i:
s) ie (ve I s) ie (ve I
ie (z i: ie (z i:
_t) ie aI
_t) ie (B aI


.group ig .group ig
am) ig (a_ i:g am) ig (a_ i:g
_) k (L01Y k _) k (L01Y k
_) k (hY k _) k (hY k
_) k (wY k _) k (wY k
_) kj (e@ kj
_) kn (Y n _) kn (Y n
kn (if n kn (if n
kn (iv n kn (iv n
l) ov (e Vv l) ov (e Vv
_l) ove Vv _l) ove Vv
cl) ov (e oUv cl) ov (e oUv
_sl) ov (enA oUv
pl) ov oUv pl) ov oUv
pull) ov oUv pull) ov oUv
m) ov (A u:v m) ov (A u:v
_) pre (C@ pr%I _) pre (C@ pr%I
_) prea (ch pri: _) prea (ch pri:
_) pre (am pri: _) pre (am pri:
_) pre (cinc pri:
pre (cio prE pre (cio prE
preda (to prEd@ preda (to prEd@
prede (ces pri:dI prede (ces pri:dI
6_) 's (_ I2z 6_) 's (_ I2z
16_) 's (_ z 16_) 's (_ z
're (_S3 @ 're (_S3 @
've (_S3 v
've (_S3 @v
'd (_S2 d 'd (_S2 d
'll (_S3 @L 'll (_S3 @L



+ 12
- 10
dictsource/eo_list View File

_dpt _komo_ _dpt _komo_


// ordinal numbers // ordinal numbers
_#a a
_#aj aI
_#an an
_#ajn aIn
_#-a a
_#-aj aI
_#-an an
_#-ajn aIn
_#a %a
_#aj %aI
_#an %an
_#ajn %aIn
_#-a %a
_#-aj %aI
_#-an %an
_#-ajn %aIn


// accent names // accent names
_lig ligat'uRa _lig ligat'uRa
_! _k@-*isigno_ _! _k@-*isigno_
_- dividost@-*eko _- dividost@-*eko
__ subst@-*eko __ subst@-*eko
_' apost@-*'ofo
_" tsito
~ tildo ~ tildo
° gradoI ° gradoI
% p@-*otsento $max3 % p@-*otsento $max3
| duktosigno | duktosigno
* asteRisko $max3 * asteRisko $max3
© kopiRaIto © kopiRaIto
_( R'ondak@-*'ampo
_) f'eRmaRondak@-*'ampo
_( parentezo
_) f'eRmaparent'ezo
_[ R'ektak@-*'ampo _[ R'ektak@-*'ampo
_] f'eRmaRektak@-*'ampo _] f'eRmaRektak@-*'ampo
_{ k'uRbak@-*'ampo _{ k'uRbak@-*'ampo

+ 7
- 2
dictsource/fr_rules View File

// http://www.fluxnic.net/cicero // http://www.fluxnic.net/cicero
// //
// Rules are now maintained by Michel Such <[email protected]> // Rules are now maintained by Michel Such <[email protected]>
// Last update: 2010-07-30 Michel Such <[email protected]>
// Last update: 2010-09-04 Michel Such <[email protected]>
// //


// Letter classes: // Letter classes:


// For english words ending "side" // For english words ending "side"
.L14 be in up ut .L14 be in up ut
.L15 c f g h l s






bb) aye (X ei // abbaye bb) aye (X ei // abbaye
ay (C E // aymé ay (C E // aymé
ay Ej // paye ay Ej // paye
ay (ak aj // kayak
ay (_ E // display ay (_ E // display
Xl) ayer (X EjWr // player, layer Xl) ayer (X EjWr // player, layer
h) am (_S2 am h) am (_S2 am


// group b: English section // group b: English section
back _^_en back _^_en
_) be (L15A _^_en
board _^_en // board, keyboard board _^_en // board, keyboard
box (_ _^_en // box, inbox, outbox box (_ _^_en // box, inbox, outbox
bugg _^_en // debugger bugg _^_en // debugger
toma) c (_ toma) c (_
se) c (ond g // seconde secondaire se) c (ond g // seconde secondaire
c k // recoin donc c k // recoin donc
zin) c (_ g // zinc


cient (_ sit2 // ils appr�ient, remercient. cient (_ sit2 // ils appr�ient, remercient.
effi) cient sjA~ // coefficient effi) cient sjA~ // coefficient
_y) en (_ En _y) en (_ En
iew) er (X er2 iew) er (X er2
_m) e (ga e _m) e (ga e
app) en (di E~ // appendice




// group e: English section // group e: English section
_C) y (_ _^_en _C) y (_ _^_en
C) y (e_ _^_en C) y (e_ _^_en
%C) y (_ _^_en %C) y (_ _^_en
//@CAC) y (_ _^_en
@CeC) y (_ _^_en
nC) y (_ _^_en nC) y (_ _^_en
yze _^_en yze _^_en



+ 144
- 7
dictsource/hu_list View File

_#-ikai Ai _#-ikai Ai
_#-éhez e:hEz _#-éhez e:hEz
_#-ához a:hoz _#-ához a:hoz
_#-ikének e:nEk
_#-ikának a:nAk
(1-e) elseje $text $alt2 (1-e) elseje $text $alt2
(1-én) elsején $text $alt2 (1-én) elsején $text $alt2
(1-jén) elsején $text $alt2 (1-jén) elsején $text $alt2
(00-tól) nul:Anul:a:to:l (00-tól) nul:Anul:a:to:l
(0-n) nul:a:n (0-n) nul:a:n
(00-n) nul:Anul:a:n (00-n) nul:Anul:a:n
(0-ról) nul:a:R2o:l
(1-gyet) EJ:Et (1-gyet) EJ:Et
(1-gyes) EJ:ES (1-gyes) EJ:ES
(2-őt) kEt:Y:t (2-őt) kEt:Y:t
(5-től) Yt:Y:l (5-től) Yt:Y:l
(5-től) YtYdike:tY:l $alt2 (5-től) YtYdike:tY:l $alt2
(5-t) YtYt (5-t) YtYt
(5-ször) Yts:YR2
(6-al) hAt:Al (6-al) hAt:Al
(6-tal) hAt:Al (6-tal) hAt:Al
(6-tól) hAt:o:l (6-tól) hAt:o:l
_20e hus _20e hus
(10-szer) ti:s:ER2 (10-szer) ti:s:ER2
(10-szeres) ti:s:ER2ES (10-szeres) ti:s:ER2ES
(10-t) tizEt




//special number exceptions //special number exceptions
téli $alt téli $alt
végén $alt végén $alt
elején $alt elején $alt
folyamán $alt
úton $alt
út $alt


// accent names // accent names
_lig ligAtu:R2A _lig ligAtu:R2A


ellen $unstressend // against ellen $unstressend // against
//elé $u // before //elé $u // before
óta $alt $alt3 // since. Not a bug both $alt $alt3 attribute,
óta $unstressend $alt $alt3 // since. Not a bug both $alt $alt3 attribute,
//because if only a year is present, need spokening normal number, not //because if only a year is present, need spokening normal number, not
//ordinal number. For example: //ordinal number. For example:
//2004. óta meaning since 2004 and need spokening normal number. //2004. óta meaning since 2004 and need spokening normal number.
látszott $unstressend látszott $unstressend
látszanak $unstressend látszanak $unstressend
látszotok $unstressend látszotok $unstressend
körül $unstressend $alt3
körül $unstressend $alt $alt3
dőlt $unstressend dőlt $unstressend
vér $unstressend vér $unstressend
sót $unstressend sót $unstressend
állnak $unstressend állnak $unstressend
idején $unstressend idején $unstressend
néznek $unstressend néznek $unstressend
érezte $unstressend
sért $unstressend
adózású $unstressend
kötelezni $unstressend
lehetőség $unstressend
mondtuk $unstressend
kellene $unstressend
szerte $unstressend
hozta $unstressend
kezdte $unstressend
lökte $unstressend
benne $unstressend
fenn $unstressend
elő $unstressend
javasolták $unstressend
kezdjen $unstressend
látta $unstressend
látták $unstressend
nyomát $unstressend
került $unstressend
várták $unstressend
közbe $unstressend
látott $unstressend
tartanak $unstressend
ejt $unstressend
önnek $unstressend
álljon $unstressend
szálljon $unstressend
üljön $unstressend
jónak $unstressend
hisz $unstressend
elől $unstressend
vágy $unstressend
vitték $unstressend
küldött $unstressend
mentén $unstressend
venni $unstressend
múlik $unstressend
indít $unstressend
nála $unstressend
vizsgálata $unstressend
vizsgálatot $unstressend
indítottak $unstressend
vizsgált $unstressend
javult $unstressend
része $unstressend
írni $unstressend
téren $unstressend
terén $unstressend
menni $unstressend
fogja $unstressend
teszik $unstressend
tömni $unstressend
nyel $unstressend
érzi $unstressend
annak $unstressend
dolog $unstressend
számít $unstressend
aránya $unstressend
helyzetük $unstressend
kifogásolták $unstressend
kifogásolta $unstressend
fogalmaz $unstressend
szóló $unstressend
gyártott $unstressend
írta $unstressend
rúgták $unstressend
esett $unstressend
marad $unstressend
tulajdonú $unstressend
KFT $unstressend
folytatja $unstressend
államokban $unstressend
című $unstressend
senkit $unstressend
abban $unstressend
tegyük $unstressend
szar $unstressend
gond $unstressend
megy $unstressend
ebből $unstressend
abból $unstressend
ebben $unstressend
mondom $unstressend
akar $unstressend
akarsz $unstressend
távra $unstressend
jog $unstressend
járunk $unstressend
szólni $unstressend
ró $unstressend
kérni $unstressend
építést $unstressend
adni $unstressend
részén $unstressend
érni $unstressend
lap $unstressend
írja $unstressend
írtak $unstressend
stressz $unstressend
nyújtózni $unstressend
éve $unstressend
tartott $unstressend
attól $unstressend
utast $unstressend
szint $unstressend
minőségű $unstressend
beszélt $unstressend
kerületben $unstressend
gáz $unstressend
épült $unstressend
építésű $unstressend
együttes $unstressend
távon $unstressend
híg $unstressend
szőr $unstressend
diagnosztizálható $unstressend
működik $unstressend
hat $unstressend
mutatnak $unstressend
rés $unstressend
szélén $unstressend
lógott $unstressend
tűnő $unstressend
kötni $unstressend
lopni $unstressend
döntöttem $unstressend
szerzett $unstressend
érted $unstressend
járni $unstressend
döntöttek $unstressend
írt $unstressend


// word pairs // word pairs




voltam $u // to be, past voltam $u // to be, past
voltál $u voltál $u
volt $u $alt3
volt $unstressend $alt3
voltunk $u voltunk $u
voltatok $u voltatok $u
voltak $u
voltak $unstressend


leszek $u // to be, future leszek $u // to be, future
leszel $u leszel $u
(hu-n) hun (hu-n) hun
(USA-ban) usában (USA-ban) usában
(USA-ba) usába (USA-ba) usába
(pc-n) pécén

+ 22
- 0
dictsource/hu_rules View File

tö) bb (féle b tö) bb (féle b
jo) bbr (a bR2 jo) bbr (a bR2
tö) bbr (e bR2 tö) bbr (e bR2
kise) bb (ség b
tö) bb (száz b
tö) bb (száz b


.group c .group c
c ts c ts
cselé) ds (ég tS: cselé) ds (ég tS:
föl) d (szegély d föl) d (szegély d
stran) d (szezon d stran) d (szezon d
_hol) d (sarló d
mó) d (sor d
csalá) d (segít d



.group dz .group dz
fogó) dz (kod ts fogó) dz (kod ts
se) gg (be g se) gg (be g
pro) g (gyak g pro) g (gyak g
se) ggr (e gR2 se) ggr (e gR2
arcüre) g (gyulladás g


.group gy .group gy
gy J gy J
huszone) gy (edik J: huszone) gy (edik J:
je) gy (ért J je) gy (ért J
harmince) gy (edik J: harmince) gy (edik J:
étvá) gy (javít J


.group h .group h
h h h h
t) í (zes i t) í (zes i
sz) í (vel i: sz) í (vel i:
_t) í (zük i _t) í (zük i
_sz) í (vattak i
_sz) í (vattákk i
_sz) í (vató i


.group j .group j
j j j j
szennye) s (zsá S szennye) s (zsá S
alvá) s (zavar S alvá) s (zavar S
magatartá) s (zavar S magatartá) s (zavar S
erőforrá) s (zabál S
működé) s (zava S


.group ss .group ss
ssz ss2 ssz ss2
hirdeté) ssz (erve Ss hirdeté) ssz (erve Ss
páncélo) ssz Ss páncélo) ssz Ss
hajtá) ssz (erű Ss hajtá) ssz (erű Ss
sorva) ssz (ák s:


.group sz .group sz
sz s sz s
ö) t (jegyű t ö) t (jegyű t
ha) t (jegyű t ha) t (jegyű t
hé) t (jegyű t hé) t (jegyű t
zár) t (sorú t
skó) t (juhász t
szerete) t (szolgálat t
ú) t (jelzés t
vizsgála) t (sor t
dagana) t (sej t
tábláza) t (sor t


.group ts .group ts
ts (_S2 tS //general rule with word end of ts letters ts (_S2 tS //general rule with word end of ts letters

+ 354
- 1
dictsource/nl_list View File

badder $alt badder $alt
bagger $alt bagger $alt
baker $alt baker $alt
baster $alt
beender $alt beender $alt
belemmer $alt belemmer $alt
beter $alt beter $alt
bibber $alt bibber $alt
bitter $alt
bladder $alt bladder $alt
blader $alt blader $alt
blaker $alt blaker $alt
bolder $alt bolder $alt
bolster $alt bolster $alt
boter $alt boter $alt
broeder $alt
buffer $alt buffer $alt
bulder $alt bulder $alt
bulldozer $alt bulldozer $alt
bumper $alt bumper $alt
bunker $alt bunker $alt
charter $alt
cijfer $alt cijfer $alt
cluster $alt
computer kOmpj'ut@r $alt // ?? "$2 $alt" doesn't work
consuminder $alt
counter $alt
cover k8v@r $alt
dabber $alt
daver $alt
deemstar $alt
dender $alt
dobber $alt
dokter $alt
donder $alt donder $alt
donker $alt
dotter $alt
duister $alt
dwater $alt dwater $alt
eergister $alt
eier $alt eier $alt
emmer $alt
ender $alt ender $alt
enter $alt
erger $alt
etter $alt
filter $alt filter $alt
fladder $alt
flakker $alt
flikker $alt
flipper $alt
flodder $alt
flonker $alt
flotter $alt
fluister $alt
foeter $alt
folder $alt
folter $alt
gabber $alt
gader $alt
geester $alt geester $alt
gemoeder $alt gemoeder $alt
gibber $alt
gister $alt
glibber $alt
glimmer $alt
glinster $alt
glitter $alt
glunder $alt
goeder $alt
halter $alt
hamer $alt hamer $alt
hamster $alt
haper $alt
helder $alt
herinner $alt
herover $alt
hinder $alt
hoender $alt hoender $alt
honger $alt
huiver $alt
hunker $alt
ijver $alt
ijzer $alt
imker $alt
inburger $alt
inkader $alt
jakker $alt jakker $alt
jammer $alt jammer $alt
joeker $alt
kader $alt
kaffer $alt
kalefater $alt
kalver $alt kalver $alt
kamfer $alt
kanker $alt kanker $alt
kaper $alt
kaver $alt kaver $alt
keilder $alt
kenter $alt
keper $alt
kerker $alt
ketter $alt
keuter $alt
kicker $alt
kieper $alt
kinder $alt kinder $alt
kladder $alt kladder $alt
klapper $alt
klater $alt
klauter $alt
klaver $alt
kledder $alt
klepper $alt
kletter $alt
kleuter $alt
klieder $alt
klinker $alt
klodder $alt klodder $alt
kluister $alt
knapper $alt
knetter $alt
kneuter $alt
knikker $alt
knipper $alt
knisper $alt
knister $alt
koekeloer $alt koekeloer $alt
koester $alt
koeter $alt
koffer $alt
koker $alt
kolder $alt
kommer $alt kommer $alt
koper $alt
kuier $alt kuier $alt
kwetter $alt
labber $alt
lager $alt
lammer $alt lammer $alt
laser $alt
laster $alt laster $alt
lauwer $alt
lazer $alt lazer $alt
lebber $alt lebber $alt
leder $alt // gelederen leder $alt // gelederen
leger $alt leger $alt
lekker $alt
lemmer $alt
lepper $alt
ler $alt ler $alt
letter $alt letter $alt
leuter $alt
lever $alt lever $alt
lieder $alt lieder $alt
lobber $alt
lodder $alt
lommer $alt
louter $alt
lubber $alt lubber $alt
luier $alt
luimer $alt
luister $alt luister $alt
mager $alt
marmer $alt
meander $alt
meerder $alt
meester $alt
meier $alt
mekker $alt
mieter $alt
mijmer $alt
millimeter $alt
minder $alt
modder $alt modder $alt
moeder $alt moeder $alt
moker $alt
monster $alt monster $alt
mopper $alt
nader $alt nader $alt
neder $alt
nuchter $alt
nummer $alt nummer $alt
ober $alt
offer $alt
onder $alt
orber $alt
ouder $alt ouder $alt
over $alt
palaver $alt
pantser $alt pantser $alt
pauper $alt
peiger $alt peiger $alt
peper $alt
peuter $alt peuter $alt
pieker $alt
pieter $alt
pinkster $alt
pleister $alt pleister $alt
pletter $alt
ploeter $alt
plunder $alt
poeder $alt poeder $alt
poeier $alt poeier $alt
poker $alt
polder $alt polder $alt
puber $alt
pulver $alt
purper $alt
rader $alt rader $alt
raster $alt raster $alt
redder $alt redder $alt
ridder $alt ridder $alt
rooster $alt
rubber $alt
ruiter $alt
runder $alt runder $alt
sakker $alt
schamper $alt
schater $alt
schemer $alt
schetter $alt
schilder $alt schilder $alt
schipper $alt
schitter $alt
schouder $alt
schutter $alt
sidder $alt
sjacher $alt
skeeler $alt
skelter $alt
slechter $alt
slenter $alt slenter $alt
slidder $alt
slinger $alt slinger $alt
slobber $alt
slodder $alt
sloeber $alt
sluier $alt
sluimer $alt
snater $alt
snipper $alt snipper $alt
snotter $alt
snuister $alt
sober $alt
sodemieter $alt sodemieter $alt
somber $alt
spetter $alt
spijker $alt
splinter $alt splinter $alt
sputter $alt sputter $alt
steiger $alt
stekker $alt
stotter $alt
stuiter $alt
stumper $alt
sudder $alt
suiker $alt suiker $alt
supporter $alt
tater $alt
teder $alt
teister $alt
temper $alt
tetter $alt
teuter $alt
timmer $alt timmer $alt
tover $alt tover $alt
treiter $alt
trompetter $alt
tuier $alt
tutter $alt
twitter $alt
uier $alt
vinger $alt vinger $alt
vlieger $alt
vlinder $alt
vlotter $alt
voeder $alt
volker $alt volker $alt
vorder $alt vorder $alt
waaier $alt
wakker $alt wakker $alt
wapper $alt
water $alt water $alt
wedijver $alt
wegwijzer $alt wegwijzer $alt
wester $alt
wijder $alt
wilder $alt
winter $alt
wipper $alt
woeker $alt
wonder $alt wonder $alt
zeker $alt
zever $alt zever $alt
zilver $alt
zinder $alt
zolder $alt
zomer $alt
zonder $alt zonder $alt
zuiver $alt zuiver $alt
zwabber $alt
zwakker $alt
zwanger $alt zwanger $alt



// words where -age is [a:Q@] not French ['a:Z@] // words where -age is [a:Q@] not French ['a:Z@]
drage $alt drage $alt
hedentendage $alt hedentendage $alt
outillage utij'a:Z@ outillage utij'a:Z@
vrijage vre:j'a:Z@ vrijage vre:j'a:Z@


// stress on final -et
facet $2
pincet $2
cachet kAS'E
crochet krOS'E
manchet mAnS'Et
planchet plAnS'Et
pochet pOS'Et
cadet $2
kadet $2
biljet $2
sajet $2
sujet syZ'Et
banket $2
boeket $2
briket $2
etiket $3
klinket klINk'Et
koket $2
kroket $2
loket $2
musket $2
pakket $2
parket $2
piket $2
raket $2
winket $2
amulet $3
ballet $2
cabriolet ka:briol'Et
corselet $3
couplet kupl'Et
doublet dubl'Et
epaulet e:po:l'Et
filet fil'e:
gilet Zil'Et
kotelet $3
omelet $3
palet $2
pamflet $2
pistolet pisto:l'Et
poulet pul'Et
reglet re:Ql'Et
skelet sk@l'Et
tablet $2
toilet tv#Al'Et
violet $3
bajonet $3
cabinet $3
carnet $2
castagnet kAstAn^'Et
kabinet $3
klarinet $3
kornet $2
marionet $4
sonnet $2
spinet $2
vignet vIn^'Et
karpet $2
lampet $2
pipet $2
toupet tup'Et
trompet $2
baret $2
cabaret ka:ba:r'Et
floret $2
lazaret $3
minaret $3
portret $2
sigaret $3
closet klo:z'Et
corset $2
falset $2
kwartet $2
kwintet $2
motet $2
nonet $2
octet $2
septet $2
sextet $2
brevet br@v'Et
corvet $2
servet $2
buffet byf'Et
budget b8dZ'Et
rozet $2
sorbet $2
duet dy'Et
jacquet Zak'Et
menuet me:ny'Et
silhouet silu'Et
tourniquet turnik'Et

amorette $3
amourette a:mu*'Et@
anisette a:niz'Et@
brunette $2
cassette $2
chambrette Sambr'Et@
coquette ko:k'Et@
couchette kuS'Et
courgette kurZ'Et
diskette $2
estafette $3
etiquette e:tik'Et@
kokette $2
maisonnette mEzOn'Et@
majorette $3
maquette ma:k'Et@
modinette $3
musette $2
pirouette pi*uv#'Et@
pochette pOS'Et
operette o:p@r'Et@
raclette $2
roulette rul'Et@
soubrette subr'Et@
suffragette syfra:Z'Et@
ultraviolette 8ltra:vio:l'Et@
vedette v@d'Et@
violette $3
wasserette $3




// pronunciation exceptions // pronunciation exceptions
aangrijpend $2 aangrijpend $2
agenda $2
amnestie $3
bourgondier burx'o:ndi:@r bourgondier burx'o:ndi:@r
circuit sIrku'i circuit sIrku'i
computer $2
chalet Sa:lE
champagne SAmp'An^@
champignon SAmpij'On
chanson SA~s'O~
chapiter $2
charade $2 // ?? what is plural
chassis SAs'i
chat tSEt
check tSEk
chiffon Sif'On
contour ko:nt'ur contour ko:nt'ur
dynastie $3
eucharistie $4
ingewikkeld $3 ingewikkeld $3
ingrijpend $2 ingrijpend $2
ingeval $3 ingeval $3
ongrondwettig $3 ongrondwettig $3
proces $2 proces $2
renaissance rEne:s'A~s@ renaissance rEne:s'A~s@
sacristie $3
tegenaan $3 tegenaan $3
tegenin $3 tegenin $3
tegenover $3 tegenover $3
tegennatuur $4 tegennatuur $4
tegenstrijdig $3 tegenstrijdig $3
tegenwoordig $3 tegenwoordig $3
travestie $3
waarschijnlijk $2 waarschijnlijk $2






// names // names
charlotte $2
Inge IN@ Inge IN@
Ingeborg INe:bOrx Ingeborg INe:bOrx
Ingmar INmAr Ingmar INmAr

+ 79
- 26
dictsource/nl_rules View File

ages (_S1 s ages (_S1 s
age (_$w_alt a:Q@ age (_$w_alt a:Q@
aire (_ 'E:r aire (_ 'E:r
@) ant (_ 'Ant

@) a (de_ 'a:
@) a (ta_ 'a:




.group b .group b
b b // auto-devoice at end-of-word b b // auto-devoice at end-of-word
bb b
b) b
bs (_N ps bs (_N ps


&) baar (_ =ba:r &) baar (_ =ba:r
c k c k
ch x ch x
_) ch S _) ch S
_) ch (arit x
_) ch (ador tS
_) ch (ao x
_) chang (e SA~Z
_) chaperon S,Ap@rO~n
_) charg (@ SArZ
_) ch (ari x
_) ch (arter tS _) ch (arter tS
_) chau (ffe S%o:
_) chau (vin S,o:
_) ch (emi x _) ch (emi x
_) cheque SEk
_) cherry tSEri
_) chi (cane S%i
_) ch (ip tS _) ch (ip tS
_) ch (olest x
_) ch (lo x
_) ch (ole x
_) cho (que SO
_) ch (or x
_) ch (r x _) ch (r x
&) che (_ =S
ck k ck k
cieel S'e:l
ciële S'e:l@
coach ko:tS




.group d .group d
d d // auto-devoice at end-of-word d d // auto-devoice at end-of-word
dd d
d) d
dt t dt t
ds (_N ts ds (_N ts


ee e: ee e:
eeuw eU eeuw eU
eu Y: eu Y:
@) ee (l_ 'e:
@) ee (m_ 'e:

eau o: //words with French origin
@) ee (_ 'e:
@) ee (X_ 'e:
@) ee (r_ 'I: @) ee (r_ 'I:
@) ee (rt_ 'I: @) ee (rt_ 'I:
@) ee (rd_ 'I: @) ee (rd_ 'I:
it) eit (_ 'EIt it) eit (_ 'EIt
&) el (_ @l &) el (_ @l
&) eld (_ @ld &) eld (_ @ld
&) ele (_ @l@
&) ele (_ 'e:l@
&) em (_ @m &) em (_ @m
&) en (_S2q @n
&) en (_S2qd @n
&) ens (_S3q @ns &) ens (_S3q @ns
&) end (_ @nd &) end (_ @nd
&) ende (_ @nd@ &) ende (_ @nd@
@) ent (_ 'Ent
&) er (_ @r &) er (_ @r
&) ere (_ @r@ &) ere (_ @r@
&) er (en_$p_alt @r // where 'eren' is not a verb ending &) er (en_$p_alt @r // where 'eren' is not a verb ending
eren (_ 'I:r@n eren (_ 'I:r@n
&) es (_ @s &) es (_ @s
eau o: //words with French origin
@) etten (_S3 @n
@) eur (_ 'Y:r


_) er (@P2 Er _) er (@P2 Er
@) e (raar_ @ @) e (raar_ @

&) e (nB@ @
&) e (nB@ E2
id) e (nt E id) e (nt E
&) e (rC@ @
&) e (rC@ E2





.group f .group f
f f f f
ff f
f) f




.group g .group g


_) ge (@P2 Q@ _) ge (@P2 Q@
_) gee Qe: _) gee Qe:
gener (aal Q,e:n@r
gelijk Q@lEIk gelijk Q@lEIk
_) geu QY: _) geu QY:
_) ge (ven Qe: _) ge (ven Qe:
C) h (K C) h (K


_) her (@P3 hEr _) her (@P3 hEr
_) her (en hI:r




.group i .group i
m) ie (_ 'i m) ie (_ 'i
p) ie (_ 'i p) ie (_ 'i


ie (f_ 'i
ie (r_ 'i
&) ica (_ =ika:
ie (X 'i
ie (rd_ 'i ie (rd_ 'i
@) ig (_S2d @x @) ig (_S2d @x
@) ige (_ @Q@ @) ige (_ @Q@
_) in (gP2 'In
@) ij (n_ 'EI
_) in (C@P2 'In
// _) in (gP2 'In
io (nage iO io (nage iO
@) isch (_ =is @) isch (_ =is
@) ische (_ =is@ @) ische (_ =is@
@) ist (_ 'Ist




.group j .group j


.group k .group k
k k k k
kk k
k) k


_) koning k'o:nIN // in compounds _) koning k'o:nIN // in compounds
_) koningin ko:nIQ'In _) koningin ko:nIQ'In


.group l .group l
l l l l
ll l
l) l
&) lijk (_S4 l@k &) lijk (_S4 l@k
&) lijke (_S5 l@k@ &) lijke (_S5 l@k@
&) laan (_S4 la:n &) laan (_S4 la:n


.group m .group m
m m m m
mm m
m) m

manage (ment ma:nIdZ
_) mee (@P3 m'e:




.group n .group n
n n n n
nn n
n) n
ng N ng N
nj n^ nj n^


_) na (C@@P2 n'a:



.group o .group o
o o: o o:
ou VU ou VU
ou (rage u ou (rage u


oo (X 'o:
telef) oo (n 'o: telef) oo (n 'o:
_) op (@@P2 'Op
_) open (@P4 'o:p@n
_) over (@P4 'o:v@r




.group on .group on
_) onge (val OnQ@ _) onge (val OnQ@





.group p .group p
p p p p
pp p
p) p
_) ph f _) ph f
ph (K f ph (K f


qu kv qu kv
@) qu (eer k @) qu (eer k
@) qu (eren_ k @) qu (eren_ k
@) que (_ k




.group r .group r


.group s .group s
s s s s
ss s
s) s
sch sx sch sx
sch (_ s sch (_ s
sch (e_ s sch (e_ s


.group t .group t
t t t t
tt t
tie (_ tsi
c) tie (_ si
t) t
tie (_ =tsi
c) tie (_ =si
k) tie (_ =si
p) tie (_ =si
s) tie (_ =ti
cra) tie (_ ts'i
tj t; tj t;
tsj tS tsj tS
_) th t _) th t
t (hav t t (hav t
_) toe (@P3 t'u _) toe (@P3 t'u


_) team t'i:m
team (_ ti:m


.group te .group te
_) tegen (P5 t'e:Q@n _) tegen (P5 t'e:Q@n
uw yU uw yU
uw (_ yU uw (_ yU


_) uit (@P3 'Wyt



.group v .group v
v v v v
_) ver (@P3 v@r _) ver (@P3 v@r
_) ver (sie_ vEr _) ver (sie_ vEr
_) ver (der_ vEr _) ver (der_ vEr
_) voort (@P5 v'O:rt




.group w .group w
w (X w w (X w
w (CK w w (CK w


_) weg (@P3 v#'Ex



.group x .group x
x ks x ks


.group y .group y
y i y i
y (CK I
y (x I




.group z .group z

+ 4
- 3
dictsource/pt_list View File

aquela $u+ aquela $u+
daquele d&k'ely $u+ $nounf daquele d&k'ely $u+ $nounf


?1 que ky $u
?2 que ke $u
que $u // pronunciation is in pt_rules


// possessive adjectives // possessive adjectives
meu $u+ $nounf meu $u+ $nounf
sua $u+ sua $u+
seus $u+ seus $u+
suas $u+ suas $u+
?2 nosso $u+ n'OsU
?2 nosso $u+ // n'OsU
?2 nossa $u+ n'Os& ?2 nossa $u+ n'Os&
?2 nossos $u+ n'OsUs ?2 nossos $u+ n'OsUs
?2 nossas $u+ n'Os&s ?2 nossas $u+ n'Os&s
page p'eIdZ page p'eIdZ
?2 pior pi'Or ?2 pior pi'Or
?2 piores pi'O*is ?2 piores pi'O*is
preço $alt2
python p'aIT&~N python p'aIT&~N
queda $alt
?1 readme r'i:dmi: ?1 readme r'i:dmi:
?1 sapi s,ap'i ?1 sapi s,ap'i
?1 scanner sk'En&r ?1 scanner sk'En&r

+ 4
- 0
dictsource/pt_rules View File

e (co_ E e (co_ E
e (ctA_ E e (ctA_ E
e (ctAm_ E e (ctAm_ E
e (çA_ E
e (çAm_ E


e (de_ E e (de_ E
e (dem_ E e (dem_ E
qü kw qü kw
qu (Y k qu (Y k
qu (K ku qu (K ku
?2 _) que (_K ke
_) que (_ ky
?1 _) qua kwa // quatro, etc. ?1 _) qua kwa // quatro, etc.
?1 _) que ke // quente, etc. ?1 _) que ke // quente, etc.
?1 _) quei (C k'eI // queira, queima, etc ?1 _) quei (C k'eI // queira, queima, etc

+ 63
- 61
dictsource/sv_rules View File

garant g%aR'ant garant g%aR'ant
gata gA:ta gata gA:ta
glöm glWm glöm glWm
guide g'aId
guider g'aIdER
guid (e g'ajd
group _^_EN group _^_EN


.group h .group h


.group o .group o
o u: o u:
o (CC O

//sort
o (C% U o (C% U
o (CC O
pr) o (b %O
o (bb O o (bb O
o (dd O
o (mm O
o (pp O
o (ss O
o (tt O
o (ff O
o (rC u:
o (rr O
o (ll O
o (m_ O
d) o (k O
o (rk O
o (rg O
o (ck O
f) o (n 'o:
pr) o (c %U pr) o (c %U
pr) o (cent %O
och 'Ok
s) o (ci %U s) o (ci %U
o (ck O
g) o (d u:
k) o (d o:
bl) o (d 'u:
pr) o (d %O
o (dd O
o (ff O
l) o (g 'o: l) o (g 'o:
l) o (v 'o:
kr) o (g u:
l) o (gg 'O l) o (gg 'O
b) o (x 'O
s) o (r 'O
k) o (pi 'O
f) o (rm 'O
_) o (j O
pr) oj Osx' pr) oj Osx'
o (ns U
b) o (k u:
d) o (k O
k) o (k 'u:
l) o (k %U l) o (k %U
g) o (r U
nn) o (ns O
kr) o (k u:
p) o (lis %O
o (ll O
k) o (lu %O
o (m_ O
o (mm O
d) o (n O
f) o (n 'o:
g) o (n O
l) o (n O
kr) o (n u:
ss) o (n O ss) o (n O
C) o (rs O
k) o (rt O
b) o (rt O
o (ni 'o:
o (ns U
k) o (ns O
nn) o (ns O
operat OpERat
k) o (pi 'O
o (pp O
p) o (pu O
g) o (r U
s) o (r 'O
lk) o (r o:
o (rC u:
n) o (r_ O n) o (r_ O
t) o (r_ O
s) o (r_ O s) o (r_ O
t) o (r_ O
rs) o (rd u: rs) o (rd u:
o (rde o: o (rde o:
b) o (st u:
b) o (k u:
kr) o (k u:
kr) o (g u:
kr) o (n u:
f) o (tb u:
pr) o (v u:
osparat u:spA:Rat
och 'Ok
k) o (ns O
pr) o (cent %O
p) o (lis %O
p) o (pu O
g) o (n O
sp) o (rt O
o (rg O
o (rk O
f) o (rm 'O
st) o (rm O
inf) o (rmati %O
o (rr O
C) o (rs O
b) o (rt O
k) o (rt O
pp) o (rt O pp) o (rt O
sp) o (rt O
upp) o (rt o: upp) o (rt o:
l) o (n O
d) o (n O
pr) o (b %O
pr) o (d %O
k) o (lu %O
inf) o (rmati %O
k) o (d o:
lk) o (r o:
g) o (d u:
_) o (j O
o (ni 'o:
m) o (t 'u:
k) o (k 'u:
bl) o (d 'u:
k) o (rv O k) o (rv O
osparat u:spA:Rat
o (ss O
b) o (st u:
m) o (t 'u:
f) o (tb u:
o (tt O
l) o (v 'o:
pr) o (v u:
n) o (vell %O n) o (vell %O
st) o (rm O
operat OpERat
b) o (x 'O
//endsort


.group p .group p
p p p p

+ 18
- 5
dictsource/ta_list View File



// exceptions // exceptions
பாபு $alt // initial ப as [b] பாபு $alt // initial ப as [b]
பகவதி $alt
பானம் $alt பானம் $alt
பாணம் $alt பாணம் $alt
பாறம் $alt பாறம் $alt
பலத்தின் $alt பலத்தின் $alt
பைக்ல $alt பைக்ல $alt
பாவ்லா $alt பாவ்லா $alt
பீச்சில் $alt
பீல் fi:l
பலத்தால் $alt
புக் $alt
பீர் $alt
போயிங் $alt
பலத்தாலான $alt
பெஞ்ச் $alt
பெஞ்சு $alt
(பி . ஏ) bije: (பி . ஏ) bije:




தீரமுள்ள $alt தீரமுள்ள $alt
தீரமற்ற $alt தீரமற்ற $alt
தலாய் $alt தலாய் $alt
தேசிங்கு $alt
தேச $alt
தேசப் $alt
தானம் $alt தானம் $alt
தீரமும் $alt தீரமும் $alt
தீரத்தோடு $alt தீரத்தோடு $alt
தவத்தில் $alt தவத்தில் $alt
தவத்தின் $alt தவத்தின் $alt
தவத்தினால் $alt தவத்தினால் $alt
திம் $alt
தேவதா $alt
தெனம் $alt




// initial ட // initial ட
கில்லி $alt கில்லி $alt
காந்தி $alt காந்தி $alt
கிரி $alt கிரி $alt
கோமதி $alt
கயா $alt கயா $alt
காயத்ரி $alt காயத்ரி $alt
கட $alt கட $alt
காந்தம் $alt காந்தம் $alt
கான $alt கான $alt
கோத்திர $alt கோத்திர $alt
கும்முன்னு $alt
கூகுல் $alt
கேட் $alt
கேட்டில் $alt
கின் $alt





// p as [f] // p as [f]

+ 201
- 33
dictsource/ta_rules View File

.L01 ஷ் ஸ் ட் .L01 ஷ் ஸ் ட்


// ப is p when preceded by these // ப is p when preceded by these
.L02 ட் ற் ல் ஷ் ஸ்
.L02 ட் ற் ஷ் ஸ்




// consonants // consonants


//sort //sort
_) க (ங்கா gV _) க (ங்கா gV
_) க (ங்காரு kV
_) க (ங்கை gV _) க (ங்கை gV
_) க (டகட gV _) க (டகட gV
_) க (டப்பாரை gV _) க (டப்பாரை gV
_) க (ந்தர்வ gV _) க (ந்தர்வ gV
_) க (னத் gV _) க (னத் gV
_) க (னம gV _) க (னம gV
_) க (ப்பெ gV
_) க (ப்பென்ர gV _) க (ப்பென்ர gV
_) க (மகம gV _) க (மகம gV
_) க (ம்பீர gV _) க (ம்பீர gV
க (ாரன k க (ாரன k
க (ாரர k க (ாரர k
_) க (ிடுகிடு g _) க (ிடுகிடு g
_) க (ின்னென்ற g
_) க (ிரிஜா g _) க (ிரிஜா g
_) க (ிரிதர g _) க (ிரிதர g
_) க (ிருகஸ்தர g
_) க (ிருஹஸ்தர g
_) கி (ரேக்க g
_) க (ீதல k _) க (ீதல k
_) க (ீத்த k _) க (ீத்த k
_) க (ுகன g _) க (ுகன g
_) க (ுடியாத்த g _) க (ுடியாத்த g
_) க (ுணங் g _) க (ுணங் g
_) க (ுணத் g _) க (ுணத் g
_) க (ுணநல g
_) க (ுணப்பட g _) க (ுணப்பட g
_) க (ுணம g _) க (ுணம g
_) க (ுணவான g
_) க (ுணாதிசய g _) க (ுணாதிசய g
_) க (ுண்டடி g _) க (ுண்டடி g
_) க (ுண்டன g _) க (ுண்டன g
_) குண்டாந்த (டி gun.d.a:ntV _) குண்டாந்த (டி gun.d.a:ntV
_) க (ுண்டாய g _) க (ுண்டாய g
_) க (ுண்டு g _) க (ுண்டு g
_) க (ுண்டை g
_) க (ுதிக் g _) க (ுதிக் g
_) க (ுதிச் g _) க (ுதிச் g
_) க (ுதித் g _) க (ுதித் g
_) க (ும்பல g _) க (ும்பல g
_) க (ும்மிடிப்பூண் g _) க (ும்மிடிப்பூண் g
_) க (ும்மிருட்ட g _) க (ும்மிருட்ட g
_) க (ும்மெ g
_) க (ுருக்கள g _) க (ுருக்கள g
_) க (ுருதேவ g _) க (ுருதேவ g
_) க (ுருநா g _) க (ுருநா g
_) க (ுருபூஜை g
_) க (ுருமார g _) க (ுருமார g
_) க (ுருரா g _) க (ுருரா g
_) க (ுருவா g _) க (ுருவா g
_) க (ூர்க்கா g _) க (ூர்க்கா g
_) க (ெட்டி g _) க (ெட்டி g
_) க (ெட்டிரு k _) க (ெட்டிரு k
_) கெள gaU
_) கெள (ம்ப kel.V
_) க (ேட்டிலிருந்த g
_) க (ேட்டுக்கு g
_) க (ேலி g _) க (ேலி g
_) கோக (ிலா go:k
_) க (ோகுல g _) க (ோகுல g
_) க (ோதாவரி g _) க (ோதாவரி g
_) க (ோதுமை g _) க (ோதுமை g
_) க (ோபிநா g _) க (ோபிநா g
_) க (ோபிய g _) க (ோபிய g
_) க (ோபுர g _) க (ோபுர g
_) க (ோமதி g
_) க (ோர_ g _) க (ோர_ g
_) க (ோர_மாட்ட k _) க (ோர_மாட்ட k
_) க (ோர_முடிய k _) க (ோர_முடிய k
_) க (ௌ g _) க (ௌ g
_) கௌட (ில்ய kaUt. _) கௌட (ில்ய kaUt.
_) க (ௌட்டில்ய k _) க (ௌட்டில்ய k
_) க் (ரூப g
//endsort //endsort


//sort //sort
அலை) க (டல kV அலை) க (டல kV
சமையல்) க (ட் kV சமையல்) க (ட் kV
_கால) க (ட்ட kV
_கல்) க (ண்ட kV _கல்) க (ண்ட kV
_நற்) க (தி gV _நற்) க (தி gV
வீண்) க (தை kV வீண்) க (தை kV
_கல்) க (த்தா kV _கல்) க (த்தா kV
கொல்) க (த்தா kV கொல்) க (த்தா kV
மோ) க (ன HV மோ) க (ன HV
_வீண்) க (னவ kV
_வெல்) க (ம kV
தின) க (ர kV தின) க (ர kV
மது) க (ர kV மது) க (ர kV
திவா) க (ர kV திவா) க (ர kV
வீண்) க (ஷ்ட kV வீண்) க (ஷ்ட kV
ம) க (ா H ம) க (ா H
_தாலு) க (ா k _தாலு) க (ா k
_நேர்) க (ாணல k
_வலை) க (ாப் k
தொல்) க (ாப்பி k தொல்) க (ாப்பி k
மூல) க (ாரண k மூல) க (ாரண k
_சம) க (ால k
அந்திம) க (ால k அந்திம) க (ால k
கோயில்) க (ாளை k கோயில்) க (ாளை k
_கல்) க (ி k _கல்) க (ி k
வால்மீ) க (ி k
_ம) க (ிந்த H _ம) க (ிந்த H
மோ) க (ினி H மோ) க (ினி H
_ம) க (ிமை H _ம) க (ிமை H
_) கி (ராதக k _) கி (ராதக k
_) கி (ராம g _) கி (ராம g
_) கி (ரீட k _) கி (ரீட k
_) கி (ரீன்லாந்த g
ங்) க (ிரு g ங்) க (ிரு g
கிரு (ஷ் kri கிரு (ஷ் kri
_) கி (ரைண்டர g _) கி (ரைண்டர g
_) கி (ரௌண்ட g
இங்) கி (லீஷ் g
கி (லேச k கி (லேச k
_) கி (ளாஸ g _) கி (ளாஸ g
_வட) க (ிழ k _வட) க (ிழ k
க (ுல k க (ுல k
_அங்) க (ுல g _அங்) க (ுல g
_) குல்க (ந்த gulkV _) குல்க (ந்த gulkV
_ஓ) க (ே k
நீல) க (ேசி k நீல) க (ேசி k
புலி) க (ேசி k புலி) க (ேசி k
குண்டல) க (ேசி k குண்டல) க (ேசி k
க (ொண்ட k க (ொண்ட k
க (ொள் k க (ொள் k
வீண்) க (ோப k வீண்) க (ோப k
_ஷா) க் (_ k
துர்) க்க ggV# துர்) க்க ggV#
மார்) க்க ggV# மார்) க்க ggV#
மூர்) க்க ggV# மூர்) க்க ggV#
வைரா) க்க (ிய gg வைரா) க்க (ிய gg
_வி) க்க (ிரக gg _வி) க்க (ிரக gg
கு) க்கி (ராம gg கு) க்கி (ராம gg
அணு) க்க (ுண்ட gg
ஜன) க்க (ும்பல gg ஜன) க்க (ும்பல gg
_எல) க்டிரானிக் (ஸ kt.ira:nik
அ) க (்டோபர k அ) க (்டோபர k
வி) க்ட (ோரியா kt. // victoria வி) க்ட (ோரியா kt. // victoria
_எலெ) க்ட்ரிக (ல kt.rikV
வி) க (்ரம k வி) க (்ரம k
ஆ) க (்ரோஷ k ஆ) க (்ரோஷ k
_கால) க (ட்ட kV
_வலை) க (ாப் k
கோபா) க்க (ினி gg
//endsort //endsort




//sort //sort
_) ச (க்கரவர்த்தி tSV _) ச (க்கரவர்த்தி tSV
சங்க (ர s.VNkV சங்க (ர s.VNkV
_) ச (ட்னி tSV
ச (ண்பக s.V ச (ண்பக s.V
ச (ண்மு s.V ச (ண்மு s.V
_) ச (துர் tSV _) ச (துர் tSV
_) ச (த்ரு tSV
ச (ந்திர tSV ச (ந்திர tSV
_) ச (ப்பாத்தி tSV _) ச (ப்பாத்தி tSV
_) சரசு (வதி sVrVs
அருணா) ச (ல tSV
ச (ாந்தி s. ச (ாந்தி s.
_தே) ச (ாந்திர s _தே) ச (ாந்திர s
_) ச (ான்ஸ tS _) ச (ான்ஸ tS
_) ச (ாமுண்ட tS _) ச (ாமுண்ட tS
_) ச (ாய்ஸ tS
சமா) ச (ார tS சமா) ச (ார tS
_) ச (ார்ஜை tS
_) ச (ார்ஜ்_ tS
_) ச (ாளுக்கிய tS
_) சிக (ாகோ tSik
_) ச (ிட்டாக tS _) ச (ிட்டாக tS
_) ச (ிட்டாட்ட tS _) ச (ிட்டாட்ட tS
_) ச (ிட்டி tS _) ச (ிட்டி tS
_) ச (ிதம்பர tS _) ச (ிதம்பர tS
_) ச (ித்தப்ப tS _) ச (ித்தப்ப tS
_) ச (ித்தப்பிரமை s _) ச (ித்தப்பிரமை s
_) ச (ித்திர tS
வி) ச (ித்திர tS வி) ச (ித்திர tS
_) ச (ித்திரவதை tS
_) ச (ித்ரவதை tS
_) ச (ித்ரா tS _) ச (ித்ரா tS
சு) சித (்ரா tSit சு) சித (்ரா tSit
_) சி (நே s _) சி (நே s
_) ச (ின் tS _) ச (ின் tS
சி (ரம s சி (ரம s
_) சிரு (ஷ்டி sri _) சிரு (ஷ்டி sri
_) ச (ீன tS
_) ச (ீன_ tS
_) ச (ீனத்து tS
_) ச (ீனப் tS
_) ச (ீனா tS
_) ச (ீனாவ tS
_) ச (ீனிவா s _) ச (ீனிவா s
சீ (னிவாச sri: சீ (னிவாச sri:
_) ச (ீன்_ s
_ஈ) சு s _ஈ) சு s
_) ச (ுடிதார tS
_) சு (லோக s
கே) சு (வ s கே) சு (வ s
மே) சு (வ s மே) சு (வ s
வி) சு (வ s வி) சு (வ s
_சனீ) சு (வர s _சனீ) சு (வர s
இராவணே) சு (வர s இராவணே) சு (வர s
ராவணே) சு (வர s ராவணே) சு (வர s
_) சுவர்க்க svVrggV#
_) சு (வாச s _) சு (வாச s
சு (வாதீன s சு (வாதீன s
சு (வாமி s சு (வாமி s
_) ச (ெட்டியார tS _) ச (ெட்டியார tS
ச (ெண்பக s. ச (ெண்பக s.
_) ச (ென்னை tS _) ச (ென்னை tS
_) ச (ெல்லக்குட்டி tS
_) ச (ெல்லத்துக்கு tS
_) ச (ெல்லத்தை tS
_) ச (ெல்லம tS _) ச (ெல்லம tS
_) ச (ெஸ் tS _) ச (ெஸ் tS
_) ச (ேரி tS _) ச (ேரி tS
_) ச (ைனாவ tS
_) ச (ௌதரி tS
//endsort //endsort




ட்ட (B t.t. ட்ட (B t.t.
ஷ்) ட t.V ஷ்) ட t.V
ஷ்) ட (B t. ஷ்) ட (B t.
_) டாக்ட (ர d.a:kt.V
_) ட (ோக்கியோ t.
//sort
ிங்) ட (ன் t.V // -ington ிங்) ட (ன் t.V // -ington
_) ட (ாக்க t. // talkies
_) டிராக்ட (ர t.ira:gt.V
_) ட (ைம்_ t.
டெலிப (ோன t.elif
_) ட (ம்ப்ளர t.V _) ட (ம்ப்ளர t.V
_) ட (யரில t.V
_) ட (யர் t.V
_) ட (வர t.V
_) ட (வல t.V
_) ட (வுன t.V
_) ட (ாக்க t. // talkies
_) டாக்ட (ர d.a:kt.V
_) டாக (்ஸி t.a:k
_) ட (ிஃபன t.
_) ட (ிக்க t. _) ட (ிக்க t.
_) டி (யூசன t.
_) டி (யூஷன t.
_) டிராக்ட (ர t.ira:gt.V
_) ட (ிராம t. _) ட (ிராம t.
_) ட (வுன t.V
_) டென்டுல்க (ர t.ent.UlkV
_) டி (ராவல t.
_) டி (ராவெல t.
_) டிரேயின (ை t.re:jn _) டிரேயின (ை t.re:jn
_) ட (ியூஷன t.
_) ட (ிவிய t. _) ட (ிவிய t.
_) ட (வல t.V
_) ட (வர t.V
_) டென்டுல்க (ர t.ent.UlkV
_) டெம்ப (ர t.empV
டெலிப (ோன t.elif
_) ட (ெலிவிஷன t.
_) ட (ேப t. _) ட (ேப t.
_) டாக (்ஸி t.a:k
_) ட (ேஸ்ட t.
_) ட (ைம்_ t.
_) ட (ோக்கியோ t.
_ல) ட்ட d.d.V# _ல) ட்ட d.d.V#
_) ட (யர் t.V
_) ட (யரில t.V
_) ட் (ராவல t.
_) ட் (ராவெல t.
_பெ) ட் (ரோ t.
_ஹி) ட் (லர t.
//endsort




.group ண .group ண
_) த (க்க்ஷிண dV _) த (க்க்ஷிண dV
_) த (க்ஷிணா dV _) த (க்ஷிணா dV
_) த (சகண்ட dV _) த (சகண்ட dV
_) த (சரத dV
_) த (சரதர dV _) த (சரதர dV
_) த (சரா dV _) த (சரா dV
_) த (சை dV _) த (சை dV
_) த (டிJ_மாட dV _) த (டிJ_மாட dV
_) த (டிக்க dV _) த (டிக்க dV
_) த (டித்த dV _) த (டித்த dV
_) த (டிமாட dV
_) த (டியன dV _) த (டியன dV
_) த (டியர dV _) த (டியர dV
_) த (ட்சன dV _) த (ட்சன dV
_) த (ண்டிப்ப dV _) த (ண்டிப்ப dV
_) த (ண்டிப்பா dV _) த (ண்டிப்பா dV
_) த (ண்டியுங்கள dV _) த (ண்டியுங்கள dV
_) த (ண்டோரா dV
_) தத்த (ியா dVdd
_) த (னகோடி dV _) த (னகோடி dV
_) த (னசேகரன dV _) த (னசேகரன dV
_) த (னன்ஜெயன dV _) த (னன்ஜெயன dV
_) த (னுஷ dV _) த (னுஷ dV
_) த (ன்மந்திரி dV _) த (ன்மந்திரி dV
_) த (ன்ராஜ dV _) த (ன்ராஜ dV
_) தபதப dVbVdVbV#
_) த (மயந்தி dV _) த (மயந்தி dV
_) த (ம்பதி dV _) த (ம்பதி dV
_) த (ம்பிடி dV _) த (ம்பிடி dV
_) த (ருமி dV _) த (ருமி dV
_) த (ர்க dV _) த (ர்க dV
_) த (ர்பார dV _) த (ர்பார dV
_) த (ர்பூச dV
_) த (ர்பை dV _) த (ர்பை dV
_) த (ர்ம dV _) த (ர்ம dV
_) த (லித் dV _) த (லித் dV
_) த (ானத் d _) த (ானத் d
_) த (ானிய d _) த (ானிய d
_) த (ானுவ d _) த (ானுவ d
_) த (ாமோதர d
_) த (ாம்_தூம d _) த (ாம்_தூம d
_) த (ாயாதி d _) த (ாயாதி d
_) த (ாரணி d _) த (ாரணி d
_) த (ாவணி d _) த (ாவணி d
_) த (ாவா d _) த (ாவா d
_) த (ிகில d _) த (ிகில d
_) த (ிகுதிகு d
_) த (ிக்கில d _) த (ிக்கில d
_) த (ிக்கு d _) த (ிக்கு d
_) த (ிக்கு_முக்க t _) த (ிக்கு_முக்க t
_) திக்பி (ரமை digb _) திக்பி (ரமை digb
_) த (ிக்விஜய d _) த (ிக்விஜய d
_) த (ிசை d _) த (ிசை d
_) திடசங்கல்ப did.VsVNgVlpV#
_) த (ிடப d _) த (ிடப d
_) த (ிடம d _) த (ிடம d
_) த (ிடீ d _) த (ிடீ d
_) த (ினம d _) த (ினம d
_) த (ினுச d _) த (ினுச d
_) த (ினேஷ d _) த (ினேஷ d
_) த (ிம்ம d
_) தி (யான dj _) தி (யான dj
_) த (ிரவ d _) த (ிரவ d
_) த (ிரவிய d _) த (ிரவிய d
_) தி (ராவிட d _) தி (ராவிட d
_) த (ிரௌபதி d _) த (ிரௌபதி d
_) த (ில்லி d _) த (ில்லி d
_) த (ில்லு_ d
_) த (ில்லு_முல்லு t
_) த (ிவச d _) த (ிவச d
_) த (ிவாகர d _) த (ிவாகர d
_) த (ிவான d _) த (ிவான d
_) த (ிவ்ய d _) த (ிவ்ய d
_) த (ீட்சித d
_) த (ீட்சை d _) த (ீட்சை d
_) த (ீப d _) த (ீப d
_) த (ீப்ப t _) த (ீப்ப t
_) த (ுச்சாதனன d _) த (ுச்சாதனன d
_) த (ுட்ட d _) த (ுட்ட d
_) த (ுபாய d _) த (ுபாய d
_) த (ுரதிருஷ்ட d
_) த (ுரதிர்ஷ்ட d _) த (ுரதிர்ஷ்ட d
_) த (ுராசை d _) த (ுராசை d
_) த (ுரியோதனன d _) த (ுரியோதனன d
_) த (ுரியோதனா d
_) த (ுருவங் d _) த (ுருவங் d
_) த (ுருவத் d _) த (ுருவத் d
_) த (ுரை d _) த (ுரை d
_) த (ுரோண d _) த (ுரோண d
_) த (ுர் d _) த (ுர் d
_) து (வந்த_ d _) து (வந்த_ d
_) து (வார d
_) துவாப (ர dva:pV
_) துவ (ார dv
_) த (ுஷ் d _) த (ுஷ் d
_) த (ூசி d _) த (ூசி d
_) த (ூப d _) த (ூப d
_) த (ூம d _) த (ூம d
_) த (ூர d _) த (ூர d
_) த (ூரிகை t
_) த (ூர்_ t
_) த (ூர்ந் t
_) த (ூர்வ t
_) த (ூஷணை d _) த (ூஷணை d
_) த (ூஷித்த d _) த (ூஷித்த d
_) த (ெய்வ d _) த (ெய்வ d
_) த (ேக d _) த (ேக d
_) த (ேக்க t _) த (ேக்க t
_) த (ேசத்தார d
_) த (ேசத்தில d
_) த (ேசாந்திர d
_) த (ேச d
_) த (ேவகான d _) த (ேவகான d
_) த (ேவகி d _) த (ேவகி d
_) த (ேவக் d
_) த (ேவதை d _) த (ேவதை d
_) த (ேவன d _) த (ேவன d
_) த (ேவராட்டி d _) த (ேவராட்டி d
_) த (ேவேந் d _) த (ேவேந் d
_) த (ைரிய d _) த (ைரிய d
_) த (ொனி d _) த (ொனி d
_) த (ொபதொப d
_) த (ொபுக் d _) த (ொபுக் d
_) த (ொம் d _) த (ொம் d
_) த (ோசை d _) த (ோசை d
_கீழ்) த (ட்ட tV _கீழ்) த (ட்ட tV
_மேல்) த (ட்ட tV _மேல்) த (ட்ட tV
முட்டாள்) த (ன tV முட்டாள்) த (ன tV
_கௌ) த (மி tV
_கீ) த (ா t _கீ) த (ா t
_சீ) த (ா t _சீ) த (ா t
_ல) த (ா t _ல) த (ா t
_வினி) த (ா t _வினி) த (ா t
_புஷ்பல) த (ா t _புஷ்பல) த (ா t
பிரேமல) த (ா t பிரேமல) த (ா t
_மும்) த (ாஜ t
_சும) த (ி t _சும) த (ி t
_சாந்) த (ி t _சாந்) த (ி t
_சுகந்) த (ி t _சுகந்) த (ி t
யு) த்த ddV# யு) த்த ddV#
பு) த்த (ன ddV பு) த்த (ன ddV
பு) த்த (ர ddV பு) த்த (ர ddV
_விரு) த்தாச (ல dda:tSV
அ) த்த (ாசி dd
பு) த்த (ி dd பு) த்த (ி dd
அயோ) த்த (ி dd அயோ) த்த (ி dd
சில) த்த (ினங் dd சில) த்த (ினங் dd
உ) த்த (ியோக dd உ) த்த (ியோக dd
பு) த்த (ிர tt பு) த்த (ிர tt
சமு) த்த (ிர dd சமு) த்த (ிர dd
_உப) த்த (ிர dd
_சுப) த்த (ிர dd
_ரு) த்த (ிர dd _ரு) த்த (ிர dd
_ரௌ) த்த (ிர dd _ரௌ) த்த (ிர dd
_தேச) த்து (ரோகி td
_வி) த்து (வான d
_முக) த்து (வார dd _முக) த்து (வார dd
அ) த்த (ெய்வ dd அ) த்த (ெய்வ dd
குல) த்த (ெய்வ dd குல) த்த (ெய்வ dd
ச) த (்ரு t ச) த (்ரு t
த) த (்ரூப t த) த (்ரூப t
பா) த (்ரூம t பா) த (்ரூம t
_கௌ) த (மி tV
//endsort //endsort




ப் (ப p ப் (ப p
ப்) ப pV ப்) ப pV
ப்) ப (B p ப்) ப (B p
L02) ப pV
L02) ப (B p
L02) ப pV#
குஷ்) ப (ு b குஷ்) ப (ு b


ம) ப pV ம) ப pV


//sort //sort


_) ப (கவதி bV
_) ப (கவன bV
_) ப (கவான bV _) ப (கவான bV
_) ப (காசுர bV _) ப (காசுர bV
_) ப (கிரங்க bV _) ப (கிரங்க bV
_) ப (கிஷ்க bV _) ப (கிஷ்க bV
_) ப (கீர bV _) ப (கீர bV
_) ப (க்கெட் bV _) ப (க்கெட் bV
_) ப (க்கென்ற bV
_) பக் (த bVk _) பக் (த bVk
_) ப (ங்கம bV _) ப (ங்கம bV
_) ப (ங்களா bV _) ப (ங்களா bV
_) ப (ங்கார bV _) ப (ங்கார bV
_) ப (சவகல்யாண bV
_) ப (ஜ bV _) ப (ஜ bV
_) ப (ட்சண bV _) ப (ட்சண bV
_) ப (ட்சிக்க bV _) ப (ட்சிக்க bV
_) ப (ட்சிப்ப bV _) ப (ட்சிப்ப bV
_) ப (ட்ஜெட் bV
_) ப (ட்டன bV _) ப (ட்டன bV
_) ப (ட்டன_ pV _) ப (ட்டன_ pV
_) ப (தில bV _) ப (தில bV
_) பத்த (ிரகாளி bVdd _) பத்த (ிரகாளி bVdd
_) ப (த்திரப் bV
_) ப (த்திரமா bV _) ப (த்திரமா bV
_) ப (ந்தங்கள bV _) ப (ந்தங்கள bV
_) ப (ந்தத் bV _) ப (ந்தத் bV
_) ப (ந்தப் bV
_) ப (ந்தம bV _) ப (ந்தம bV
_) ப (ந்துக்கள bV _) ப (ந்துக்கள bV
_) பந்த (ுலு bVnt
_) ப (ந்துவ bV _) ப (ந்துவ bV
_) ப (ந்தோபஸ்த bV _) ப (ந்தோபஸ்த bV
_) ப (னியன bV _) ப (னியன bV
_) ப (லிபீட bV _) ப (லிபீட bV
_) ப (லிய bV _) ப (லிய bV
_) ப (லூன bV _) ப (லூன bV
_) பல்ட (ி bVlt.
_) ப (வாணி bV _) ப (வாணி bV
_) ப (வானி bV _) ப (வானி bV
_) பவுண்ட (ன faUn.t.V _) பவுண்ட (ன faUn.t.V
_) ப (ாகத b _) ப (ாகத b
_) ப (ாகம b _) ப (ாகம b
_) ப (ாக்கிய b _) ப (ாக்கிய b
_) பாக்த (ாத ba:gd
_) ப (ாங்க் b _) ப (ாங்க் b
_) ப (ாசு b _) ப (ாசு b
_) ப (ாசுர p _) ப (ாசுர p
_) ப (ாரம b _) ப (ாரம b
_) ப (ாரம்பரிய p _) ப (ாரம்பரிய p
_) ப (ார்கவி b _) ப (ார்கவி b
_) ப (ார்மசி f
_) ப (ார்மஸி f
_) ப (ார்ம f
_) ப (ாலக b _) ப (ாலக b
_) ப (ாலக்காட p _) ப (ாலக்காட p
_) ப (ாலச b _) ப (ாலச b
_) ப (ாவனை b _) ப (ாவனை b
_) ப (ாவிக்கிற b _) ப (ாவிக்கிற b
_) ப (ாவித்த b _) ப (ாவித்த b
_) ப (ாவிப்பத b
_) ப (ாவிப்பதா b _) ப (ாவிப்பதா b
_) ப (ாவிப்பதி b _) ப (ாவிப்பதி b
_) ப (ாவிப்பது b _) ப (ாவிப்பது b
_) ப (ிக்கு b _) ப (ிக்கு b
_) ப (ிக்ஷு b _) ப (ிக்ஷு b
_) ப (ிக்ஷூ b _) ப (ிக்ஷூ b
_) ப (ிசினஸ b
_) ப (ின்லாந்த f
_) ப (ிம்ப b _) ப (ிம்ப b
_) ப (ிரகதீ b _) ப (ிரகதீ b
_) ப (ிரகஸ்பதி b _) ப (ிரகஸ்பதி b
_) ப (ிரம்ம b _) ப (ிரம்ம b
_) ப (ிரம்மை b _) ப (ிரம்மை b
_) பி (ரான்ஸ f
_) ப (ிரித்தானி b _) ப (ிரித்தானி b
_) ப (ிரியாணி b _) ப (ிரியாணி b
_) ப (ில்டிங் b _) ப (ில்டிங் b
_) ப (ிஸினஸ b _) ப (ிஸினஸ b
_) ப (ிஸ்கோத் b _) ப (ிஸ்கோத் b
_) ப (ீகார b
_) ப (ீச்சு b
_) ப (ீஜிங b _) ப (ீஜிங b
_) ப (ீடி b _) ப (ீடி b
_) ப (ீடிகை p _) ப (ீடிகை p
_) ப (ீம b _) ப (ீம b
_) ப (ீரங்கி b _) ப (ீரங்கி b
_) ப (ீராமணர b _) ப (ீராமணர b
_) ப (ீஹார b
_) ப (ுக்கென்ற b
_) ப (ுக்தி b _) ப (ுக்தி b
_) ப (ுக்ல b
_) ப (ுஜ b _) ப (ுஜ b
_) ப (ுட்டி b _) ப (ுட்டி b
_) ப (ுதன b _) ப (ுதன b
_) ப (ூதகணங்க b _) ப (ூதகணங்க b
_) ப (ூதங் b _) ப (ூதங் b
_) ப (ூதத் b _) ப (ூதத் b
_) ப (ூதபாண்டிய b
_) ப (ூதம b _) ப (ூதம b
_) ப (ூதவுடம்ப b
_) ப (ூதாகார b _) ப (ூதாகார b
_) ப (ூதேவி b _) ப (ூதேவி b
_) பூப (தி bu:pV
_) ப (ூபாள b _) ப (ூபாள b
_) ப (ூமாதேவி b _) ப (ூமாதேவி b
_) ப (ூமி b _) ப (ூமி b
_) ப (ூலோக b _) ப (ூலோக b
_) ப (ெங்களூர b _) ப (ெங்களூர b
_) ப (ெஞ்சா b
_) ப (ெஞ்சி b
_) ப (ெட்ரூம b _) ப (ெட்ரூம b
_) ப (ெர்னார்ட b
_) ப (ெர்முடா b
_) ப (ெர்லிங b _) ப (ெர்லிங b
_) ப (ெல் b _) ப (ெல் b
_) ப (ெஸ்ட் b _) ப (ெஸ்ட் b
_) ப (ோபால b _) ப (ோபால b
_) ப (ௌதிக b _) ப (ௌதிக b
_) ப (ௌத்த b _) ப (ௌத்த b
_) ப் (ராவ b
//endsort //endsort


//sort //sort
இயல்) ப (+ bV#
சங்கல்) ப pV#
_விகல்) ப pV#
அநுதா) ப (+ bV#
பரிதா) ப (+ bV# பரிதா) ப (+ bV#
அனுதா) ப (+ bV# அனுதா) ப (+ bV#
நன்) ப (கல pV நன்) ப (கல pV
வட) ப (குதி pV வட) ப (குதி pV
தென்) ப (குதி pV தென்) ப (குதி pV
ப (க்கK pV ப (க்கK pV
பரம) ப (க்த bV
க) ப (ட bV க) ப (ட bV
கரம்) ப (ட pV கரம்) ப (ட pV
ப (டி pV ப (டி pV
@) ப (ட்ச+ pV @) ப (ட்ச+ pV
ப (ண pV ப (ண pV
_சிவ) ப (த pV _சிவ) ப (த pV
_கல்) ப (தரு pV
கஜ) பதி pVti கஜ) பதி pVti
கண) பதி pVti கண) பதி pVti
பசு) பத (ி pVt பசு) பத (ி pVt
அம்பிகா) பதி pVti அம்பிகா) பதி pVti
வளையா) பதி pVti வளையா) பதி pVti
வேங்கட) பதி pVti வேங்கட) பதி pVti
_புகு) ப (திகை pV
மின்) ப (திப்ப+ pV மின்) ப (திப்ப+ pV
காண்) பத (ில bVd காண்) பத (ில bVd
_முன்) ப (திவ pV
பதை) ப (தை pV பதை) ப (தை pV
_க) ப (த் bV _க) ப (த் bV
வீர) ப (த்தினி pV வீர) ப (த்தினி pV
கல்) ப (னா pV கல்) ப (னா pV
_கம்) ப (னி pV
நிரு) ப (மா pV நிரு) ப (மா pV
அனு) ப (மா pV அனு) ப (மா pV
_க) ப (ம்_ bV _க) ப (ம்_ bV
வட) ப (ழ pV வட) ப (ழ pV
வீண்) ப (ழி pV வீண்) ப (ழி pV
_தீ) ப (ா p _தீ) ப (ா p
முதற்) ப (ாக b
உ) ப (ாசனை p உ) ப (ாசனை p
சமன்) ப (ாட p சமன்) ப (ாட p
முரன்) ப (ாட p முரன்) ப (ாட p
தண்ட) ப (ாணி p
ப (ாண்டி p ப (ாண்டி p
ப (ாதை p ப (ாதை p
ச) பாபதி ba:pVti ச) பாபதி ba:pVti
_டீ) ப (ாய் p
எதிர்) ப (ார p எதிர்) ப (ார p
_சிவ) ப (ாலன b
_கா) ப (ாலி b _கா) ப (ாலி b
தொடர்) ப (ால் b
முக) ப (ாவ b முக) ப (ாவ b
அட) ப (ாவ p அட) ப (ாவ p
வீண்) ப (ாவ p வீண்) ப (ாவ p
அடி) ப (ாவி p அடி) ப (ாவி p
_நவ) ப (ாஷ p
வாதா) ப (ி p
கோ) ப (ி p கோ) ப (ி p
_பசி) ப (ிக் f
_முன்) ப (ின்_ p _முன்) ப (ின்_ p
_) ப (ிப்ரவரி f _) ப (ிப்ரவரி f
ஆ) ப (ிரிக்க f
போஜனப்) பி (ரியர p
உடன்) ப (ிற p உடன்) ப (ிற p
ப (ிறகு+ p ப (ிறகு+ p
தேய்) ப (ிறை p தேய்) ப (ிறை p
சிறு) ப (ிள்ளை p சிறு) ப (ிள்ளை p
ஆண்) ப (ிள்ளை p ஆண்) ப (ிள்ளை p
பெண்) ப (ிள்ளை p பெண்) ப (ிள்ளை p
_திம்) ப (ு p
_அன்) ப (ுட b
_மார்) ப (ுட b
வில்லி) ப (ுத்தூர p
ம்) ப (ுரா b ம்) ப (ுரா b
இன்) ப (ுற b இன்) ப (ுற b
_துன்) ப (ுற b _துன்) ப (ுற b
இளம்) ப (ெண் p இளம்) ப (ெண் p
ப (ெருமான p ப (ெருமான p
ப (ெற p // ?? end-of-word + suffix ?? ப (ெற p // ?? end-of-word + suffix ??
_கை) ப (ேசி p
_செல்) ப (ேசி p
அலை) ப (ேசி p
தொலை) ப (ேசி p
வீண்) ப (ேச்ச p வீண்) ப (ேச்ச p
_வெல்) ப (ேர f
ப (ேரில்_ p ப (ேரில்_ p
ப (ேர்_ p ப (ேர்_ p
வன்) ப (ொருள் p
மென்) ப (ொருள் p
வீண்) ப (ொழுத p வீண்) ப (ொழுத p
ப (ோக_ p ப (ோக_ p
ப (ோகவில்லை_ p ப (ோகவில்லை_ p
ப (ோகிற p ப (ோகிற p
ப (ோகும்_ p ப (ோகும்_ p
_வீண்) ப (ோக்க p _வீண்) ப (ோக்க p
_மார்) ப (ோட b
_சத்தம்) ப (ோட p _சத்தம்) ப (ோட p
ப (ோதிலும்+ p ப (ோதிலும்+ p
ப (ோது+ p ப (ோது+ p
மன) ப்பி (ரமை bb மன) ப்பி (ரமை bb
துர்) ப்ப (ோதனை bb துர்) ப்ப (ோதனை bb
கம்) ப்யூட (ர pjU:t.V கம்) ப்யூட (ர pjU:t.V
மென்) ப (ொருள் p
வன்) ப (ொருள் p
அருள்) ப (ாலி b
//endsort //endsort


// If ப+ appearing in the middle of a word is followed by ட+ // If ப+ appearing in the middle of a word is followed by ட+
_) பி (ரச்சனை p _) பி (ரச்சனை p
_) பிரச (்னை prVtS _) பிரச (்னை prVtS
_) பி (ரஜ p _) பி (ரஜ p
_) பிர (ண்ட்ஸ fre
பி (ரத p பி (ரத p
_) பி (ரதம p _) பி (ரதம p
_) பி (ரதர்_ b _) பி (ரதர்_ b
_) பி (ரஸ்தா p _) பி (ரஸ்தா p
_) பி (ரஹலாத p _) பி (ரஹலாத p
_) பி (ராகார p _) பி (ராகார p
_) பி (ராகிருத p
_) பி (ராக்கள b _) பி (ராக்கள b
_) பி (ராட்வே b
_) பி (ராண_ p _) பி (ராண_ p
_) பி (ராணன p _) பி (ராணன p
_) பி (ராணி p _) பி (ராணி p
_) பி (ரியாவை p _) பி (ரியாவை p
_) பிரு (கன்நளை bri _) பிரு (கன்நளை bri
_) பிரு (ந்தா bri _) பிரு (ந்தா bri
_) பி (ரெஞ்சு f
_) பி (ரெண்ட்ஸ f
_) பி (ரே p _) பி (ரே p
_) பி (ரோகிதர p _) பி (ரோகிதர p
_) பி (ளாட்பார p _) பி (ளாட்பார p


// musical notes // musical notes
சா) ப (ா p சா) ப (ா p
ரி) ப (K pV
// ரி) ப (K pV
ரீ) ப (K pV ரீ) ப (K pV
ரி) ப (ா p ரி) ப (ா p
ரீ) ப (ா p ரீ) ப (ா p
_க) ப (ால b _க) ப (ால b
_கா) ப (ந்து bV _கா) ப (ந்து bV
சு) ப்ப bbV# சு) ப்ப bbV#
மகா) ப (ாரத b


_) ப (ோனை f _) ப (ோனை f
_) ப (ோட்டோ f _) ப (ோட்டோ f
.group இ .group இ
//sort //sort
இ i இ i
_) இ (யேச
_) இ (ரகசிய // silent _) இ (ரகசிய // silent
_) இ (ரசாயன _) இ (ரசாயன
_) இ (ரசிக்க
_) இ (ரத்த _) இ (ரத்த
_) இ (ராக
_) இ (ராஜ _) இ (ராஜ
_) இ (ராணி _) இ (ராணி
_) இ (ராணுவ _) இ (ராணுவ
_) இ (ராத்த _) இ (ராத்த
_) இ (ராம _) இ (ராம
_) இ (ராயபுர
_) இ (ராவண _) இ (ராவண
_) இ (ராஷ்டிர
_) இ (லகுவாக _) இ (லகுவாக
_) இ (லட்சண _) இ (லட்சண
_) இ (லட்சிய // silent _) இ (லட்சிய // silent
ஐ aI ஐ aI


ஒ o ஒ o
ஒள (வை aU // bad scanning
ஒள (ஷத aU
ஒள (டத aU


ஓ o: ஓ o:


ஔ aU ஔ aU
ஔி ol.i // for bad scanning of books




// combining vowels // combining vowels
ூ u: ூ u:


ெ e ெ e
_ம) ெள (ன aU // bad scanning
_ம) ெள (ஸ aU // bad scanning
_ச) ெள aU
_ப) ெள aU


ே e: ே e:


ோ o: ோ o:


ௌ aU ௌ aU
_த) ௌி el.i // for bad scanning




் // virama ் // virama

+ 2
- 2
dictsource/zh_list View File

罪 zui4 罪 zui4
衰 shuai1 衰 shuai1
暄 xuan1 暄 xuan1
個 ge4
個 ge5
頻 pin2 頻 pin2
嗎 ma5 嗎 ma5
也 ye3 也 ye3
注 zhu4 注 zhu4
问 wen4 问 wen4
质 zhi4 质 zhi4
个 ge4
个 ge5
猬 wei5 猬 wei5
便 bian4 便 bian4
烁 shuo4 烁 shuo4

+ 1
- 1
docs/add_language.html View File

<a href="http://en.wikipedia.org/wiki/Vowel">http://en.wikipedia.org/wiki/Vowel</a> <a href="http://en.wikipedia.org/wiki/Vowel">http://en.wikipedia.org/wiki/Vowel</a>
<P> <P>
In many cases it should be fairly easy to add a rough implementation of a new language, hopefully In many cases it should be fairly easy to add a rough implementation of a new language, hopefully
enough to be intelligible.<br>
enough to be intelligible.<p>
After that it's a gradual process of improvement to: After that it's a gradual process of improvement to:
<ul> <ul>
<li>Make the spelling-to-phoneme translation rules more accurate, including the position of stressed <li>Make the spelling-to-phoneme translation rules more accurate, including the position of stressed

+ 15
- 7
docs/commands.html View File

<p> <p>
<dt> <dt>
<strong>-s &lt;integer&gt;</strong><br> <strong>-s &lt;integer&gt;</strong><br>
<dd>Sets the speed in words-per-minute (approximate values for the default English voice, others may differ slightly). The default value is 170. I generally use a faster speed
of 190. Range 80 to 390. Larger value are rounded down to the maximum.
<dd>Sets the speed in words-per-minute (approximate values for the default English voice, others may differ slightly). The default value is 175. I generally use a faster speed
of 200. Range 80 to 450. Larger value are rounded down to the maximum.
<p> <p>
<dt> <dt>
<strong>-b &lt;integer&gt;</strong><br> <strong>-b &lt;integer&gt;</strong><br>
<p> <p>
<dt> <dt>
<strong>-q</strong><br><dd> <strong>-q</strong><br><dd>
Quiet. No sound is generated. This may be useful with the -x option.
Quiet. No sound is generated. This may be useful with options such as -x and --pho.
<p> <p>
<dt> <dt>
<strong>-v &lt;voice filename&gt;[+&lt;variant&gt;]</strong><br> <strong>-v &lt;voice filename&gt;[+&lt;variant&gt;]</strong><br>
<dt> <dt>
<strong>-x</strong><br> <strong>-x</strong><br>
<dd>The phoneme mnemonics, into which the input text is translated, are <dd>The phoneme mnemonics, into which the input text is translated, are
shown on stdout.
written to stdout.
<p> <p>
<dt> <dt>
<strong>-X</strong><br> <strong>-X</strong><br>
<dd> <dd>
The same as <strong>--compile</strong>, but source line numbers from the *_rules file are included. These are included in the rules trace when the <strong>-X</strong> option is used. The same as <strong>--compile</strong>, but source line numbers from the *_rules file are included. These are included in the rules trace when the <strong>-X</strong> option is used.
<p> <p>
<dt><strong>--ipa</strong><br>
<dd>
Writes phonemes to stdout, using the International Phonetic Alphabet (IPA).
<p>
<dt><strong>--path [="&lt;directory path&gt;"]</strong><br> <dt><strong>--path [="&lt;directory path&gt;"]</strong><br>
<dd> <dd>
Specifies the directory which contains the espeak-data directory. Specifies the directory which contains the espeak-data directory.
<p> <p>
<dt><strong>--pho</strong><br>
<dd>
When used with an mbrola voice (eg. -v mb-en1), it writes mbrola phoneme data (.pho file format) to stdout. This includes the mbrola phoneme names with duration and pitch information, in a form which is suitable as input to this mbrola voice. The --phonout option can be used to write this data to a file.
<p>
<dt><strong>--phonout [="&lt;filename&gt;"]</strong><br> <dt><strong>--phonout [="&lt;filename&gt;"]</strong><br>
<dd> <dd>
If specified, mbrola phoneme data, and also the output from -x and -X options is written to this file, rather than stdout.
If specified, the output from -x, -X, --ipa, and --pho options is written to this file, rather than to stdout.
<p> <p>
<dt><strong>--punct [="&lt;characters&gt;"]</strong><br> <dt><strong>--punct [="&lt;characters&gt;"]</strong><br>
<dd> <dd>
Speaks the names of punctuation characters when they are encountered in the text. If &lt;characters&gt; are given, then only those listed punctuation characters are spoken, eg. <code> --punct=".,;?"</code> Speaks the names of punctuation characters when they are encountered in the text. If &lt;characters&gt; are given, then only those listed punctuation characters are spoken, eg. <code> --punct=".,;?"</code>
<p> <p>
<dt><strong>--split [="&lt;minutes&gt;"]</strong><br>
<dt><strong>--split [=&lt;minutes&gt;]</strong><br>
<dd> <dd>
Used with <strong>-w</strong>, it starts a new WAV file every <code>&lt;minutes&gt;</code> minutes, at the next sentence boundary. Used with <strong>-w</strong>, it starts a new WAV file every <code>&lt;minutes&gt;</code> minutes, at the next sentence boundary.
<p> <p>
<dd>Lists the available voices.<br> <dd>Lists the available voices.<br>
If =&lt;language code&gt; is present then only those voices which are suitable for that language are listed.<br> If =&lt;language code&gt; is present then only those voices which are suitable for that language are listed.<br>
<code>--voices=mbrola</code> lists the voices which use mbrola diphone voices. These are not included in the default <code>--voices</code> list<br> <code>--voices=mbrola</code> lists the voices which use mbrola diphone voices. These are not included in the default <code>--voices</code> list<br>
<code>--voices=variant</code> lists the voice variants (voice modifiers).<br>
<code>--voices=variant</code> lists the available voice variants (voice modifiers).<br>


</dl> </dl>
<p>&nbsp;<hr> <p>&nbsp;<hr>

+ 19
- 7
docs/dictionary.html View File

<td><strong>N</strong></td> <td><strong>N</strong></td>
<td>Only use this rule if the word is not a retranslation after removing a suffix.</td> <td>Only use this rule if the word is not a retranslation after removing a suffix.</td>
</tr> </tr>
<tr>
<td><strong>T</strong></td>
<td>Only use this rule if the word in found in the *_list file with the <b>$alt</b> attribute.</td>
</tr>
<tr> <tr>
<td><strong>#</strong></td> <td><strong>#</strong></td>
<td>(English specific) change the next "e" into a special character "E"</td> <td>(English specific) change the next "e" into a special character "E"</td>
</tr> </tr>
<tr>
<td><strong>$w_alt<br>$w_alt2<br>$w_alt3</strong></td>
<td>Only use this rule if the word is found in the *_list file with the <b>$alt</b>, <b>$alt2</b> or <b>$alt3</b> attribute respectively.</td>
</tr>
<tr>
<td><strong>$p_alt<br>$p_alt2<br>$p_alt3</strong></td>
<td>Only use this rule if the part-word, up to and including the pre and match parts of this rule, is found in the *_list file with the <b>$alt</b>, <b>$alt2</b> or <b>$alt3</b> attribute respectively.</td>
</tr>
</tbody> </tbody>
</table> </table>
</ul> </ul>
</pre> </pre>
S and P must be at the end of the &lt;post&gt; string. S and P must be at the end of the &lt;post&gt; string.
<p> <p>
S&lt;number&gt; may be followed by additonal letters (eg. S2ei ). Some of these are probably specific to English, but similar functions could be used for other languages.
S&lt;number&gt; may be followed by additonal letters (eg. S2ei ). Some of these are probably specific to English, but similar functions could be made for other languages.


<ul><table> <ul><table>
<tbody> <tbody>
<td>$hasdot</td> <td>$hasdot</td>
<td>Use this pronunciation if the word is followed by a dot. (This attribute also implies $dot).</td> <td>Use this pronunciation if the word is followed by a dot. (This attribute also implies $dot).</td>
</tr> </tr>
<tr>
<td>$sentence</td>
<td>The rule only applies if the clause includes end-of-sentence (i.e. it is not terminated by a comma). For example, "$atend $sentence" means that the rule only applies at the end of a sentence.</td>
</tr>
<tr> <tr>
<td>$abbrev</td> <td>$abbrev</td>
<td>This has two meanings.<br> 1. If there is no phoneme string: Speak the word as individual letters, even if it contains a vowel (eg. "abc" should be spoken as "a" "b" "c").<br>2. If there is a phoneme string: This word is capitalized because it is an abbreviation and capitalization does indicate emphasis (if the "emphasize all-caps" is on).</td>
<td>This has two meanings.<br> 1. If there is no phoneme string: Speak the word as individual letters, even if it contains a vowel (eg. "abc" should be spoken as "a" "b" "c").<br>2. If there is a phoneme string: This word is capitalized because it is an abbreviation and capitalization does not indicate emphasis (if the "emphasize all-caps" is on).</td>
</tr> </tr>
<tr> <tr>
<td>&nbsp;</td> <td>&nbsp;</td>
<tr> <tr>
<td>$accent</td> <td>$accent</td>
<td>Used for the pronunciation of a single alphabetic character. The character name is spoken as the base-letter name plus the accent (diacritic) name. eg. It can be used to specify that "&#xe2;" is spoken as "a" "circumflex".</td> <td>Used for the pronunciation of a single alphabetic character. The character name is spoken as the base-letter name plus the accent (diacritic) name. eg. It can be used to specify that "&#xe2;" is spoken as "a" "circumflex".</td>
</tr>
<tr>
<td>$combine</td>
<td>This word is treated as though it is combined with the following word with a hyphen. This may be subject to fuither conditions for certain languages.</td>
</tr> </tr>
<tr> <tr>
<td>$alt &nbsp; $alt2</td>
<td>$alt &nbsp; $alt2 &nbsp; $alt3</td>
<td>These are language specific. Their use should be described in the language's **_list file</td> <td>These are language specific. Their use should be described in the language's **_list file</td>
</tr> </tr>
<tr> <tr>

+ 3
- 1
docs/docindex.html View File

<h3><A href="add_language.html">Adding a Language</A></h3> <h3><A href="add_language.html">Adding a Language</A></h3>
How to add or improve a language. How to add or improve a language.
<h3><A href="phonemes.html">Phonemes</A></h3> <h3><A href="phonemes.html">Phonemes</A></h3>
The list of phoneme mnemonics, for use in the Pronunciation Dictionary.
The list of phoneme mnemonics for English, for use in the Pronunciation Dictionary.
<h3><A href="phontab.html">Phoneme Tables</A></h3> <h3><A href="phontab.html">Phoneme Tables</A></h3>
The tables of the phonemes used by each language, with their properties and sound production. The tables of the phonemes used by each language, with their properties and sound production.
<h3><A href="intonation.html">Intonation</A></h3>
Different intonation "tunes" may be defined for different languages for clauses which end in full-stop, comma, question-mark, and exclamation-mark.
<h3><A href="speak_lib.h">eSpeak Libary API</A></h3> <h3><A href="speak_lib.h">eSpeak Libary API</A></h3>
API definition and header file for a shared library version of eSpeak. API definition and header file for a shared library version of eSpeak.
<h3><A href="ssml.html">Markup tags</A></h3> <h3><A href="ssml.html">Markup tags</A></h3>

+ 101
- 0
docs/intonation.html View File

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<title>eSpeak: Phoneme tables</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<A href="docindex.html">Back</A>
<hr>
<h2>INTONATION</h2>
<hr>
In eSpeak's standard intonation model, a "tune" is applied to each clause depending on its punctuation. Other intonation models may be used for some languages, such as tone languages.
<p>
Named tunes are defined in the text file: <b><code>phsource/intonation</code></b>. This file must be compiled for use by eSpeak by using the espeakedit program, using the menu option: <b><code>Compile -> Compile intonation data</code></b>.
<h3>Clauses</h3>
The tunes which are used for a language can be specified by using a <b><code>tunes</code></b> statement in a voice file in <b><code>espeak-data/voices</code></b>. eg:
<p>
<code>tunes &nbsp; s1 &nbsp;c1 &nbsp;q1 &nbsp;e1</code>
<p>
It's parameters are four tune names which are used for clauses which end in:
<ol>
<li>Full-stop.
<li>Comma.
<li>Question mark.
<li>Exclamation mark.
</ol>
<p>
A clause consists of the following parts:
<ul>
<li>Pre-head.<br>These are any unstressed syllables before the first stressed syllable.
<p>
<li>Head.<br>This is the part from the first stressed syllable up to the last syllable before the nucleus.
<p>
<li>Nucleus.<br>This is stressed syllable which is the focus of the clause. eSpeak chooses the last stressed syllable of the clause.
<p>
<li>Tail.<br>These are the syllables after the nucleus.
</ul>
<p>
<h3>Tune definitions</h3>
Here is an example tune definition from the file <b><code>phsource/intonation</code></b>.
<p>
<pre>
tune s1
prehead 46 57
headenv fall 16
head 4 80 55 -8 -5
headextend 0 63 38 13 0
nucleus fall 70 18 24 12
nucleus0 fall 64 8
endtune
</pre>
<p>
It contains:
<dl>
<dt><strong>tune</strong> &lt;tune name&gt;
<dd>
Starts the definition of a tune. The <b><code>tune name</code></b> can be used in a <b><code>tunes</code></b> statements in voice files.
<p>
<dt><strong>endtune</strong> &lt;tune name&gt;
<dd>
Ends the definition of a tune.
<p>
<dt><strong>prehead</strong> &lt;start pitch&gt; &lt;end pitch&gt;
<dd>
Gives the pitch path for any series of unstressed syllables before the first stressed syllable.
<p>
<dt><strong>headenv</strong> &lt;envelope&gt; &lt;height&gt;
<dd>
Gives the pitch envelope which is used for stressed syllables in the head (before the nucleus), including <b><code>onset</code></b> and <b><code>headlast</code></b> syllables if these are specified. <b><code>height</code></b> gives a pitch range for the envelope.
<p>
<dt><strong>head</strong> &lt;steps&gt; &lt;start pitch&gt; &lt;end pitch&gt; &lt;unstressed start&gt; &lt;unstressed end&gt;
<dd>
<b><code>start pitch</code></b> and <b><code>end pitch</code></b> give a pitch path for the stressed syllables of the head. <b><code>steps</code></b> is the maximum number of stressed syllables for which this applies. If there are additional stressed syllables, then the <b><code>headextend</code></b> statement is used for them.<p>
<b><code>unstressed start</code></b> and <b><code>unstressed end</code></b> give a pitch path for unstressed syllables between two stressed syllables. Their values are relative to the pitch of the previous stressed syllable. Values are usually negative, meaning that the unstressed syllables have lower pitch than the previous stressed syllable.

<p>
<dt><strong>headextend</strong> &lt;percentage list&gt;
<dd>
If the head contains more stressed syllables than is specified by <b><code>steps</code></b>, then <b><code>percentage list</code></b> is used. It contains up to 8 numbers which are used repeatedly for the additional stressed syllables. A value of 0 corresponds to the lower the <b><code>start pitch</code></b> and <b><code>end pitch</code></b> values of the <b><code>head</code></b> statement. 100 corresponds to the higher value. Negative values and values greater than 100 are allowed.
<p>
<dt><strong>nucleus</strong> &lt;envelope&gt; &lt;top pitch&gt; &lt;bottom pitch&gt; &lt;tail start&gt; &lt;tail end&gt;
<dd>
This gives the pitch envelope and pitch range of the last stressed syllable of the clause. <b><code>tail start</code></b> and <b><code>tail end</code></b> give a pitch path for the unstressed syllables which are after the last stressed syllable.
<p>
<dt><strong>nucleus0</strong> &lt;envelope&gt; &lt;top pitch&gt; &lt;bottom pitch&gt;
<dd>
This is used instead of <b><code>nucleus</code></b> if there are no unstressed syllables after the last stressed syllable. In this case, the pitch changes of the nucleus and the tail and both included in the nucleus.
</dl>
<p>
The following attributes may also be included:
<dl>
<dt><strong>onset</strong> &lt;pitch&gt; &lt;unstressed start&gt; &lt;unstressed end&gt;
<dd>
This specifies the pitch for the first stressed syllable of the head. If the <b><code>onset</code></b> statement is present, then the <b><code>head</code></b> statement used for the stressed syllables after the first.
<p>
<dt><strong>headlast</strong> &lt;pitch&gt; &lt;unstressed start&gt; &lt;unstressed end&gt;
<dd>
This specifies the pitch for the last stressed syllable of the head (i.e. the stressed syllable before the nucleus).
<p>
</dl>

+ 12
- 17
docs/mbrola.html View File

</ol> </ol>
<h3>Linux Installation</h3> <h3>Linux Installation</h3>


I don't think there's a Linux shared library version of Mbrola (equivalent to mbrola.dll), so eSpeak has to pipe phoneme data to the command-line Mbrola.
From eSpeak version 1.44 onwards, eSpeak calls the mbrola program directly, rather than passing phoneme data to it using a pipe.
<ol> <ol>
<li>To install the Linux Mbrola binary, download: <li>To install the Linux Mbrola binary, download:
<a href="http://www.tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip"> http://www.tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip</a>. <a href="http://www.tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip"> http://www.tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip</a>.
Unpack the archive, and copy and rename the file: <code>mbrola-linux-i386</code> to
Unpack the archive, and copy and rename the file from: <code>mbrola-linux-i386</code> to
<code>mbrola</code> somewhere in your executable path (eg. <code>/usr/bin/mbrola</code> ). <code>mbrola</code> somewhere in your executable path (eg. <code>/usr/bin/mbrola</code> ).
<p> <p>
<li>Get the en1 voice from: <li>Get the en1 voice from:
<a href="http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html"> http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html</a>. <a href="http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html"> http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html</a>.
Unpack the archive, and copy the "<b>en1</b>" data file (not the whole "en1" Unpack the archive, and copy the "<b>en1</b>" data file (not the whole "en1"
directory) somewhere convenient (eg. <code>/usr/share/mbrola/en1</code> ).
directory) to <code>/usr/share/mbrola/en1</code>.<p>eSpeak will look for mbrola voices firstly in <code>espeak-data/mbrola</code> and then in <code>/usr/share/mbrola</code>
<p> <p>
<li>If you use the eSpeak voice "<b>mb-en1</b>" then eSpeak will generate
Mbrola phoneme data on its stdout. You can pipe this into Mbrola.
<p>
<code>espeak -v mb-en1 -f textfile | mbrola -e /usr/share/mbrola/en1 -
test.wav</code>
<p>
will put the Mbrola speech output into a WAV file. Or you can pipe the output from Mbrola through aplay:
<p>
<code>espeak -v mb-en1 -f textfile | mbrola -e /usr/share/mbrola/en1 - - | aplay -r16000 -fS16</code>
<p>
The -e option prevents Mbrola from stopping if it finds a combination
of phonemes which it doesn't recognise.
<p>
Some mbrola voices (de5, de6) use a sample rate of 22050 Hz. These need -r22050 rather than -r16000.
<li>If you use the eSpeak voice such as "<b>mb-en1</b>" then eSpeak will use the mbrola "en1" voice, eg:<br>
<code>espeak -v mb-en1 "Hello world"
</code>
<p><p>
To generate mbrola phoneme data (.pho file) you can use:<br>
<code>espeak -v mb-en1 -q --pho "Hello world"</code>
<br>or<br>
<code>espeak -v mb-en1 -q --pho --phonout=out.pho "Hello world"</code>

</ol> </ol>
<h3>Mbrola Voice Files</h3> <h3>Mbrola Voice Files</h3>



+ 9
- 3
docs/phontab.html View File



<head> <head>
<title>eSpeak: Phoneme tables</title> <title>eSpeak: Phoneme tables</title>
<meta name="GENERATOR" content="Quanta Plus">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head> </head>
<body> <body>
<tr><TD><b>rhotic</b></TD><td>(C) An "r" type consonant.</td></tr> <tr><TD><b>rhotic</b></TD><td>(C) An "r" type consonant.</td></tr>
<tr><TD><b>unstressed</b></TD><td>(V) This vowel is always unstressed, unless explicitly marked otherwise.</td></tr> <tr><TD><b>unstressed</b></TD><td>(V) This vowel is always unstressed, unless explicitly marked otherwise.</td></tr>
<tr><TD><b>nolink</b></TD><td>Prevent any linking from the previous phoneme.</td></tr> <tr><TD><b>nolink</b></TD><td>Prevent any linking from the previous phoneme.</td></tr>
<tr><TD><b>nopause</b></TD><td>Used in a <code>liquid</code> or <code>nasal</code> phoneme to prevent eSpeak inserting a short pause if a word starts with this phoneme and the previous word ends with a vowel.</td></tr>
<tr><TD><b>trill</b></TD><td>(C) Apply trill to the voicing.</td></tr> <tr><TD><b>trill</b></TD><td>(C) Apply trill to the voicing.</td></tr>
</table> </table>
</dl> </dl>
<dt><strong>length</strong> &lt;length&gt; <dt><strong>length</strong> &lt;length&gt;
<dd>The relative length of the phoneme, typically about 140 for a short vowel and from 200 to 300 for a long vowel or diphong. A length() instruction is needed for vowels. It is optional for consonants. <dd>The relative length of the phoneme, typically about 140 for a short vowel and from 200 to 300 for a long vowel or diphong. A length() instruction is needed for vowels. It is optional for consonants.
<p> <p>
<dt><strong>ipa</strong> &lt;ipa string&gt;
<dd>In many cases, eSpeak makes IPA (International Phonetic Alpbabet) phoneme names automatically from eSpeak phoneme names. If this is not correct, then the phoneme definition can include an <b>ipa</b> instruction to specify the correct IPA name. IPA strings may include non-ascii characters. They may also include characters specified by their character codes in the form U+ followed by 4 hexadecimal digits. For example a string: aU+0303 indicates 'a' with a 'combining tilde'.
<p>
<dt><strong>WAV</strong>(&lt;wav file&gt;, &lt;amplitude&gt;) <dt><strong>WAV</strong>(&lt;wav file&gt;, &lt;amplitude&gt;)
<dd>&nbsp;&lt;wav file&gt; is a path to a WAV file (22 kHz, 16 bits, mono) within <code>phsource/</code> which will be played to produce the sound. This method is used for unvoiced consonants. &lt;wavefile&gt; does not include a .WAV filename extension, although the file to which it refers may or may not have one.<br> <dd>&nbsp;&lt;wav file&gt; is a path to a WAV file (22 kHz, 16 bits, mono) within <code>phsource/</code> which will be played to produce the sound. This method is used for unvoiced consonants. &lt;wavefile&gt; does not include a .WAV filename extension, although the file to which it refers may or may not have one.<br>
&lt;amplitude&gt; is optional. It is a percentage change to the amplitude of the WAV file. So, <code>WAV(ufric/s, 50)</code> means: play file 'ufric/s.wav' at 50% amplitude. &lt;amplitude&gt; is optional. It is a percentage change to the amplitude of the WAV file. So, <code>WAV(ufric/s, 50)</code> means: play file 'ufric/s.wav' at 50% amplitude.
<p> <p>
<dt><strong>FMT</strong>(&lt;vowel file&gt;)
<dd>&lt;vowel file&gt; is a path to a file (within <code>phsource/</code>) which defines how to generate the sound (a vowel or voiced consonant) from a sequence of formant values. Vowel files are made using the espeakedit program.
<dt><strong>FMT</strong>(&lt;vowel file&gt;, &lt;amplitude&gt;)
<dd>&lt;vowel file&gt; is a path to a file (within <code>phsource/</code>) which defines how to generate the sound (a vowel or voiced consonant) from a sequence of formant values. Vowel files are made using the espeakedit program.<br>
&lt;amplitude&gt; is optional. It is a percentage change to the amplitude of the sound which is synthesized from the FMT() instruction.
<p> <p>
<dt><strong>FMT</strong>(&lt;vowel file&gt;) <strong>addWav</strong>(&lt;wav file&gt;, &lt;amplitude&gt;)
<dt><strong>FMT</strong>(&lt;vowel file&gt;, &lt;amplitude&gt;) <strong>addWav</strong>(&lt;wav file&gt;, &lt;amplitude&gt;)
<dd>For voiced consonants, a FMT() instruction may be followed by an addWav() instruction. addWav() has the same format as a WAV() instruction, but the WAV file is mixed with the sound which is synthesized from the FMT() instruction. <dd>For voiced consonants, a FMT() instruction may be followed by an addWav() instruction. addWav() has the same format as a WAV() instruction, but the WAV file is mixed with the sound which is synthesized from the FMT() instruction.
<p> <p>
<dt><strong>VowelStart</strong>(&lt;vowel file&gt;, &lt;length adjust&gt;) <dt><strong>VowelStart</strong>(&lt;vowel file&gt;, &lt;length adjust&gt;)

+ 27
- 13
docs/speak_lib.h View File

#ifndef SPEAK_LIB_H #ifndef SPEAK_LIB_H
#define SPEAK_LIB_H #define SPEAK_LIB_H
/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2007 by Jonathan Duddington *
* Copyright (C) 2005 to 2010 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
/*************************************************************/ /*************************************************************/


#include <stdio.h> #include <stdio.h>
#include <stddef.h>


#define ESPEAK_API_REVISION 3
#define ESPEAK_API_REVISION 5
/* /*
Revision 2 Revision 2
Added parameter "options" to eSpeakInitialize() Added parameter "options" to eSpeakInitialize()
Revision 3 Revision 3
Added espeakWORDGAP to espeak_PARAMETER Added espeakWORDGAP to espeak_PARAMETER


Revision 4
Added flags parameter to espeak_CompileDictionary()

Revision 5
Added espeakCHARS_16BIT
*/ */
/********************/ /********************/
/* Initialization */ /* Initialization */
typedef enum { typedef enum {
espeakEVENT_LIST_TERMINATED = 0, // Retrieval mode: terminates the event list. espeakEVENT_LIST_TERMINATED = 0, // Retrieval mode: terminates the event list.
espeakEVENT_WORD = 1, // Start of word espeakEVENT_WORD = 1, // Start of word
espeakEVENT_SENTENCE, // Start of sentence
espeakEVENT_MARK, // Mark
espeakEVENT_PLAY, // Audio element
espeakEVENT_END, // End of sentence
espeakEVENT_MSG_TERMINATED, // End of message
espeakEVENT_PHONEME // Phoneme, if enabled in espeak_Initialize()
espeakEVENT_SENTENCE = 2, // Start of sentence
espeakEVENT_MARK = 3, // Mark
espeakEVENT_PLAY = 4, // Audio element
espeakEVENT_END = 5, // End of sentence or clause
espeakEVENT_MSG_TERMINATED = 6, // End of message
espeakEVENT_PHONEME = 7, // Phoneme, if enabled in espeak_Initialize()
espeakEVENT_SAMPLERATE = 8 // internal use, set sample rate
} espeak_EVENT_TYPE; } espeak_EVENT_TYPE;




#define espeakCHARS_UTF8 1 #define espeakCHARS_UTF8 1
#define espeakCHARS_8BIT 2 #define espeakCHARS_8BIT 2
#define espeakCHARS_WCHAR 3 #define espeakCHARS_WCHAR 3
#define espeakCHARS_16BIT 4


#define espeakSSML 0x10 #define espeakSSML 0x10
#define espeakPHONEMES 0x100 #define espeakPHONEMES 0x100
#endif #endif
espeak_ERROR espeak_Key(const char *key_name); espeak_ERROR espeak_Key(const char *key_name);
/* Speak the name of a keyboard key. /* Speak the name of a keyboard key.
Currently this just speaks the "key_name" as given
If key_name is a single character, it speaks the name of the character.
Otherwise, it speaks key_name as a text string.


Return: EE_OK: operation achieved Return: EE_OK: operation achieved
EE_BUFFER_FULL: the command can not be buffered; EE_BUFFER_FULL: the command can not be buffered;
relative=1 Sets a relative value of the parameter. relative=1 Sets a relative value of the parameter.


parameter: parameter:
espeakRATE: speaking speed in word per minute.
espeakRATE: speaking speed in word per minute. Values 80 to 450.


espeakVOLUME: volume in range 0-100 0=silence
espeakVOLUME: volume in range 0-200 or more.
0=silence, 100=normal full volume, greater values may produce amplitude compression or distortion


espeakPITCH: base pitch, range 0-100. 50=normal espeakPITCH: base pitch, range 0-100. 50=normal


value=0 No phoneme output (default) value=0 No phoneme output (default)
value=1 Output the translated phoneme symbols for the text value=1 Output the translated phoneme symbols for the text
value=2 as (1), but also output a trace of how the translation was done (matching rules and list entries) value=2 as (1), but also output a trace of how the translation was done (matching rules and list entries)
value=3 as (1), but produces IPA rather than ascii phoneme names


stream output stream for the phoneme symbols (and trace). If stream=NULL then it uses stdout. stream output stream for the phoneme symbols (and trace). If stream=NULL then it uses stdout.
*/ */
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
void espeak_CompileDictionary(const char *path, FILE *log);
void espeak_CompileDictionary(const char *path, FILE *log, int flags);
/* Compile pronunciation dictionary for a language which corresponds to the currently /* Compile pronunciation dictionary for a language which corresponds to the currently
selected voice. The required voice should be selected before calling this function. selected voice. The required voice should be selected before calling this function.


path: The directory which contains the language's '_rules' and '_list' files. path: The directory which contains the language's '_rules' and '_list' files.
'path' should end with a path separator character ('/'). 'path' should end with a path separator character ('/').
log: Stream for error reports and statistics information. If log=NULL then stderr will be used. log: Stream for error reports and statistics information. If log=NULL then stderr will be used.

flags: Bit 0: include source line information for debug purposes (This is displayed with the
-X command line option).
*/ */
/***********************/ /***********************/
/* Voice Selection */ /* Voice Selection */
The list is terminated by a NULL pointer The list is terminated by a NULL pointer


If voice_spec is NULL then all voices are listed. If voice_spec is NULL then all voices are listed.
If voice spec is give, then only the voices which are compatible with the voice_spec
If voice spec is given, then only the voices which are compatible with the voice_spec
are listed, and they are listed in preference order. are listed, and they are listed in preference order.
*/ */



+ 5
- 0
docs/ssml.html View File

Any unrecognised tags are ignored.<p> Any unrecognised tags are ignored.<p>
The following tags case a sentence break.<br> The following tags case a sentence break.<br>
<b>&lt;br&gt; &nbsp; <b>&lt;br&gt; &nbsp;
&lt;dd&gt; &nbsp;
&lt;li&gt; &nbsp; &lt;li&gt; &nbsp;
&lt;img&gt; &nbsp; &lt;img&gt; &nbsp;
&lt;td&gt; &nbsp; &lt;td&gt; &nbsp;
&lt;h4&gt; &nbsp; &lt;h4&gt; &nbsp;
&lt;hr&gt; &nbsp; &lt;hr&gt; &nbsp;
</b><p> </b><p>
Text between the following tags is ignored.<br>
<b>&lt;script&gt; &nbsp; ... &nbsp; &lt;/script&gt; &nbsp;<br>
&lt;style&gt; &nbsp; ... &nbsp; &lt;/style&gt; &nbsp;<br>
</b><p>
</body> </body>
</html> </html>

+ 53
- 28
phsource/compile_report View File

65 phoneme tables
66 phoneme tables
new total new total
base 107 107 base 107 107
consonants 9 115 consonants 9 115
en-wi 30 148 en-wi 30 148
af 39 136 af 39 136
cy 29 132 cy 29 132
de 38 139
de 37 138
eo 13 114 eo 13 114
jbo 2 114 jbo 2 114
nci 3 123 nci 3 123
ta 21 153 ta 21 153
hu 24 121 hu 24 121
lv 29 125 lv 29 125
nl 24 125
pl 20 118
sk 28 133
cs 6 133
hr 25 138
mk 3 139
sr 14 138
nl 25 126
pl 22 120
sk 28 135
cs 6 135
hr 25 140
mk 3 141
sr 14 140
it 18 126 it 18 126
la 21 124 la 21 124
es 10 123 es 10 123
pt 29 138 pt 29 138
pt-pt 20 138 pt-pt 20 138
ro 36 146 ro 36 146
el 8 123
el 9 123
grc 12 127 grc 12 127
sv 22 127 sv 22 127
no 28 132 no 28 132
id 15 125 id 15 125
sq 33 126 sq 33 126
hy 23 117 hy 23 117
da 24 120
da 27 120
rw 15 130 rw 15 130
ml 13 151 ml 13 151
ne 18 157 ne 18 157
pa 14 151 pa 14 151
prs 8 111 prs 8 111
sl 7 133
sl 10 135
gd 6 107 gd 6 107
bg 10 119
nso 8 107
bg 10 121
nso 12 111
ht 11 140 ht 11 140
az 10 127 az 10 127
ak 8 109


Data file Used by Data file Used by
b/b [b] base b/b [b] base
[l/] fr [l/] fr
l/l_@ [l/3] base l/l_@ [l/3] base
[l/] fr [l/] fr
l/l@ [h&w] base
l/l@ [hæy] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[K] nso
l/L1_aL [l/] base l/L1_aL [l/] base
[l/] de [l/] de
l/L1_eL [l/] base l/L1_eL [l/] base
l/L2_uL [l/2] base l/L2_uL [l/2] base
l/l_3 [l/] de l/l_3 [l/] de
l/l_4 [ll] sq l/l_4 [ll] sq
l/la [h&w] base
l/la [hæy] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[K] nso
l/l_a [l/3] base l/l_a [l/3] base
[l/] fr [l/] fr
l/le [h&w] base
l/le [hæy] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[K] nso
l/l_e [l/3] base l/l_e [l/3] base
[l/] fr [l/] fr
l/L_eL_af [&] af l/L_eL_af [&] af
[&:] af [&:] af
l/l_front [L] sq l/l_front [L] sq
l/l_front_ [l/4] sq l/l_front_ [l/4] sq
l/li [h&w] base
l/li [hæy] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[l] zh [l] zh
[K] nso
l/l_i [l/3] base l/l_i [l/3] base
[l/] fr [l/] fr
[i] sq [i] sq
ll/_ll [L] bg ll/_ll [L] bg
l/l_long [l] base l/l_long [l] base
[l] fr [l] fr
l/lo [h&w] base
l/lo [hæy] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[K] nso
l/l_o [l/3] base l/l_o [l/3] base
[l/] fr [l/] fr
l^/l_rfx [l.] base l^/l_rfx [l.] base
l/lu [h&w] base
l/lu [hæy] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[K] nso
l/l_u [l/3] base l/l_u [l/3] base
[l/] fr [l/] fr
l/l_vi [l] vi l/l_vi [l] vi
[l] fr [l] fr
[l] hu [l] hu
[ll] sq [ll] sq
[K] nso
m/_m [m] base m/_m [m] base
m/m_ [m] base m/m_ [m] base
m/m@ [m] base m/m@ [m] base
[n#] is [n#] is
[n] zh [n] zh
r/@_ [V#] de r/@_ [V#] de
[V3#] de
r2/r2@ [r-] en r2/r2@ [r-] en
r2/r2a [r-] en r2/r2a [r-] en
r2/r2e [r-] en r2/r2e [r-] en
[r] ro [r] ro
[r] ru [r] ru
r/V_ [V#] de r/V_ [V#] de
[V1#] de
r/V_2_ [V#] de r/V_2_ [V#] de
[V2#] de
r/xr [r] base r/xr [r] base
[R3] base [R3] base
[r-] en [r-] en
[z2] fr [z2] fr
[s] es [s] es
[z] sq [z] sq
[s] da
ufric/s_ [s] base ufric/s_ [s] base
[z] base [z] base
[s2] consonants [s2] consonants
ufric/s! [s] base ufric/s! [s] base
[s] fr [s] fr
[s] es [s] es
[s] da
ufric/s_continue [s2] consonants ufric/s_continue [s2] consonants
[s2] lv [s2] lv
ufric/sh [S] base ufric/sh [S] base
ufric/th [T] base ufric/th [T] base
ufric/th_ [T] base ufric/th_ [T] base
ufric/tl# [tl#] is ufric/tl# [tl#] is
ufric/tlh [K] nso
ufric/x [x] base ufric/x [x] base
[kh] vi [kh] vi
ufric/x2 [x2] af ufric/x2 [x2] af
ustop/p [p] base ustop/p [p] base
[p2] fr [p2] fr
[p] zhy [p] zhy
[p] da
ustop/p_ [p] base ustop/p_ [p] base
[ph] consonants [ph] consonants
[p] fr [p] fr
[p] lv [p] lv
[p] sk [p] sk
[p] sq [p] sq
[p] da
ustop/pr [p] base ustop/pr [p] base
[p-] consonants [p-] consonants
[ph] consonants [ph] consonants
[p] base2 [p] base2
[p] da
ustop/p_unasp [p] base ustop/p_unasp [p] base
[p-] consonants [p-] consonants
[p] base2 [p] base2
[p] sk [p] sk
[p] zh [p] zh
[p] sq [p] sq
[p] da
ustop/p_unasp_ [p-] consonants ustop/p_unasp_ [p-] consonants
[p] base2 [p] base2
[p] fr [p] fr
[dh.] hi [dh.] hi
[th.] hi [th.] hi
[t] zhy [t] zhy
[t] da
ustop/t_ [t] base ustop/t_ [t] base
[t] en-us [t] en-us
[t] fr [t] fr
[t] lv [t] lv
[t] sk [t] sk
[t] el
[th] zh [th] zh
ustop/t_dnt [t] base ustop/t_dnt [t] base
[t[] base [t[] base
[t;] pl [t;] pl
ustop/tr [t] base ustop/tr [t] base
[t] en-us [t] en-us
[t] da
ustop/ts [ts] consonants ustop/ts [ts] consonants
[dz] consonants [dz] consonants
[ts] hu [ts] hu
[t.] hi [t.] hi
[t] lv [t] lv
[t] sk [t] sk
[t] el
ustop/t_short_ [t] fr ustop/t_short_ [t] fr
ustop/tsh_pzd [tS;] zh ustop/tsh_pzd [tS;] zh
ustop/tsh_pzd_unasp [tS;] zh ustop/tsh_pzd_unasp [tS;] zh
ustop/ts_sr [tS;] sr ustop/ts_sr [tS;] sr
[dZ;] sr [dZ;] sr
ustop/ts_unasp [ts] zh ustop/ts_unasp [ts] zh
ustop/t_unasp2 [t] zh
ustop/t_unasp2 [t] el
[t] zh
vdiph/0i [OI] pt vdiph/0i [OI] pt
[OI] grc [OI] grc
[OI] vi [OI] vi
[aU] la [aU] la
[aau] zhy [aau] zhy
vdiph/aau_3 [aU] hi vdiph/aau_3 [aU] hi
[aU] ta
[aU] ne [aU] ne
vdiph/aau_4 [aU] vi vdiph/aau_4 [aU] vi
vdiph/aau_6 [aU] de vdiph/aau_6 [aU] de
vdiph/aoo [aU] en-us vdiph/aoo [aU] en-us
vdiph/au [aU] en vdiph/au [aU] en
[aU] af [aU] af
[aU] ta
[a:U] vi [a:U] vi
[aU] prs [aU] prs
vdiph/au# [aU] en-sc vdiph/au# [aU] en-sc
[O~] fr [O~] fr
vnasal/oo_n2 [O~] en vnasal/oo_n2 [O~] en
[O~] hi [O~] hi
[O~] nl
[o] zh [o] zh
vnasal/oo_n3 [O~] pl vnasal/oo_n3 [O~] pl
vnasal/u_n [U~] hi vnasal/u_n [U~] hi
[a] it [a] it
[a] zh [a] zh
[a] id [a] id
[a] sl
[a] bg [a] bg
vowel/a# [a] base2 vowel/a# [a] base2
[a/] base2 [a/] base2
[A] pt [A] pt
[a] pt-pt [a] pt-pt
[a] ro [a] ro
[a] el
[a] da [a] da
[a] rw [a] rw
vowel/a#_2 [A] nl vowel/a#_2 [A] nl
[a/] sq [a/] sq
[3] da [3] da
[a] ml [a] ml
vowel/a_4 [a/] el
vowel/a_4 [a] el
[a] vi [a] vi
vowel/a#_4 [a:] nl vowel/a#_4 [a:] nl
[a] tr [a] tr
[a:] hi [a:] hi
[a] ne [a] ne
[a] pa [a] pa
[a] ak
vowel/@_bck [@] hi vowel/@_bck [@] hi
[@/] hi [@/] hi
[@] zh [@] zh
[e] ku [e] ku
vowel/e_5 [i] en-sc vowel/e_5 [i] en-sc
vowel/e_6 [e] ht vowel/e_6 [e] ht
[e] ak
vowel/e_8 [E:] de vowel/e_8 [E:] de
[e] fr [e] fr
vowel/ee [E] en-n vowel/ee [E] en-n
[E] vi [E] vi
vowel/ee_4 [E] sq vowel/ee_4 [E] sq
vowel/ee_5 [E] en vowel/ee_5 [E] en
[E] ak
vowel/ee_6 [&] sk vowel/ee_6 [&] sk
[E3] sv [E3] sv
[E] ku [E] ku
[i] ne [i] ne
[i] prs [i] prs
[i] nso [i] nso
[i] ak
vowel/i# [y:] cy vowel/i# [y:] cy
vowel/i_2 [i2] de vowel/i_2 [i2] de
[i:] de [i:] de
[I] no [I] no
[I] tr [I] tr
[I] pa [I] pa
[i] sl
vowel/ii#_3 [I2] en-us vowel/ii#_3 [I2] en-us
vowel/ii_4 [I2] en vowel/ii_4 [I2] en
[I] en-us [I] en-us
[o:] ml [o:] ml
[o:] pa [o:] pa
[o] sl [o] sl
[o] ak
vowel/o_2 [o:] cy vowel/o_2 [o:] cy
[o:] hi [o:] hi
[o:] hu [o:] hu
[O] cy [O] cy
[o] cs [o] cs
[0] da [0] da
[O] ak
vowel/oo_3 [O] af vowel/oo_3 [O] af
vowel/oo_4 [O] base2 vowel/oo_4 [O] base2
[0] en-wm [0] en-wm
[u] ml [u] ml
[u:] ml [u:] ml
[u] prs [u] prs
[u] ak
vowel/u# [u:] en-sc vowel/u# [u:] en-sc
[Y] tr [Y] tr
vowel/u_2 [u1] fi vowel/u_2 [u1] fi
[u] ro [u] ro
[u] is [u] is
[u] tr [u] tr
[u] sl
[u] bg [u] bg
vowel/u#_2 [u-] sv vowel/u#_2 [u-] sv
vowel/u#_3 [U] ta vowel/u#_3 [U] ta

+ 53
- 0
phsource/ph_danish View File

endphoneme endphoneme





// don't weaken consonants at end of word or before a stop

phoneme s
vls alv frc sibilant
voicingswitch z
lengthmod 3
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20

IF nextPh(p) OR nextPh(t) OR nextPh(k) THEN
WAV(ufric/s!)
ENDIF
WAV(ufric/s)
endphoneme


phoneme p
vls blb stop
voicingswitch b
lengthmod 2
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22

IF nextPh(isPause2) THEN
WAV(ustop/p_unasp)
ELIF nextPh(r) THEN
WAV(ustop/pr, 70)
ELIF nextPh(R) OR nextPh(R2) THEN
WAV(ustop/pr)
ELIF nextPh(@-) THEN
WAV(ustop/p_unasp)
ELIF nextPh(l) THEN
WAV(ustop/pl)
ENDIF
WAV(ustop/p)
endphoneme



phoneme t
vls alv stop
voicingswitch d
lengthmod 2
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20

IF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN
WAV(ustop/tr)
ENDIF
WAV(ustop/t, 90)
endphoneme


+ 6
- 0
phsource/ph_dutch View File

import_phoneme fr/A~ import_phoneme fr/A~
endphoneme endphoneme


phoneme O~
vowel starttype #o endtype #o
length 190
FMT(vnasal/oo_n2)
endphoneme



// Diphthongs // Diphthongs
//=========== //===========

+ 19
- 31
phsource/ph_german View File

endphoneme endphoneme




// TESTING

phoneme V1#
liquid
lengthmod 7
IF nextPhW(isVowel) THEN
ChangePhoneme(r")
ENDIF
FMT(r/V_)
endphoneme

phoneme V2# // used for 'r' after a vowel (to create a diphthong)
liquid
lengthmod 7
IF nextPhW(isVowel) THEN
ChangePhoneme(r")
ENDIF
FMT(r/V_2_)
endphoneme

phoneme V3#
liquid
lengthmod 7
IF nextPhW(isVowel) THEN
ChangePhoneme(r")
ENDIF
FMT(r/@_)
endphoneme

phoneme UR phoneme UR
vowel starttype #u endtype #@ vowel starttype #u endtype #@
ipa ʊɐ ipa ʊɐ
endphoneme endphoneme




phoneme r2
vcd alv flp

IF prevPhW(isVowel) THEN
ChangePhoneme(*)
ENDIF

InsertPhoneme(@-)
ChangePhoneme(*)
endphoneme



phoneme oU // for English words
import_phoneme en-us/oU
endphoneme





// translate from English to German phonemes // translate from English to German phonemes
E E E E
e: e: e: e:
e@ E: r e@ E: r
eI e:
eI e j
i I i I
I I I I
I2 I I2 I
O@ O : r O@ O : r
o@ O : r o@ O : r
OI OY OI OY
oU o:
oU oU
O~ O n O~ O n
U U U U
u: u: u: u:

+ 19
- 5
phsource/ph_greek View File

//==================================================== //====================================================




phoneme a/
vowel starttype #@ endtype #@
phoneme a
vowel starttype #a endtype #a
length 180 length 180
FMT(vowel/a_4)

IF thisPh(isWordEnd) AND thisPh(isNotStressed) AND nextPh(a) THEN
ChangePhoneme(NULL)
ENDIF

IF thisPh(isDiminished) THEN
FMT(vowel/a_4)
ENDIF
FMT(vowel/a_2)
endphoneme endphoneme



phoneme e phoneme e
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 180 length 180
Vowelin f1=1 f2=1600 -300 300 f3=-100 80 amp=11 Vowelin f1=1 f2=1600 -300 300 f3=-100 80 amp=11
Vowelout f1=0 f2=1600 -300 250 f3=-100 80 rms=20 Vowelout f1=0 f2=1600 -300 250 f3=-100 80 rms=20
IF nextPh(isPause2) THEN IF nextPh(isPause2) THEN
WAV(ustop/t_)
WAV(ustop/t_unasp2)
ENDIF ENDIF
WAV(ustop/t_short, 80)
WAV(ustop/t_unasp2)
endphoneme endphoneme




WAV(ustop/k_unasp, 70) WAV(ustop/k_unasp, 70)
endphoneme endphoneme



phoneme r
import_phoneme base/R2
endphoneme


+ 14
- 1
phsource/ph_polish View File





phoneme dz phoneme dz
import_phoneme consonants/dz
CALL consonants/dz
voicingswitch ts voicingswitch ts
ipa dʑ
endphoneme

phoneme ts;
CALL base/tS;
voicingswitch dz;
ipa tɕ
endphoneme


phoneme dz;
import_phoneme base/dZ;
voicingswitch ts;
endphoneme endphoneme





+ 3
- 0
phsource/ph_pt_brazil View File

phoneme U phoneme U
vowel starttype #u endtype #u vowel starttype #u endtype #u
length 140 length 140
IF thisPh(isWordEnd) AND nextPh(isVowel) THEN
ChangePhoneme(w)
ENDIF
FMT(vowel/uu_bck) FMT(vowel/uu_bck)
endphoneme endphoneme



+ 3
- 3
phsource/ph_tamil View File



phoneme aI phoneme aI
vowel starttype #a endtype #i vowel starttype #a endtype #i
length 230
length 280
FMT(vdiph/ai_8) FMT(vdiph/ai_8)
endphoneme endphoneme


phoneme aU phoneme aU
vowel starttype #a endtype #u vowel starttype #a endtype #u
length 200
FMT(vdiph/aau_3)
length 260
FMT(vdiph/au)
endphoneme endphoneme





+ 7
- 2
phsource/phonemes View File

ChangePhoneme(l) ChangePhoneme(l)
ENDIF ENDIF


CALL vowelstart_l

PrevVowelEndings PrevVowelEndings
VowelEnding(l/L2_@L, -60) VowelEnding(l/L2_@L, -60)
VowelEnding(l/L2_aL, -50) VowelEnding(l/L2_aL, -50)
ENDIF ENDIF


IF nextPh(isPause2) THEN IF nextPh(isPause2) THEN
FMT(voc/z_) addWav(ufric/s_, 85)
FMT(voc/z_) addWav(ufric/s_, 70)
ENDIF ENDIF
FMT(voc/z) addWav(ufric/s_)
FMT(voc/z) addWav(ufric/s_, 85)
endphoneme endphoneme






phonemetable az tr phonemetable az tr
include ph_azerbaijani include ph_azerbaijani

phonemetable ak base
include ph_akan

+ 24
- 14
platforms/big_endian/espeak-phoneme-data.c View File





// 13.02.10 jonsd: Changed for eSpeak version 1.43 // 13.02.10 jonsd: Changed for eSpeak version 1.43
// 13.08.10 jonsd: Added Q lines. Use Address to set the displacement in phondata file.




#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <ctype.h>
#include <sys/types.h> #include <sys/types.h>


#if defined(BYTE_ORDER) && BYTE_ORDER == BIG_ENDIAN #if defined(BYTE_ORDER) && BYTE_ORDER == BIG_ENDIAN


void usage (const char *program_name); void usage (const char *program_name);


int xread; // prevent compiler warning from fread()




int main (int argc, char *argv[]) int main (int argc, char *argv[])
const char *manifest) const char *manifest)
{//========================================================== {//==========================================================
FILE *in, *mfest, *out; FILE *in, *mfest, *out;
int displ;
char line[1024]; char line[1024];
unsigned char buf_4[4]; unsigned char buf_4[4];


exit (1); exit (1);
} }


fread (buf_4, 4, 1, in);
fwrite (buf_4, 4, 1, out);
xread = fread(buf_4, 4, 1, in);
fwrite(buf_4, 4, 1, out);

while (fgets (line, sizeof(line), mfest))
{
if(!isupper(line[0])) continue;

sscanf(&line[2],"%x",&displ);
fseek(in, displ, SEEK_SET);


while (fgets (line, 1024, mfest)) {
if (line[0] == 'S') { if (line[0] == 'S') {
SPECT_SEQ buf_spect; SPECT_SEQ buf_spect;
size_t ix; size_t ix;
int n; int n;


fread (&buf_spect.length, 2, 1, in);
fread (&buf_spect.n_frames, 1, 1, in);
xread = fread (&buf_spect.length, 2, 1, in);
xread = fread (&buf_spect.n_frames, 1, 1, in);
fseek (in, -3, SEEK_CUR); fseek (in, -3, SEEK_CUR);


ix = (char *)(&buf_spect.frame[buf_spect.n_frames]) - ix = (char *)(&buf_spect.frame[buf_spect.n_frames]) -
(char *)(&buf_spect); (char *)(&buf_spect);
ix = (ix+3) & 0xfffc; ix = (ix+3) & 0xfffc;


fread (&buf_spect, ix, 1, in);
xread = fread (&buf_spect, ix, 1, in);


buf_spect.length = (short) SWAP_USHORT (buf_spect.length); buf_spect.length = (short) SWAP_USHORT (buf_spect.length);
for (n = 0; n < buf_spect.n_frames; n++) { for (n = 0; n < buf_spect.n_frames; n++) {
int length; int length;
char *wave_data; char *wave_data;


fread (buf_4, 4, 1, in);
xread = fread (buf_4, 4, 1, in);
fwrite (buf_4, 4, 1, out); fwrite (buf_4, 4, 1, out);


length = buf_4[1] * 256 + buf_4[0]; length = buf_4[1] * 256 + buf_4[0];
exit (1); exit (1);
} }


fread (wave_data, 1, length, in);
xread = fread (wave_data, 1, length, in);
fwrite (wave_data, 1, length, out); fwrite (wave_data, 1, length, out);


pos = ftell (in); pos = ftell (in);
else if (line[0] == 'E') { else if (line[0] == 'E') {
char env_buf[128]; char env_buf[128];


fread (env_buf, 1, 128, in);
xread = fread (env_buf, 1, 128, in);
fwrite (env_buf, 1, 128, out); fwrite (env_buf, 1, 128, out);
} }
} }
exit (1); exit (1);
} }


fread (buf_4, 4, 1, in); // skip first 4 bytes
xread = fread (buf_4, 4, 1, in); // skip first 4 bytes
fwrite(buf_4, 4, 1, out); fwrite(buf_4, 4, 1, out);


while (! feof (in)) { while (! feof (in)) {
exit (1); exit (1);
} }


fread (buf_8, 4, 1, in);
xread = fread (buf_8, 4, 1, in);
fwrite (buf_8, 4, 1, out); fwrite (buf_8, 4, 1, out);
n_phoneme_tables = buf_8[0]; n_phoneme_tables = buf_8[0];


int n_phonemes, j; int n_phonemes, j;
char tab_name[N_PHONEME_TAB_NAME]; char tab_name[N_PHONEME_TAB_NAME];


fread (buf_8, 8, 1, in);
xread = fread (buf_8, 8, 1, in);
fwrite (buf_8, 8, 1, out); fwrite (buf_8, 8, 1, out);


n_phonemes = buf_8[0]; n_phonemes = buf_8[0];


fread (tab_name, N_PHONEME_TAB_NAME, 1, in);
xread = fread (tab_name, N_PHONEME_TAB_NAME, 1, in);
fwrite (tab_name, N_PHONEME_TAB_NAME, 1, out); fwrite (tab_name, N_PHONEME_TAB_NAME, 1, out);


for (j = 0; j < n_phonemes; j++) { for (j = 0; j < n_phonemes; j++) {
PHONEME_TAB table; PHONEME_TAB table;


fread (&table, sizeof (PHONEME_TAB), 1, in);
xread = fread (&table, sizeof (PHONEME_TAB), 1, in);


table.mnemonic = SWAP_UINT (table.mnemonic); table.mnemonic = SWAP_UINT (table.mnemonic);
table.phflags = SWAP_UINT (table.phflags); table.phflags = SWAP_UINT (table.phflags);

+ 15
- 9
platforms/windows/make_espeak.iss View File

[Setup] [Setup]
AppName=eSpeak AppName=eSpeak
AppVerName=eSpeak version 1.43.24
AppVerName=eSpeak version 1.44.01
AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details).
WindowVisible=yes WindowVisible=yes
Source: "License.txt"; DestDir: "{app}"; Source: "License.txt"; DestDir: "{app}";
[Registry] [Registry]
;Root: HKLM; Subkey: "Software\Microsoft\Speech\Voices\Tokens\eSpeak_5"; Flags: deletekey uninsdeletekey
Root: HKLM; Subkey: "Software\Microsoft\Speech\PhoneConverters\Tokens\eSpeak"; Flags: deletekey uninsdeletekey Root: HKLM; Subkey: "Software\Microsoft\Speech\PhoneConverters\Tokens\eSpeak"; Flags: deletekey uninsdeletekey
lang_main := language and $3ff; lang_main := language and $3ff;
Result := 'en'; Result := 'en';
// translation from microsoft codes to language codes
// Translation from microsoft codes to language codes
// Used to set default voices for inatallation.
case lang_main of case lang_main of
//$02: Result := 'bg';
$03: Result := 'ca'; $03: Result := 'ca';
$04: Result := 'zh'; $04: Result := 'zh';
$05: Result := 'cs'; $05: Result := 'cs';
$0e: Result := 'hu'; $0e: Result := 'hu';
$0f: Result := 'is'; $0f: Result := 'is';
$10: Result := 'it'; $10: Result := 'it';
$12: Result := 'ko';
//$12: Result := 'ko';
$13: Result := 'nl'; $13: Result := 'nl';
$14: Result := 'no'; $14: Result := 'no';
$15: Result := 'pl'; $15: Result := 'pl';
$26: Result := 'lv'; $26: Result := 'lv';
$2a: Result := 'vi'; $2a: Result := 'vi';
$2b: Result := 'hy'; $2b: Result := 'hy';
$2d: Result := 'eu';
//$2c: Result := 'az';
//$2d: Result := 'eu';
$2f: Result := 'mk'; $2f: Result := 'mk';
$36: Result := 'af'; $36: Result := 'af';
$39: Result := 'hi'; $39: Result := 'hi';
$41: Result := 'sw'; $41: Result := 'sw';
$49: Result := 'ta'; $49: Result := 'ta';
$4b: Result := 'kn';
$50: Result := 'mn';
//$4b: Result := 'kn';
//$50: Result := 'mn';
$52: Result := 'cy'; $52: Result := 'cy';
$61: Result := 'ne';
$87: Result := 'rw';
//$61: Result := 'ne';
//$87: Result := 'rw';
end; end;
// is there a match on the full language code? // is there a match on the full language code?
lang1 := Copy(voice,8,6); // eg. mb-de4-en, return 'en' lang1 := Copy(voice,8,6); // eg. mb-de4-en, return 'en'
end; end;
// Used to set the correct Microsoft language code in the registry
// when a SAPI5 voice is installed.
case lang1 of case lang1 of
'af': value := $436; 'af': value := $436;
'az': value := $42c;
'bg': value := $402;
'bs': value := $41a; // should be $141a but Jaws crashes on startup 'bs': value := $41a; // should be $141a but Jaws crashes on startup
'ca': value := $403; 'ca': value := $403;
'cs': value := $405; 'cs': value := $405;

+ 4
- 1
platforms/windows/make_espeakedit.iss View File

[Setup] [Setup]
AppName=eSpeakEdit AppName=eSpeakEdit
AppVerName=eSpeakEdit version 1.43.24
AppVerName=eSpeakEdit version 1.44.01
DefaultDirName={pf}\eSpeak DefaultDirName={pf}\eSpeak
DefaultGroupName=eSpeak DefaultGroupName=eSpeak
OutputBaseFilename=setup_espeakedit OutputBaseFilename=setup_espeakedit
Name: "{group}\espeakedit"; Filename: "{app}\espeakedit.exe"; WorkingDir: "{app}"; Flags: runmaximized Name: "{group}\espeakedit"; Filename: "{app}\espeakedit.exe"; WorkingDir: "{app}"; Flags: runmaximized
Name: "{group}\Uninstall espeakedit"; Filename: "{uninstallexe}" Name: "{group}\Uninstall espeakedit"; Filename: "{uninstallexe}"
[InstallDelete]
Type: filesandordirs; Name: "{app}\phsource\vowelcharts"
[Files] [Files]
Source: "espeakedit.exe"; DestDir: "{app}" Source: "espeakedit.exe"; DestDir: "{app}"

+ 3
- 2
platforms/windows/windows_sapi/ttsengobj.cpp View File

// return the events // return the events
for(event=events; (event->type != 0) && (n_Events < N_EVENTS); event++) for(event=events; (event->type != 0) && (n_Events < N_EVENTS); event++)
{ {
audio_latest = event->audio_position + audio_offset; audio_latest = event->audio_position + audio_offset;
if((event->type == espeakEVENT_WORD) && (event->length > 0)) if((event->type == espeakEVENT_WORD) && (event->length > 0))
int rate; int rate;
static int rate_table[21] = {80,100,115,124,133,142,151,159,168,174,180,
187,196,208,220,240,270,300,335,369,390 };
static int rate_table[21] = {80,110,124,133,142,151,159,168,174,180,187,
196,208,220,240,270,300,335,369,390,450 };
rate = new_rate + master_rate; rate = new_rate + master_rate;
if(rate < -10) rate = -10; if(rate < -10) rate = -10;

+ 5
- 5
platforms/windows/windows_sapi/version.rc2 View File

// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,42,00
PRODUCTVERSION 1,0,42,00
FILEVERSION 1,0,44,00
PRODUCTVERSION 1,0,44,00
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
VALUE "Comments", "\0" VALUE "Comments", "\0"
VALUE "CompanyName", "Jonathan Duddington\0" VALUE "CompanyName", "Jonathan Duddington\0"
VALUE "FileDescription", "Text to Speech\0" VALUE "FileDescription", "Text to Speech\0"
VALUE "FileVersion", "1, 0,42,00\0"
VALUE "InternalName", "espeak1.42\0"
VALUE "FileVersion", "1, 0,44,00\0"
VALUE "InternalName", "espeak1.44\0"
VALUE "LegalCopyright", "Copyright (c) Jonathan Duddington\0" VALUE "LegalCopyright", "Copyright (c) Jonathan Duddington\0"
VALUE "LegalTrademarks", "\0" VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "espeak_sapi.dll\0" VALUE "OriginalFilename", "espeak_sapi.dll\0"
VALUE "PrivateBuild", "\0" VALUE "PrivateBuild", "\0"
VALUE "ProductName", "espeak TTS\0" VALUE "ProductName", "espeak TTS\0"
VALUE "ProductVersion", "1, 0, 42, 00\0"
VALUE "ProductVersion", "1, 0, 44, 00\0"
VALUE "SpecialBuild", "\0" VALUE "SpecialBuild", "\0"
END END
END END

+ 9
- 6
src/compiledata.cpp View File

displ = ftell(f_phdata); displ = ftell(f_phdata);


seq_out.n_frames=0; seq_out.n_frames=0;
seq_out.flags=0;
seq_out.sqflags=0;
seq_out.length_total=0; seq_out.length_total=0;


total = 0; total = 0;
if(klatt_flag) if(klatt_flag)
{ {
seqk_out.n_frames = seq_out.n_frames; seqk_out.n_frames = seq_out.n_frames;
seqk_out.flags = seq_out.flags;
seqk_out.sqflags = seq_out.sqflags;
seqk_out.length_total = seq_out.length_total; seqk_out.length_total = seq_out.length_total;


ix = (char *)(&seqk_out.frame[seqk_out.n_frames]) - (char *)(&seqk_out); ix = (char *)(&seqk_out.frame[seqk_out.n_frames]) - (char *)(&seqk_out);
displ = ftell(f_phdata); displ = ftell(f_phdata);


fseek(f,12,SEEK_SET); fseek(f,12,SEEK_SET);
fread(buf,1,128,f);
fwrite(buf,1,128,f_phdata);
if(fread(buf,128,1,f) == 0)
{
error("Failed to read envelope: %s",fname);
}
fwrite(buf,128,1,f_phdata);


if(n_envelopes < N_ENVELOPES) if(n_envelopes < N_ENVELOPES)
{ {
wxFileName filename = wxFileName(filepath); wxFileName filename = wxFileName(filepath);
strcpy(mbrola_voice,filename.GetName().mb_str(wxConvLocal)); strcpy(mbrola_voice,filename.GetName().mb_str(wxConvLocal));
sprintf(buf,"%s/mbrola_ph/%s_phtrans",path_home,mbrola_voice); sprintf(buf,"%s/mbrola_ph/%s_phtrans",path_home,mbrola_voice);
if((f_out = fopen(buf,"w")) == NULL)
if((f_out = fopen(buf,"wb")) == NULL)
{ {
wxLogError(_T("Can't write to: ")+wxString(buf,wxConvLocal)); wxLogError(_T("Can't write to: ")+wxString(buf,wxConvLocal));
return; return;
PITCHfall, 64, 8, PITCHfall, 64, 8,
PITCHfall, 70, 18, 24, 12, PITCHfall, 70, 18, 24, 12,
PITCHfall, 70, 18, 24, 12, 0, PITCHfall, 70, 18, 24, 12, 0,
{0,0,0,0,0,0,0,0,0,0}
{0,0,0,0,0,0,0,0}, 0
}; };


#define N_TUNE_NAMES 100 #define N_TUNE_NAMES 100

+ 6
- 4
src/dictionary.cpp View File

} }


tr->data_dictlist = Alloc(size); tr->data_dictlist = Alloc(size);
fread(tr->data_dictlist,size,1,f);
size = fread(tr->data_dictlist,1,size,f);
fclose(f); fclose(f);




0x252,0x31,0x32,0x25c,0x34,0x35,0x36,0x37,0x275,0x39,0x2d0,0x2b2,0x3c,0x3d,0x3e,0x294, 0x252,0x31,0x32,0x25c,0x34,0x35,0x36,0x37,0x275,0x39,0x2d0,0x2b2,0x3c,0x3d,0x3e,0x294,
0x259,0x251,0x3b2,0xe7,0xf0,0x25b,0x46,0x262,0x127,0x26a,0x25f,0x4b,0x4c,0x271,0x14b,0x254, 0x259,0x251,0x3b2,0xe7,0xf0,0x25b,0x46,0x262,0x127,0x26a,0x25f,0x4b,0x4c,0x271,0x14b,0x254,
0x3a6,0x263,0x280,0x283,0x3b8,0x28a,0x28c,0x153,0x3c7,0xf8,0x292,0x32a,0x5c,0x5d,0x5e,0x5f, 0x3a6,0x263,0x280,0x283,0x3b8,0x28a,0x28c,0x153,0x3c7,0xf8,0x292,0x32a,0x5c,0x5d,0x5e,0x5f,
0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x261,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x303,0x7f 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x303,0x7f
}; };


} }
*output++ = 0; *output++ = 0;


return;
} /* end of SetWordStress */ } /* end of SetWordStress */




if(match1.points > 0) if(match1.points > 0)
{ {
if(word_flags & FLAG_UNPRON_TEST)
return(match1.end_type | 1);

if((match1.phonemes[0] == phonSWITCH) && ((word_flags & FLAG_DONT_SWITCH_TRANSLATOR)==0)) if((match1.phonemes[0] == phonSWITCH) && ((word_flags & FLAG_DONT_SWITCH_TRANSLATOR)==0))
{ {
// an instruction to switch language, return immediately so we can re-translate // an instruction to switch language, return immediately so we can re-translate
return(0); return(0);
} }


if(word_flags & FLAG_UNPRON_TEST)
return(match1.end_type | 1);
match1.end_type &= ~SUFX_UNPRON; match1.end_type &= ~SUFX_UNPRON;


if((match1.end_type != 0) && (end_phonemes != NULL)) if((match1.end_type != 0) && (end_phonemes != NULL))

+ 3
- 1
src/espeakedit.cpp View File



MyFrame::~MyFrame(void) MyFrame::~MyFrame(void)
{//==================== {//====================
myframe->Show(false);
myframe->Iconize(false); // os=Windows, get the non-iconsized size
myframe->GetPosition(&frame_x, &frame_y); myframe->GetPosition(&frame_x, &frame_y);
myframe->GetSize(&frame_w, &frame_h); myframe->GetSize(&frame_w, &frame_h);
} }
if(msg != NULL) if(msg != NULL)
{ {
f = fopen(fname,"r"); f = fopen(fname,"r");
fread(msg,len,1,f);
len = fread(msg,1, len, f);
fclose(f); fclose(f);
msg[len] = 0; msg[len] = 0;
msg_string = wxString(msg,wxConvUTF8); msg_string = wxString(msg,wxConvUTF8);

+ 5
- 0
src/mbrowrap.cpp View File

* GNU General Public License for more details. * GNU General Public License for more details.
*/ */


#include "speech.h"
#ifdef INCLUDE_MBROLA

#include <stdarg.h> #include <stdarg.h>
#include <stdio.h> #include <stdio.h>
#include <unistd.h> #include <unistd.h>
{ {
mbr_errorbuf[0] = 0; mbr_errorbuf[0] = 0;
} }

#endif // INCLUDE_MBROLA

+ 12
- 1
src/numbers.cpp View File

int hundreds; int hundreds;
int tensunits; int tensunits;
int x; int x;
int ix;
int exact; int exact;
int ordinal; int ordinal;
char string[12]; // for looking up entries in **_list char string[12]; // for looking up entries in **_list
ph_hundred_and[0] = 0; // don't put 'and' after 'hundred' if there's 'and' between tens and units ph_hundred_and[0] = 0; // don't put 'and' after 'hundred' if there's 'and' between tens and units
} }
} }
else
{
if(ph_ordinal2[0] != 0)
{
ix = strlen(buf1);
if((ix > 0) && (buf1[ix-1] == phonPAUSE_SHORT))
buf1[ix-1] = 0; // remove pause before addding ordinal suffix
strcpy(buf2, ph_ordinal2);
}
}


sprintf(ph_out,"%s%s%s",buf1,ph_hundred_and,buf2); sprintf(ph_out,"%s%s%s",buf1,ph_hundred_and,buf2);




int TranslateNumber(Translator *tr, char *word1, char *ph_out, unsigned int *flags, WORD_TAB *wtab, int control) int TranslateNumber(Translator *tr, char *word1, char *ph_out, unsigned int *flags, WORD_TAB *wtab, int control)
{//============================================================================================================= {//=============================================================================================================
if(option_sayas == SAYAS_DIGITS1)
if((option_sayas == SAYAS_DIGITS1) || (wtab[0].flags & FLAG_INDIVIDUAL_DIGITS))
return(0); // speak digits individually return(0); // speak digits individually


if(tr->langopts.numbers != 0) if(tr->langopts.numbers != 0)

+ 5
- 6
src/readclause.cpp View File

fclose(f); fclose(f);
return(4); return(4);
} }
fread(p,length,1,f);
length = fread(p,1,length,f);
fclose(f); fclose(f);
remove(fname_temp); remove(fname_temp);


else else
if(punct_count < 4) if(punct_count < 4)
{ {
sprintf(buf,"\001+15S");
sprintf(buf,"\001+10S");
while(punct_count-- > 0) while(punct_count-- > 0)
{ {
sprintf(buf2," %s",punctname); sprintf(buf2," %s",punctname);
strcat(buf, buf2); strcat(buf, buf2);
} }
sprintf(buf2," \001-15S");
sprintf(buf2," \001-10S");
strcat(buf, buf2); strcat(buf, buf2);
} }
else else
{"x-slow",60}, {"x-slow",60},
{"slow",80}, {"slow",80},
{"medium",100}, {"medium",100},
{"fast",120},
{"x-fast",150},
{"fast",125},
{"x-fast",160},
{NULL, -1}}; {NULL, -1}};


static const MNEM_TAB mnem_pitch[] = { static const MNEM_TAB mnem_pitch[] = {
int stressed_word = 0; int stressed_word = 0;
int end_clause_after_tag = 0; int end_clause_after_tag = 0;
int end_clause_index = 0; int end_clause_index = 0;
const char *p;
wchar_t xml_buf[N_XML_BUF+1]; wchar_t xml_buf[N_XML_BUF+1];


#define N_XML_BUF2 20 #define N_XML_BUF2 20

+ 1
- 1
src/setlengths.cpp View File

if(wpm > 1000) if(wpm > 1000)
{ {
// TESTING // TESTING
test = wpm / 1000;
// test = wpm / 1000;
wpm = wpm % 1000; wpm = wpm % 1000;
} }
#endif #endif

+ 12
- 3
src/speak_lib.h View File

#include <stdio.h> #include <stdio.h>
#include <stddef.h> #include <stddef.h>


#define ESPEAK_API_REVISION 5
#define ESPEAK_API_REVISION 6
/* /*
Revision 2 Revision 2
Added parameter "options" to eSpeakInitialize() Added parameter "options" to eSpeakInitialize()


Revision 5 Revision 5
Added espeakCHARS_16BIT Added espeakCHARS_16BIT

Revision 6
Added macros: espeakRATE_MINIMUM, espeakRATE_MAXIMUM, espeakRATE_NORMAL
*/ */
/********************/ /********************/
/* Initialization */ /* Initialization */
/********************/ /********************/


// values for 'value' in espeak_SetParameter(espeakRATE, value, 0), nominally in words-per-minute
#define espeakRATE_MINIMUM 80
#define espeakRATE_MAXIMUM 450
#define espeakRATE_NORMAL 175



typedef enum { typedef enum {
espeakEVENT_LIST_TERMINATED = 0, // Retrieval mode: terminates the event list. espeakEVENT_LIST_TERMINATED = 0, // Retrieval mode: terminates the event list.
relative=1 Sets a relative value of the parameter. relative=1 Sets a relative value of the parameter.


parameter: parameter:
espeakRATE: speaking speed in word per minute.
espeakRATE: speaking speed in word per minute. Values 80 to 450.


espeakVOLUME: volume in range 0-100 0=silence
espeakVOLUME: volume in range 0-200 or more.
0=silence, 100=normal full volume, greater values may produce amplitude compression or distortion


espeakPITCH: base pitch, range 0-100. 50=normal espeakPITCH: base pitch, range 0-100. 50=normal



+ 1
- 0
src/speech.h View File



// conditional compilation options // conditional compilation options
#define INCLUDE_KLATT #define INCLUDE_KLATT
#define INCLUDE_MBROLA


#if defined(BYTE_ORDER) && BYTE_ORDER == BIG_ENDIAN #if defined(BYTE_ORDER) && BYTE_ORDER == BIG_ENDIAN
#define ARCH_BIG #define ARCH_BIG

+ 39
- 3
src/synth_mbrola.cpp View File

* <http://www.gnu.org/licenses/>. * * <http://www.gnu.org/licenses/>. *
***************************************************************************/ ***************************************************************************/




#include "StdAfx.h" #include "StdAfx.h"


#include <stdio.h> #include <stdio.h>
#include "translate.h" #include "translate.h"
#include "voice.h" #include "voice.h"


int option_mbrola_phonemes;

#ifdef INCLUDE_MBROLA

extern int Read4Bytes(FILE *f); extern int Read4Bytes(FILE *f);
extern void SetPitch2(voice_t *voice, int pitch1, int pitch2, int *pitch_base, int *pitch_range); extern void SetPitch2(voice_t *voice, int pitch1, int pitch2, int *pitch_base, int *pitch_range);
extern unsigned char *outbuf; extern unsigned char *outbuf;


static MBROLA_TAB *mbrola_tab = NULL; static MBROLA_TAB *mbrola_tab = NULL;
static int mbrola_control = 0; static int mbrola_control = 0;
int option_mbrola_phonemes;




espeak_ERROR LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int srate) espeak_ERROR LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int srate)
// mbrola voice file not found, look in /usr/share // mbrola voice file not found, look in /usr/share
sprintf(path,"/usr/share/mbrola/%s",mbrola_voice); sprintf(path,"/usr/share/mbrola/%s",mbrola_voice);
} }
if(GetFileLength(path) <= 0)
{
// mbrola voice file not found, look in /usr/share
sprintf(path,"/usr/share/mbrola/voices/%s",mbrola_voice);
}
#endif #endif
#ifdef PLATFORM_WINDOWS #ifdef PLATFORM_WINDOWS
if(load_MBR() == FALSE) // load mbrola.dll if(load_MBR() == FALSE) // load mbrola.dll
// read eSpeak's mbrola phoneme translation data, eg. en1_phtrans // read eSpeak's mbrola phoneme translation data, eg. en1_phtrans
sprintf(path,"%s/mbrola_ph/%s",path_home,phtrans); sprintf(path,"%s/mbrola_ph/%s",path_home,phtrans);
size = GetFileLength(path); size = GetFileLength(path);
if((f_in = fopen(path,"r")) == NULL) {
if((f_in = fopen(path,"rb")) == NULL) {
close_MBR(); close_MBR();
return(EE_NOT_FOUND); return(EE_NOT_FOUND);
} }
{ {
*pw++ = Read4Bytes(f_in); *pw++ = Read4Bytes(f_in);
} }
fread(mbrola_tab,size,1,f_in);
size = fread(mbrola_tab,1,size,f_in);
fclose(f_in); fclose(f_in);


setVolumeRatio_MBR((float)(mbrola_control & 0xff) /16.0f); setVolumeRatio_MBR((float)(mbrola_control & 0xff) /16.0f);


reset_MBR(); reset_MBR();
} }

#else // INCLUDE_MBROLA

// mbrola interface is not compiled, provide dummy functions.

espeak_ERROR LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int srate)
{
return(EE_INTERNAL_ERROR);
}

int MbrolaGenerate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
{
return(0);
}

int MbrolaFill(int length, int resume)
{
return(0);
}

void MbrolaReset(void)
{
}


#endif // INCLUDE_MBROLA

+ 2
- 2
src/synthdata.cpp View File

#include "translate.h" #include "translate.h"
#include "wave.h" #include "wave.h"


const char *version_string = "1.43.63 02.Aug.10";
const int version_phdata = 0x014361;
const char *version_string = "1.44.04 14.Sep.10";
const int version_phdata = 0x014404;


int option_device_number = -1; int option_device_number = -1;
FILE *f_logespeak = NULL; FILE *f_logespeak = NULL;

+ 7
- 2
src/synthesize.cpp View File

int command; int command;


do { do {
word = embedded_list[(*embix)++];
word = embedded_list[*embix];
value = word >> 8; value = word >> 8;
command = word & 0x7f; command = word & 0x7f;


if(command == 0)
return; // error

(*embix)++;

switch(command & 0x1f) switch(command & 0x1f)
{ {
case EMBED_S: // speed case EMBED_S: // speed
DoSpect2(ph, 0, &fmtp, p, 0); DoSpect2(ph, 0, &fmtp, p, 0);
if(p->synthflags & SFLAG_LENGTHEN) if(p->synthflags & SFLAG_LENGTHEN)
{ {
DoPause(20,0);
DoPause(25,1);
DoSpect2(ph, 0, &fmtp, p, 0); DoSpect2(ph, 0, &fmtp, p, 0);
} }
} }

+ 8
- 30
src/synthesize.h View File







typedef struct { // 44 bytes
typedef struct { // 64 bytes
short frflags; short frflags;
short ffreq[7]; short ffreq[7];
unsigned char length; unsigned char length;
unsigned char klattp2[5]; // continuation of klattp[], Avp, Fric, FricBP, Turb unsigned char klattp2[5]; // continuation of klattp[], Avp, Fric, FricBP, Turb
unsigned char klatt_ap[7]; // Klatt parallel amplitude unsigned char klatt_ap[7]; // Klatt parallel amplitude
unsigned char klatt_bp[7]; // Klatt parallel bandwidth /2 unsigned char klatt_bp[7]; // Klatt parallel bandwidth /2
unsigned char spare; // pad to multiple of 4 bytes
} frame_t; // with extra Klatt parameters for parallel resonators } frame_t; // with extra Klatt parameters for parallel resonators



typedef struct { // 44 bytes typedef struct { // 44 bytes
short frflags; short frflags;
short ffreq[7]; short ffreq[7];
unsigned char fright[3]; // width/4 f0-2 unsigned char fright[3]; // width/4 f0-2
unsigned char bw[4]; // Klatt bandwidth BNZ /2, f1,f2,f3 unsigned char bw[4]; // Klatt bandwidth BNZ /2, f1,f2,f3
unsigned char klattp[5]; // AV, FNZ, Tilt, Aspr, Skew unsigned char klattp[5]; // AV, FNZ, Tilt, Aspr, Skew
} frame_t2; // TESTING


#ifdef deleted
typedef struct {
short frflags;
unsigned char length;
unsigned char rms;
short ffreq[9];
unsigned char fheight[9];
unsigned char fwidth[6]; // width/4
unsigned char fright[6]; // width/4
unsigned char fwidth6, fright6;
unsigned char klattp[N_KLATTP];
} frame_t;

typedef struct { // 43 bytes
short frflags;
unsigned char length;
unsigned char rms;
short ffreq[9];
unsigned char fheight[9];
unsigned char fwidth[6]; // width/4
unsigned char fright[6]; // width/4
} frame_t2; // the original, without Klatt additions, used for file "phondata"
#endif
} frame_t2; // without the extra Klatt parameters






typedef struct { typedef struct {
short length_total; // not used short length_total; // not used
unsigned char n_frames; unsigned char n_frames;
unsigned char flags;
unsigned char sqflags;
frame_t2 frame[N_SEQ_FRAMES]; // max. frames in a spectrum sequence frame_t2 frame[N_SEQ_FRAMES]; // max. frames in a spectrum sequence
} SPECT_SEQ; // sequence of espeak formant frames } SPECT_SEQ; // sequence of espeak formant frames


typedef struct { typedef struct {
short length_total; // not used short length_total; // not used
unsigned char n_frames; unsigned char n_frames;
unsigned char flags;
unsigned char sqflags;
frame_t frame[N_SEQ_FRAMES]; // max. frames in a spectrum sequence frame_t frame[N_SEQ_FRAMES]; // max. frames in a spectrum sequence
} SPECT_SEQK; // sequence of klatt formants frames } SPECT_SEQK; // sequence of klatt formants frames


unsigned char split_tail_end; unsigned char split_tail_end;
unsigned char split_tune; unsigned char split_tune;
unsigned char spare[10];
unsigned char spare[8];
int spare2; // the struct length should be a multiple of 4 bytes
} TUNE; } TUNE;


extern int n_tunes; extern int n_tunes;

+ 13
- 12
src/tr_languages.cpp View File

tr->data_dictrules = NULL; // language_1 translation rules file tr->data_dictrules = NULL; // language_1 translation rules file
tr->data_dictlist = NULL; // language_2 dictionary lookup file tr->data_dictlist = NULL; // language_2 dictionary lookup file


tr->transpose_min = 0;
tr->transpose_min = 'a';
tr->transpose_max = 'z';
tr->frequent_pairs = NULL; tr->frequent_pairs = NULL;


// only need lower case // only need lower case
tr->langopts.replace_chars = NULL; tr->langopts.replace_chars = NULL;
tr->langopts.ascii_language = ""; // Non-Latin alphabet languages, use this language to speak Latin words, default is English tr->langopts.ascii_language = ""; // Non-Latin alphabet languages, use this language to speak Latin words, default is English



SetLengthMods(tr,201); SetLengthMods(tr,201);
// tr->langopts.length_mods = length_mods_en; // tr->langopts.length_mods = length_mods_en;
// tr->langopts.length_mods0 = length_mods_en0; // tr->langopts.length_mods0 = length_mods_en0;
tr->langopts.thousands_sep = ','; tr->langopts.thousands_sep = ',';
tr->langopts.decimal_sep = '.'; tr->langopts.decimal_sep = '.';
tr->langopts.break_numbers = BREAK_THOUSANDS; // 1000, 1000,000 1,000,000 etc tr->langopts.break_numbers = BREAK_THOUSANDS; // 1000, 1000,000 1,000,000 etc
tr->langopts.max_digits = 14;


memcpy(tr->punct_to_tone, punctuation_to_tone, sizeof(tr->punct_to_tone)); memcpy(tr->punct_to_tone, punctuation_to_tone, sizeof(tr->punct_to_tone));




tr->letter_bits_offset = OFFSET_CYRILLIC; tr->letter_bits_offset = OFFSET_CYRILLIC;
memset(tr->letter_bits,0,sizeof(tr->letter_bits)); memset(tr->letter_bits,0,sizeof(tr->letter_bits));
SetLetterBits(tr,0,ru_vowels);
SetLetterBits(tr,LETTERGP_A,ru_vowels);
SetLetterBits(tr,1,ru_soft); SetLetterBits(tr,1,ru_soft);
SetLetterBits(tr,2,ru_consonants); SetLetterBits(tr,2,ru_consonants);
SetLetterBits(tr,3,ru_hard); SetLetterBits(tr,3,ru_hard);
SetLetterBits(tr,4,ru_nothard); SetLetterBits(tr,4,ru_nothard);
SetLetterBits(tr,5,ru_voiced); SetLetterBits(tr,5,ru_voiced);
SetLetterBits(tr,6,ru_ivowels); SetLetterBits(tr,6,ru_ivowels);
SetLetterBits(tr,7,ru_vowels);
SetLetterBits(tr,LETTERGP_VOWEL2,ru_vowels);
} // end of SetCyrillicLetters } // end of SetCyrillicLetters




static const short stress_lengths_da[8] = {160,140, 200,200, 0,0, 220,230}; static const short stress_lengths_da[8] = {160,140, 200,200, 0,0, 220,230};
SetupTranslator(tr,stress_lengths_da,NULL); SetupTranslator(tr,stress_lengths_da,NULL);


tr->transpose_min = 'a';
tr->transpose_max = 'z';

tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.stress_rule = STRESSPOSN_1L;
tr->langopts.param[LOPT_PREFIXES] = 1;
SetLetterVowel(tr,'y'); SetLetterVowel(tr,'y');
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_SWAP_TENS | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_ORDINAL_DOT | NUM_1900 | NUM_ROMAN | NUM_ROMAN_CAPITALS | NUM_ROMAN_ORDINAL; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_SWAP_TENS | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_ORDINAL_DOT | NUM_1900 | NUM_ROMAN | NUM_ROMAN_CAPITALS | NUM_ROMAN_ORDINAL;
} }
static const short stress_lengths_en[8] = {182,140, 220,220, 0,0, 248,275}; static const short stress_lengths_en[8] = {182,140, 220,220, 0,0, 248,275};
SetupTranslator(tr,stress_lengths_en,NULL); SetupTranslator(tr,stress_lengths_en,NULL);


tr->transpose_min = 'a';
tr->transpose_max = 'z';

tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.stress_rule = STRESSPOSN_1L;
tr->langopts.stress_flags = 0x08; tr->langopts.stress_flags = 0x08;
tr->langopts.numbers = NUM_HUNDRED_AND | NUM_ROMAN | NUM_1900; tr->langopts.numbers = NUM_HUNDRED_AND | NUM_ROMAN | NUM_1900;
tr->letter_bits_offset = OFFSET_GREEK; tr->letter_bits_offset = OFFSET_GREEK;
memset(tr->letter_bits,0,sizeof(tr->letter_bits)); memset(tr->letter_bits,0,sizeof(tr->letter_bits));
SetLetterBits(tr,LETTERGP_A,el_vowels); SetLetterBits(tr,LETTERGP_A,el_vowels);
SetLetterBits(tr,LETTERGP_VOWEL2,el_vowels);
SetLetterBits(tr,LETTERGP_B,el_voiceless); SetLetterBits(tr,LETTERGP_B,el_voiceless);
SetLetterBits(tr,LETTERGP_C,el_consonants); SetLetterBits(tr,LETTERGP_C,el_consonants);
SetLetterBits(tr,LETTERGP_Y,el_fvowels); // front vowels: ε η ι υ SetLetterBits(tr,LETTERGP_Y,el_fvowels); // front vowels: ε η ι υ
tr->letter_bits_offset = OFFSET_ARMENIAN; tr->letter_bits_offset = OFFSET_ARMENIAN;
memset(tr->letter_bits,0,sizeof(tr->letter_bits)); memset(tr->letter_bits,0,sizeof(tr->letter_bits));
SetLetterBits(tr,LETTERGP_A,hy_vowels); SetLetterBits(tr,LETTERGP_A,hy_vowels);
SetLetterBits(tr,LETTERGP_VOWEL2,hy_vowels);
SetLetterBits(tr,LETTERGP_C,hy_consonants); SetLetterBits(tr,LETTERGP_C,hy_consonants);
tr->langopts.max_initial_consonants = 6; tr->langopts.max_initial_consonants = 6;
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED;


SetupTranslator(tr,stress_lengths_mk,stress_amps_mk); SetupTranslator(tr,stress_lengths_mk,stress_amps_mk);
tr->charset_a0 = charsets[5]; // ISO-8859-5 tr->charset_a0 = charsets[5]; // ISO-8859-5
tr->letter_groups[0] = vowels_cyrillic;
tr->letter_groups[0] = tr->letter_groups[7] = vowels_cyrillic;


tr->langopts.stress_rule = STRESSPOSN_3R; // antipenultimate tr->langopts.stress_rule = STRESSPOSN_3R; // antipenultimate
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_DFRACTION_2; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_DFRACTION_2;
tr->langopts.param[LOPT_PREFIXES] = 1; tr->langopts.param[LOPT_PREFIXES] = 1;
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x10; // devoice at end of word tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x10; // devoice at end of word
SetLetterVowel(tr,'y'); SetLetterVowel(tr,'y');
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_SWAP_TENS | NUM_OMIT_1_HUNDRED | NUM_ALLOW_SPACE | NUM_1900 | NUM_ORDINAL_DOT; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_SWAP_TENS | NUM_OMIT_1_HUNDRED | NUM_ALLOW_SPACE | NUM_1900 | NUM_ORDINAL_DOT;
tr->langopts.ordinal_indicator = "e"; tr->langopts.ordinal_indicator = "e";
memcpy(tr->stress_lengths,stress_lengths_nl,sizeof(tr->stress_lengths)); memcpy(tr->stress_lengths,stress_lengths_nl,sizeof(tr->stress_lengths));
tr->langopts.stress_flags = 0x20; tr->langopts.stress_flags = 0x20;
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x13; tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x13;
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_SWAP_TENS | NUM_OMIT_1_HUNDRED | NUM_DFRACTION_2 | NUM_ORDINAL_DOT | NUM_ROMAN; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_SWAP_TENS | NUM_OMIT_1_HUNDRED | NUM_DFRACTION_2 | NUM_ORDINAL_DOT | NUM_ROMAN;
tr->langopts.numbers2 = 0x100; // plural forms of millions etc
tr->langopts.thousands_sep = ' '; // don't allow dot as thousands separator tr->langopts.thousands_sep = ' '; // don't allow dot as thousands separator
SetLetterVowel(tr,'r'); SetLetterVowel(tr,'r');
break; break;
tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.stress_rule = STRESSPOSN_1L;
tr->langopts.word_gap = 0x21; // length of a final vowel is less dependent on the next consonant, don't merge consonant with next word tr->langopts.word_gap = 0x21; // length of a final vowel is less dependent on the next consonant, don't merge consonant with next word
// tr->langopts.vowel_pause = 4; // tr->langopts.vowel_pause = 4;
tr->letter_groups[0] = vowels_vi;
tr->letter_groups[0] = tr->letter_groups[7] = vowels_vi;
tr->langopts.tone_language = 1; // Tone language, use CalcPitches_Tone() rather than CalcPitches() tr->langopts.tone_language = 1; // Tone language, use CalcPitches_Tone() rather than CalcPitches()
tr->langopts.unstressed_wd1 = 2; tr->langopts.unstressed_wd1 = 2;
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_HUNDRED_AND | NUM_DFRACTION_4; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_HUNDRED_AND | NUM_DFRACTION_4;

+ 34
- 11
src/translate.cpp View File



int word_length; int word_length;
int ix; int ix;
char *p;
int pfix; int pfix;
int n_chars; int n_chars;
unsigned int dictionary_flags[2]; unsigned int dictionary_flags[2];
unsigned int dictionary_flags2[2]; unsigned int dictionary_flags2[2];
int end_type=0; int end_type=0;
int prefix_type=0; int prefix_type=0;
int prefix_stress;
char *wordx; char *wordx;
char phonemes[N_WORD_PHONEMES]; char phonemes[N_WORD_PHONEMES];
char *ph_limit; char *ph_limit;


while(((length < 3) && (length > 0))|| (word_length > 1 && Unpronouncable(tr,wordx))) while(((length < 3) && (length > 0))|| (word_length > 1 && Unpronouncable(tr,wordx)))
{ {
char *p;
// This word looks "unpronouncable", so speak letters individually until we // This word looks "unpronouncable", so speak letters individually until we
// find a remainder that we can pronounce. // find a remainder that we can pronounce.
emphasize_allcaps = 0; emphasize_allcaps = 0;


/* determine stress pattern for this word */ /* determine stress pattern for this word */
/******************************************/ /******************************************/
/* NOTE: this also adds a single PAUSE if the previous word ended
in a primary stress, and this one starts with one */
if(prefix_flags || (strchr(prefix_phonemes,phonSTRESS_P)!=NULL))
prefix_stress = 0;
for(p = prefix_phonemes; *p != 0; p++)
{
if((*p == phonSTRESS_P) || (*p == phonSTRESS_P2))
{
prefix_stress = *p;
}
}
if(prefix_flags || (prefix_stress != 0))
{ {
if((tr->langopts.param[LOPT_PREFIXES]) || (prefix_type & SUFX_T)) if((tr->langopts.param[LOPT_PREFIXES]) || (prefix_type & SUFX_T))
{ {
return(flags); return(flags);
} }


if(flags & FLAG_COMBINE)
if((flags & FLAG_COMBINE) && !(wtab[1].flags & FLAG_PHONEMES))
{ {
char *p2; char *p2;
int ok = 1; int ok = 1;
// ?? Option to set the word-stress according to language1 rules eg. lang=fr) // ?? Option to set the word-stress according to language1 rules eg. lang=fr)
if(ChangeEquivalentPhonemes(tr, switch_phonemes, (char *)p)) if(ChangeEquivalentPhonemes(tr, switch_phonemes, (char *)p))
{ {
// Phonemes have been converted from the foreign language to the native language
switch_phonemes = -1; switch_phonemes = -1;
} }


{ {
strcpy(dictionary_name, old_dictionary_name); strcpy(dictionary_name, old_dictionary_name);
SelectPhonemeTable(voice->phoneme_tab_ix); SelectPhonemeTable(voice->phoneme_tab_ix);

// leave switch_phonemes set, but use the original phoneme table number.
// This will suppress LOPT_REGRESSIVE_VOICING
switch_phonemes = voice->phoneme_tab_ix; // original phoneme table
} }
} }


char *p; char *p;
int j, k; int j, k;
int n_digits; int n_digits;
int individual_digits;
int charix_top=0; int charix_top=0;


short charix[N_TR_SOURCE+4]; short charix[N_TR_SOURCE+4];
for(p=source; *p != 0; p++) for(p=source; *p != 0; p++)
fputc(*p, f_logespeak); fputc(*p, f_logespeak);
fprintf(f_logespeak,"ENDCLAUSE\n"); fprintf(f_logespeak,"ENDCLAUSE\n");
fflush(f_logespeak);
} }
p = source;


charix[charix_top+1] = 0; charix[charix_top+1] = 0;
charix[charix_top+2] = 0x7fff; charix[charix_top+2] = 0x7fff;
words[word_count].pre_pause = 8; words[word_count].pre_pause = 8;
if(word_count > 0) if(word_count > 0)
{ {
words[word_count-1].flags |= FLAG_LAST_WORD;
ix = word_count-1;
while((ix > 0) && (IsBracket(sbuf[words[ix].start])))
ix--; // the last word is a bracket, mark the previous word as last
words[ix].flags |= FLAG_LAST_WORD;

// FLAG_NOSPACE check to avoid recognizing .mr -mr // FLAG_NOSPACE check to avoid recognizing .mr -mr
if((terminator & CLAUSE_DOT) && !(words[word_count-1].flags & FLAG_NOSPACE)) if((terminator & CLAUSE_DOT) && !(words[word_count-1].flags & FLAG_NOSPACE))
words[word_count-1].flags |= FLAG_HAS_DOT; words[word_count-1].flags |= FLAG_HAS_DOT;
char *pn; char *pn;
char *pw; char *pw;
int nw; int nw;
char number_buf[60];
WORD_TAB num_wtab[15]; // copy of 'words', when splitting numbers into parts
char number_buf[150];
WORD_TAB num_wtab[50]; // copy of 'words', when splitting numbers into parts


// start speaking at a specified word position in the text? // start speaking at a specified word position in the text?
count_words++; count_words++;
{ {
// Languages with 100000 numbers. Remove thousands separators so that we can insert them again later // Languages with 100000 numbers. Remove thousands separators so that we can insert them again later
pn = number_buf; pn = number_buf;
while(pn < &number_buf[sizeof(number_buf)-3])
while(pn < &number_buf[sizeof(number_buf)-20])
{ {
if(iswdigit(*pw)) if(iswdigit(*pw))
{ {


for(n_digits=0; iswdigit(word[n_digits]); n_digits++); // count consecutive digits for(n_digits=0; iswdigit(word[n_digits]); n_digits++); // count consecutive digits


if((n_digits > 4) && (word[0] != '0'))
if(n_digits > 4)
{ {
// word is entirely digits, insert commas and break into 3 digit "words" // word is entirely digits, insert commas and break into 3 digit "words"
number_buf[0] = ' '; number_buf[0] = ' ';
pn = &number_buf[1]; pn = &number_buf[1];
nx = n_digits; nx = n_digits;
nw = 0; nw = 0;
individual_digits = 0;

if((n_digits > tr->langopts.max_digits) || (word[0] == '0'))
words[ix].flags |= FLAG_INDIVIDUAL_DIGITS;


while(pn < &number_buf[sizeof(number_buf)-3])
while(pn < &number_buf[sizeof(number_buf)-20])
{ {
if(!isdigit(c = *pw++) && (c != tr->langopts.decimal_sep)) if(!isdigit(c = *pw++) && (c != tr->langopts.decimal_sep))
break; break;

+ 14
- 12
src/translate.h View File

#define FLAG_HAS_DOT 0x10000 // dot after this word #define FLAG_HAS_DOT 0x10000 // dot after this word
#define FLAG_COMMA_AFTER 0x20000 // comma after this word #define FLAG_COMMA_AFTER 0x20000 // comma after this word
#define FLAG_MULTIPLE_SPACES 0x40000 // word is preceded by multiple spaces, newline, or tab #define FLAG_MULTIPLE_SPACES 0x40000 // word is preceded by multiple spaces, newline, or tab
#define FLAG_INDIVIDUAL_DIGITS 0x80000 // speak number as individual digits


#define FLAG_SUFFIX_VOWEL 0x08000000 // remember an initial vowel from the suffix #define FLAG_SUFFIX_VOWEL 0x08000000 // remember an initial vowel from the suffix
#define FLAG_NO_TRACE 0x10000000 // passed to TranslateRules() to suppress dictionary lookup printout #define FLAG_NO_TRACE 0x10000000 // passed to TranslateRules() to suppress dictionary lookup printout
#define PUNCT_SAY_NAME 0x200000 #define PUNCT_SAY_NAME 0x200000
#define CLAUSE_DOT 0x400000 #define CLAUSE_DOT 0x400000


#define CLAUSE_NONE 0 + 0x04000
#define CLAUSE_PARAGRAPH 70 + 0x80000
#define CLAUSE_EOF 40 + 0x90000
#define CLAUSE_VOICE 0 + 0x24000
#define CLAUSE_PERIOD 40 + 0x80000
#define CLAUSE_COMMA 20 + 0x41000
#define CLAUSE_SHORTCOMMA 4 + 0x41000
#define CLAUSE_SHORTFALL 4 + 0x40000
#define CLAUSE_QUESTION 40 + 0x82000
#define CLAUSE_EXCLAMATION 45 + 0x83000
#define CLAUSE_COLON 30 + 0x40000
#define CLAUSE_SEMICOLON 30 + 0x41000
#define CLAUSE_NONE ( 0 + 0x04000)
#define CLAUSE_PARAGRAPH (70 + 0x80000)
#define CLAUSE_EOF (40 + 0x90000)
#define CLAUSE_VOICE ( 0 + 0x24000)
#define CLAUSE_PERIOD (40 + 0x80000)
#define CLAUSE_COMMA (20 + 0x41000)
#define CLAUSE_SHORTCOMMA ( 4 + 0x41000)
#define CLAUSE_SHORTFALL ( 4 + 0x40000)
#define CLAUSE_QUESTION (40 + 0x82000)
#define CLAUSE_EXCLAMATION (45 + 0x83000)
#define CLAUSE_COLON (30 + 0x40000)
#define CLAUSE_SEMICOLON (30 + 0x41000)


#define SAYAS_CHARS 0x12 #define SAYAS_CHARS 0x12
#define SAYAS_GLYPHS 0x13 #define SAYAS_GLYPHS 0x13
int min_roman; int min_roman;
int thousands_sep; int thousands_sep;
int decimal_sep; int decimal_sep;
int max_digits; // max number of digits which can be spoken as an integer number (rather than individual digits)
const char *ordinal_indicator; // UTF-8 string const char *ordinal_indicator; // UTF-8 string


// bit 0, accent name before the letter name, bit 1 "capital" after letter name // bit 0, accent name before the letter name, bit 1 "capital" after letter name

+ 6
- 3
src/voices.cpp View File



phtrans[0] = 0; phtrans[0] = 0;
sscanf(p,"%s %s %d",name,phtrans,&srate); sscanf(p,"%s %s %d",name,phtrans,&srate);
LoadMbrolaTable(name,phtrans,srate);
if(LoadMbrolaTable(name,phtrans,srate) != EE_OK)
{
fprintf(stderr,"mbrola voice not found\n");
}
voice->samplerate = srate; voice->samplerate = srate;
} }
break; break;


case V_FAST: case V_FAST:
Read8Numbers(p,speed.fast_settings); Read8Numbers(p,speed.fast_settings);
SetSpeed(2);
SetSpeed(3);
break; break;


default: default:
new_translator = SelectTranslator(translator_name); new_translator = SelectTranslator(translator_name);
} }


SetSpeed(1); // for speed_percent
SetSpeed(3); // for speed_percent


for(ix=0; ix<N_PEAKS; ix++) for(ix=0; ix<N_PEAKS; ix++)
{ {

+ 1
- 1
src/vowelchart.cpp View File

prog_log_table = (PHONEME_PROG_LOG *)malloc(ix); prog_log_table = (PHONEME_PROG_LOG *)malloc(ix);
if(prog_log_table == NULL) if(prog_log_table == NULL)
return; return;
fread(prog_log_table, 1, ix, f_prog_log);
ix = fread(prog_log_table, 1, ix, f_prog_log);
fclose(f_prog_log); fclose(f_prog_log);
prog_log_end = prog_log_table + ix; prog_log_end = prog_log_table + ix;
n_prog_log = ix / sizeof(PHONEME_PROG_LOG); n_prog_log = ix / sizeof(PHONEME_PROG_LOG);

+ 1
- 1
src/wavegen.cpp View File

int wcmdq_tail=0; int wcmdq_tail=0;


// pitch,speed, // pitch,speed,
int embedded_default[N_EMBEDDED_VALUES] = {0,50,175,100,50, 0,0, 0,175,0,0,0,0,0,0};
int embedded_default[N_EMBEDDED_VALUES] = {0, 50,175,100,50, 0, 0, 0,175,0,0,0,0,0,0};
static int embedded_max[N_EMBEDDED_VALUES] = {0,0x7fff,600,300,99,99,99, 0,600,0,0,0,0,4,0}; static int embedded_max[N_EMBEDDED_VALUES] = {0,0x7fff,600,300,99,99,99, 0,600,0,0,0,0,4,0};


#define N_CALLBACK_IX N_WAV_BUF-2 // adjust this delay to match display with the currently spoken word #define N_CALLBACK_IX N_WAV_BUF-2 // adjust this delay to match display with the currently spoken word

Loading…
Cancel
Save