Browse Source

[1.45.37]

Keep the original voice variant across SSML xml:lang changes.

Use the original language sub-type (eg. en-sc) when SSML xml:lang changes to a compatible language.

SSML <emphasis>, increase volume for "strong" and "x-strong".

Fix bug where </emphasis> was ignored at end of clause.

Fix: $dot attribute was ignored for multi-word entries in *_list files.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@269 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 14 years ago
parent
commit
b9611e1fb6
51 changed files with 2170 additions and 974 deletions
  1. 20
    13
      dictsource/da_list
  2. 831
    211
      dictsource/da_rules
  3. 36
    11
      dictsource/dict_phonemes
  4. 6
    3
      dictsource/en_list
  5. 12
    5
      dictsource/en_rules
  6. 49
    0
      dictsource/hu_list
  7. 12
    2
      dictsource/hu_rules
  8. 41
    18
      dictsource/nl_list
  9. 58
    17
      dictsource/nl_rules
  10. 1
    0
      dictsource/ro_rules
  11. 3
    0
      dictsource/sk_list
  12. 538
    527
      dictsource/sk_rules
  13. 49
    3
      dictsource/ta_list
  14. 146
    21
      dictsource/ta_rules
  15. 4
    4
      espeak-data/voices/!v/f1
  16. 1
    1
      espeak-data/voices/!v/m1
  17. 0
    1
      espeak-data/voices/!v/m7
  18. 1
    0
      espeak-data/voices/en/en
  19. 1
    0
      espeak-data/voices/en/en-n
  20. 1
    0
      espeak-data/voices/en/en-rp
  21. 1
    0
      espeak-data/voices/en/en-wi
  22. 2
    0
      espeak-data/voices/en/en-wm
  23. 1
    0
      espeak-data/voices/es-la
  24. 2
    1
      espeak-data/voices/fr-be
  25. 1
    7
      espeak-data/voices/hi
  26. 1
    0
      espeak-data/voices/hy-west
  27. 1
    1
      espeak-data/voices/mb/mb-de5-en
  28. 1
    1
      espeak-data/voices/mb/mb-gr2-en
  29. 1
    1
      espeak-data/voices/mb/mb-sw2-en
  30. 1
    0
      espeak-data/voices/pt-pt
  31. 136
    28
      phsource/compile_report
  32. 4
    2
      phsource/ph_serbian
  33. 5
    0
      phsource/ph_slovak
  34. 7
    0
      phsource/phonemes
  35. BIN
      phsource/vowel/a#_2
  36. BIN
      phsource/w/iw_
  37. BIN
      phsource/w/w_
  38. 14
    0
      src/Makefile
  39. 14
    3
      src/dictionary.cpp
  40. 3
    2
      src/mbrowrap.cpp
  41. 2
    2
      src/numbers.cpp
  42. 4
    2
      src/phonemelist.cpp
  43. 46
    12
      src/readclause.cpp
  44. 1
    1
      src/speak.cpp
  45. 2
    3
      src/speak_lib.cpp
  46. 1
    1
      src/synthdata.cpp
  47. 14
    6
      src/tr_languages.cpp
  48. 41
    27
      src/translate.cpp
  49. 4
    2
      src/translate.h
  50. 1
    0
      src/voice.h
  51. 49
    35
      src/voices.cpp

+ 20
- 13
dictsource/da_list View File

street _^_EN street _^_EN
boy _^_EN boy _^_EN
square _^_EN square _^_EN
appeal _^_EN
apple _^_EN apple _^_EN
beachbuggy _^_EN beachbuggy _^_EN
beachvolley _^_EN beachvolley _^_EN
browser _^_EN
chart _^_EN chart _^_EN
coach _^_EN coach _^_EN
coke _^_EN coke _^_EN
firewall _^_EN firewall _^_EN
freak _^_EN freak _^_EN
friendly _^_EN friendly _^_EN
groupie _^_EN
homepage _^_EN homepage _^_EN
hooligan _^_EN hooligan _^_EN
interface _^_EN interface _^_EN
boston _^_EN $alt boston _^_EN $alt
bronx _^_EN $alt bronx _^_EN $alt
boyle _^_EN $alt boyle _^_EN $alt
clarence _^_EN $alt
cyrus _^_EN cyrus _^_EN
cia _^_EN $alt cia _^_EN $alt
fox _^_EN fox _^_EN
oregon _^_EN $alt oregon _^_EN $alt
piccadilly _^_EN piccadilly _^_EN
reynolds _^_EN $alt reynolds _^_EN $alt
purvis _^_EN
//purvis _^_EN
white _^_EN $alt white _^_EN $alt


// PB French words // PB French words
renæssance $alt renæssance $alt
ressource $alt ressource $alt
restance $alt restance $alt
revanche $alt
romance $alt romance $alt
seance $alt seance $alt
service $alt service $alt
srilankan $alt srilankan $alt
sudan $alt sudan $alt
taiwan $alt taiwan $alt
texan $alt
tibetan $alt tibetan $alt
tongan $alt tongan $alt
trojan $alt trojan $alt
eugenik $alt eugenik $alt
excentrik $alt excentrik $alt
fabrik $alt fabrik $alt
falkeblik $alt
//falkeblik $alt
folkloristik $alt folkloristik $alt
fonetik $alt fonetik $alt
fysik $alt fysik $alt
homiletik $alt homiletik $alt
hydraulik $alt hydraulik $alt
informatik $alt informatik $alt
journalistik $alt
kamik $alt kamik $alt
karakteristik $alt karakteristik $alt
kasuistik $alt kasuistik $alt
ironi $alt ironi $alt
kakofoni $alt kakofoni $alt
kapellani $alt kapellani $alt
katatoni $alt
kleptomani $alt kleptomani $alt
koloni $alt koloni $alt
kompagni $alt kompagni $alt
kvadrofoni $alt kvadrofoni $alt
litani $alt litani $alt
ludomani $alt ludomani $alt
makaroni m&k@r'Vni $alt
mani $alt mani $alt
misogyni $alt misogyni $alt
monomani $alt monomani $alt
kontinuer $alt kontinuer $alt
kontraher $alt kontraher $alt
kontrasigner $alt kontrasigner $alt
kontraster $alt
kontrastere $alt
kontribuer $alt kontribuer $alt
kontroller $alt
kontrollere $alt
konturere $alt konturere $alt
konvener $alt konvener $alt
konverger $alt konverger $alt
konverser $alt konverser $alt
konverter $alt konverter $alt
konvojere $alt konvojere $alt
konvoluter $alt
konvolutere $alt
kooperer $alt kooperer $alt
koordiner $alt koordiner $alt
kopiere $alt kopiere $alt
lamenter $alt lamenter $alt
laminer $alt laminer $alt
lancer $alt lancer $alt
lasere $alt
//lasere $alt
latiniser $alt latiniser $alt
lavpasteuriser $alt lavpasteuriser $alt
legaliser $alt legaliser $alt
patiner $alt patiner $alt
patroniser $alt patroniser $alt
patruljere $alt patruljere $alt
afpatruljer $alt
pausere $alt pausere $alt
pelleter $alt pelleter $alt
pendulere $alt pendulere $alt
strabadsere $alt strabadsere $alt
stranguler $alt stranguler $alt
stratificer $alt stratificer $alt
strukturer $alt
strukturere $alt
omstrukturer $alt omstrukturer $alt
studere $alt studere $alt
indstudere $alt indstudere $alt
taktreguler $alt taktreguler $alt
taljere $alt taljere $alt
tamburer $alt tamburer $alt
tamponer $alt
tamponere $alt
tangere $alt tangere $alt
tapetser $alt tapetser $alt
tarer $alt tarer $alt
futon $alt futon $alt
føljeton fWljet'Vn $alt føljeton fWljet'Vn $alt
facon $alt facon $alt
kamæleon $alt
lazaron $alt lazaron $alt
makron $alt makron $alt
melon $alt melon $alt
patolog $alt patolog $alt
politolog $alt politolog $alt
prolog $alt prolog $alt
proktolog $alt
psykolog $alt psykolog $alt
radiolog $alt radiolog $alt
runolog $alt runolog $alt
økologi $alt økologi $alt


// final -ose - stressed o // final -ose - stressed o
acidose $alt
antibiose $alt antibiose $alt
apoteose $alt apoteose $alt
asbestose $alt asbestose $alt
professor $alt professor $alt
provisor $alt provisor $alt
revisor $alt revisor $alt
sektor $alt
sensor $alt sensor $alt
sponsor $alt sponsor $alt
successor $alt successor $alt
emp $abbrev emp $abbrev
hbo $abbrev // TV station hbo $abbrev // TV station
usa $abbrev usa $abbrev
kfum $abbrev
who $abbrev $allcaps // PB World Health Organization who $abbrev $allcaps // PB World Health Organization
ussr $abbrev $allcaps // Sovjet Union ussr $abbrev $allcaps // Sovjet Union
vsop $abbrev vsop $abbrev
(bh'er) b,e:h'O:V (bh'er) b,e:h'O:V
(l'chaim) l&kr'ajm (l'chaim) l&kr'ajm
scsi skVsi // PB scsi skVsi // PB
ike ajk // PB name
ikes ajks // PB


// Try to catch errors // Try to catch errors



+ 831
- 211
dictsource/da_rules
File diff suppressed because it is too large
View File


+ 36
- 11
dictsource/dict_phonemes View File

x z x z




Dictionary da_dict 2011-05-05
Dictionary da_dict 2011-07-21


& &# 0 3 @ @- a A & &# 0 3 @ @- a A
aI e E i o O u V aI e E i o O u V
* - : ? b B d D * - : ? b B d D
dZ f g h j J k l dZ f g h j J k l
l/2 l/3 m n N p r R l/2 l/3 m n N p r R
s S t T tS v w x
z Z
R3 s S t T tS v w
x z Z




Dictionary hu_dict 2011-06-25
Dictionary hu_dict 2011-08-08


a A a: E e: i i: o a A a: E e: i i: o
o: u u: Y y y: Y: o: u u: Y y y: Y:
ts v x z ts v x z




Dictionary en_dict 2011-06-21
Dictionary en_dict 2011-08-09


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
t. th th. v w x z t. th th. v w x z




Dictionary ta_dict 2011-06-25
Dictionary ta_dict 2011-08-09


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 2011-06-08
Dictionary nl_dict 2011-07-23


8 @ @- a A a: A~ e 8 @ @- a A a: A~ e
E e# E2 e: EI eU i I E e# E2 e: EI eU i I
w x z Z w x z Z




Dictionary ro_dict 2011-03-10
Dictionary ro_dict 2011-07-21


@ @- @I @U a aI aU e @ @- @I @U a aI aU e
ea eI eo eU i i/ I^ iI ea eI eo eU i i/ I^ iI
Z; Z;




Dictionary sk_dict 2010-03-12
Dictionary sk_dict 2011-08-08


& @- a a: e e: i i: & @- a a: e e: i i:
l- l: o o: oU r- r: u l- l: o o: oU r- r: u
* ; b d d; dZ dz f * ; b d d; dZ dz f
g h j k l l^ m n g h j k l l^ m n
N n^ p r R R^ R^/ s N n^ p r R R^ R^/ s
S t t; tS ts v x z
Z
S t t; tS ts v w x
z Z




Dictionary sq_dict 2008-12-22 Dictionary sq_dict 2008-12-22
k l l. m m# n N n# k l l. m m# n N n#
N# n. n.# n^ n^# p r s N# n. n.# n^ n^# p r s
S t t. th tS v w z S t t. th tS v w z


Dictionary et_dict 2011-07-01

& &: &i 8 8: 8u a A1
a: e E1 e: i I I1 i1
i: o O1 o: u U1 u: Y
y Y: y: Yi yi

: b d d^ dZ f g h
j k l l^ m n N n^
p r R s S s2 s^ t
t^ v w z Z


Dictionary mt_dict 2011-07-29

@ a ai au e ei eu i
I ie iu l- o u U ui
y yi yY

* : b c C d dZ f
g h j k l m n p
q r s S t tS v w
x z Z

+ 6
- 3
dictsource/en_list View File

v vi: v vi:
w d'Vb@Lju: w d'Vb@Lju:
x Eks x Eks
y waI
z zEd z zEd
?3 z zi: ?3 z zi:


ui $abbrev ui $abbrev
uk $abbrev uk $abbrev
un $abbrev $allcaps un $abbrev $allcaps
unhcr $abbrev
url $abbrev url $abbrev
usa $abbrev usa $abbrev
usb $abbrev usb $abbrev
anon a#n0n anon a#n0n
anonymous $2 anonymous $2
another a#nVD3 another a#nVD3
answer aans3
ante anti ante anti
antecedent antIs'i:d@nt antecedent antIs'i:d@nt
antibody $1 antibody $1
cutaway kVt@weI cutaway kVt@weI
cutoff kVt0f cutoff kVt0f
cutout kVtaUt cutout kVtaUt
cwm kUm
cyan saI'an cyan saI'an
cymru kVmri cymru kVmri


dais deIIs dais deIIs
damaged d'amI2dZd damaged d'amI2dZd
dandelion dandI2laI@n dandelion dandI2laI@n
ddu DI // Welsh
de d@ $only de d@ $only
debacle deIb'A:k@L debacle deIb'A:k@L
debrief di:br'i:f debrief di:br'i:f
minibus mInIbVs minibus mInIbVs
mining maInIN // not mini mining maInIN // not mini
minuet mInju:'Et minuet mInju:'Et
minus maIn@s
minute mInIt $onlys minute mInIt $onlys
mirage mIrA:Z mirage mIrA:Z
misery mIz@rI misery mIz@rI
sclera skli@r sclera skli@r
scourge sk3:dZ scourge sk3:dZ
scrotum skroUt@m scrotum skroUt@m
scythe saID
seabed si:bEd seabed si:bEd
sealion si:laI@n sealion si:laI@n
seance seI0ns seance seI0ns
several sEvr@L several sEvr@L
shallow SaloU shallow SaloU
shampoo $2 shampoo $2
shepherd SEp@d
sheriff S'ErI2f sheriff S'ErI2f
shew SoU shew SoU
shia Si:@ shia Si:@
Cohen koU@n Cohen koU@n
Cthulhu k@-Tu:l#u: Cthulhu k@-Tu:l#u:
Chrysler kraIzl3 Chrysler kraIzl3
Dante danteI
Disney dIzni Disney dIzni
Dolce d0ltSeI Dolce d0ltSeI
Dvorak d@-vo@Zak Dvorak d@-vo@Zak

+ 12
- 5
dictsource/en_rules View File

sw) a (B 0 sw) a (B 0
a (Be# eI a (Be# eI
w) a (Be# eI w) a (Be# eI
a (Cee+ a
a (BeCo_ a a (BeCo_ a
a (BerA a a (BerA a
a (BerC a a (BerC a
@) awi (_ 'A:wI @) awi (_ 'A:wI
_) aw (k O: _) aw (k O:
_) aw (ok a#w _) aw (ok a#w
awr (_ aU@
C) a (x+ a C) a (x+ a
_) a (x+ a _) a (x+ a
ay eI ay eI
tr) an (si an tr) an (si an
tr) ansis anz'Is tr) ansis anz'Is
tr) an (som an tr) an (som an
answ (er aans
ante (nn ant'E ante (nn ant'E
_) anti (@P4 ,antI // prefix _) anti (@P4 ,antI // prefix
ant (iq ant ant (iq ant
&h) ar (d_ 3 &h) ar (d_ 3
&ch) ar (d 3 &ch) ar (d 3
&k) ar (d_ 3 &k) ar (d_ 3
&p) ar (d_ 3
&st) ar (d_ 3 &st) ar (d_ 3
&w) ar (d_ 3 &w) ar (d_ 3
aw) ar (d O@ aw) ar (d O@
co (mpou k0 co (mpou k0
co (mprehen k0 co (mprehen k0
co (mprom k0 co (mprom k0
co (mpt k0
_) comp (tr k%0m
co (mputa k,0 co (mputa k,0
_) co (mr k0 _) co (mr k0
_) con (@ k%0n _) con (@ k%0n
&) en (ce_ @n &) en (ce_ @n
?8 &) en (ce_ En ?8 &) en (ce_ En
f) en (ce_ En f) en (ce_ En
g) ener (al En@r
_) en (ough I2n _) en (ough I2n


.group eo .group eo
_) er (A I2r _) er (A I2r
_) er 3: _) er 3:
_) err (A Er _) err (A Er
@) eral (ity @r'al
&) eram (ent r@m &) eram (ent r@m
X) era (_ i@r@ X) era (_ i@r@
XC) err Er XC) err Er
inte (llec Int@ inte (llec Int@
_) inter (@P5 ,Int3 // prefix _) inter (@P5 ,Int3 // prefix
_) inter (AP5 ,Int@r _) inter (AP5 ,Int@r
inter (est Int@r
inter (est Intr
interfer Int@f'i@3 interfer Int@f'i@3
_) int (erio+ %Int _) int (erio+ %Int
_) inter (n_ %Int3: _) inter (n_ %Int3:
inism (_ InIz@m inism (_ InIz@m
infor (matio Inf3 infor (matio Inf3
ino (_ 'i:noU ino (_ 'i:noU
_m) in (us aIn
_m) inu (te aIn'ju: _m) inu (te aIn'ju:
_m) inute (m InIt _m) inute (m InIt
_) intra Intr@ _) intra Intr@
X) o (By_ oU X) o (By_ oU
_) o (Cy+ 0 _) o (Cy+ 0
o (Be# oU o (Be# oU
oi (ce# OI
o (BeCo_ 0 o (BeCo_ 0
o (BenC oU o (BenC oU
o (Beon 'oU o (Beon 'oU
_) scar (A ske@ _) scar (A ske@
_) scar (a skar _) scar (a skar
scarc ske@s scarc ske@s
sc (i s
sc (L02 s
sci (b s@ sci (b s@
sci (_ =skaI sci (_ =skaI
scis (_ =skIs scis (_ =skIs
_) wr (Y r _) wr (Y r


C) w (_ w@ C) w (_ w@
C) w (X U // Welsh names
wh w wh w
wr r wr r
C) we (_ =wI C) we (_ =wI
xure (_ kS%U@ xure (_ kS%U@


.group y .group y
_) y (_ waI
-) y (- @ // Welsh names
y j y j
_) y' (CP2 j@ _) y' (CP2 j@
y (C_ I y (C_ I

+ 49
- 0
dictsource/hu_list View File

LST ElESte: $allcaps LST ElESte: $allcaps
BAR bAR2 $allcaps BAR bAR2 $allcaps
//SS EsEs $allcaps //SS EsEs $allcaps
ALT Alt $allcaps


(a . m .) An^n^i||m'int $hasdot (a . m .) An^n^i||m'int $hasdot
ún u:JnEvEzEt: $hasdot ún u:JnEvEzEt: $hasdot
körülményei $unstressend körülményei $unstressend
bízva $unstressend bízva $unstressend
száma $unstressend száma $unstressend
képes $unstressend
számoltak $unstressend
fakadó $unstressend
firtatta $unstressend
ítélték $unstressend
itélték $unstressend
fogják $unstressend
bennem $unstressend
állhat $unstressend
lényege $unstressend
derített $unstressend
gyártotta $unstressend
beszélni $unstressend
számítógéppel $unstressend
változást $unstressend
lettek $unstressend
tapasztalattal $unstressend
súlyát $unstressend
hatnak $unstressend
rugalmas $unstressend
anyagok $unstressend
tárgyak $unstressend
váltak $unstressend
szűrő $unstressend
szűrők $unstressend
vitát $unstressend
tevő $unstressend
lévő $unstressend
ajánlat $unstressend
jelentkezhetnek $unstressend
léphessen $unstressend
építeni $unstressend
darabra $unstressend
figyelmesek $unstressend
láttuk $unstressend
hullott $unstressend
szóltak $unstressend
hallatszott $unstressend
keresték $unstressend
gépeket $unstressend
követte $unstressend
keresik $unstressend
éreztem $unstressend
vitatta $unstressend
vitatja $unstressend
útját $unstressend
nehézségeket $unstressend

// word pairs // word pairs


(hogy a) h,oJ,A (hogy a) h,oJ,A

+ 12
- 2
dictsource/hu_rules View File



bb (L01 b // only speak one b if followed by a consonant bb (L01 b // only speak one b if followed by a consonant
bbr bR2 //special exception with always need executing bbr bR2 //special exception with always need executing
bbj bj //special exception with always need executing


.group c .group c
c ts c ts
harma) d (szint d harma) d (szint d
kó) d (jel d kó) d (jel d
harma) d (sor d harma) d (sor d
beszé) d (javít d
rekor) d (sugár d


.group dz .group dz
fogó) dz (kod ts fogó) dz (kod ts
kapáló) dz z kapáló) dz z
_ó) dz (ko ts _ó) dz (ko ts
gyűrű) dz (ik z gyűrű) dz (ik z
burkoló) dz z


.group e .group e
e E e E
e) gy (összeg J: e) gy (összeg J:
e) gys (ík J|S //for example egysíkú word need spokening single J and S phoneme e) gys (ík J|S //for example egysíkú word need spokening single J and S phoneme
_e) gy (öntet J: _e) gy (öntet J:
tár) gy (sor J


.group h .group h
h h h h
idé) ny (jel n^ idé) ny (jel n^
vagyo) n (nyilatkozat n //for example vagyonnyilatkozat word need spokening single n phoneme before n^ phoneme, not two n^n^ phoneme. vagyo) n (nyilatkozat n //for example vagyonnyilatkozat word need spokening single n phoneme before n^ phoneme, not two n^n^ phoneme.
szí) n (jelzés n szí) n (jelzés n
kormá) ny (jelentés n^


.group o .group o
o o o o
viselkedé) s (zava S viselkedé) s (zava S
alkalmazá) s (szerver S alkalmazá) s (szerver S
fá) s (szárú S fá) s (szárú S
ritmu) s (zavar S
pedagógu) s (sztrájk S



.group ss .group ss
ssz ss2 ssz ss2
gyor) ssz (űr Ss //for example gyorsszűrő word need spokening single S and s phoneme gyor) ssz (űr Ss //for example gyorsszűrő word need spokening single S and s phoneme
_a) ssz (iszt s //for example the asszisztens word need spokening one s phoneme _a) ssz (iszt s //for example the asszisztens word need spokening one s phoneme
eltu) ss (ol S eltu) ss (ol S
ellátá) ssz (er Ss


.group sz .group sz
sz s sz s
álla) tj (ólét tj álla) tj (ólét tj
dolgoza) tj (avít tj dolgoza) tj (avít tj
természe) tj (ár tj természe) tj (ár tj
terüle) tj (elöl tj


.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
_hé) tsz (ob t|s //same as prewious rule _hé) tsz (ob t|s //same as prewious rule
gyakorla) ts (oroz t|S gyakorla) ts (oroz t|S
támogato) ts (ág tS: támogato) ts (ág tS:
já) tsz (hass ts


.group tt .group tt
tt t: tt t:

+ 41
- 18
dictsource/nl_list View File

ən @-n // char.replacement for 'n ən @-n // char.replacement for 'n
ət t // char.replacement for 't ət t // char.replacement for 't


// pronouns
ik $u
me $u
jij $u
je $u
gij $u
ge $u
u $u
hij $u
zij $u
ze $u
wij $u
we $u
// pronouns (may have -zelf suffix)
ik %Ik
me m@
jij j%EI
je j@
gij Q%EI
ge g@
u %y
hij h%EI
zij z%EI
ze z@
wij v#%EI
we v#@
jullie $u jullie $u
hen $u
zich $u
hen h%En
zich z%Ix
onszelf Ons'Elf


// possessives // possessives
mijn $u mijn $u
hoewel $pause // although hoewel $pause // although
of $u $pause // whether of $u $pause // whether
omdat $pause // because omdat $pause // because
nadat $u $pause // after
nadat $u2 $pause // after
nudat $pause // now that nudat $pause // now that
sinds $pause // since sinds $pause // since
tenzij $pause // unless tenzij $pause // unless
mormel $alt mormel $alt
mortel $alt mortel $alt
morzel $alt morzel $alt
navel $alt
obstakel $alt obstakel $alt
parabel $alt parabel $alt
partikel $alt partikel $alt
ongastvrij OnQAstvr'EI ongastvrij OnQAstvr'EI
ongelooflijk $3 ongelooflijk $3
ongemakkelijk $3 ongemakkelijk $3
ongelukkig $3
//ongelukkig $3
ongerieflijk $3 ongerieflijk $3
ongrondwettig $3
//ongrondwettig $3
partijvoorzitters $2 partijvoorzitters $2
pistache pist'AS pistache pist'AS
proces $2 proces $2
waarschijnlijk $2 waarschijnlijk $2
wanen v#a:n@n wanen v#a:n@n
wangen v#AN@n wangen v#AN@n
wanluidend $2
wanschapen $2
wantrouwend $2
ziekenhuisbevalling zi:k@nhWysb@vAlIN ziekenhuisbevalling zi:k@nhWysb@vAlIN




Justine Zyst'in Justine Zyst'in
kennedy kEn@dE kennedy kEn@dE
Laurent lo:r'An^ Laurent lo:r'An^
Naomi $2
Nys nEIsd'WyzEnt Nys nEIsd'WyzEnt


//Trademarks //Trademarks
alexandrië $3 alexandrië $3
canada kAna:da: canada kAna:da:
Kinshasa kInS'a:sa: Kinshasa kInS'a:sa:
Nairobi nAjr'o:bi
Napel $alt
Rochefort roS'for Rochefort roS'for
Zelzate zelzat@ Zelzate zelzat@


(vond dat de) vOn_tA_t@ (vond dat de) vOn_tA_t@


nadelig $2 // nadelig(e)
nadelige $2
naderhand $3
nadien $2 $only
nadrukke $2 // nadrukkelijk
nafta nAfta:
nalatig $2 // nalatig(e)
nalatige $2
nasaal $2
nasi nAsi
navoel $2 // navoelbaar(/bare)
navulbaar $2


+ 58
- 17
dictsource/nl_rules View File

// translation rules for Dutch // translation rules for Dutch
// This file is UTF-8 encoded // This file is UTF-8 encoded


// Suffix rule: SUFX_E eg. S2e means double the vowel before the final consonant

.L01 g k .L01 g k




aire (_ 'E:r@ aire (_ 'E:r@
air (_ 'Er air (_ 'Er
@) agne (_ 'An^@ @) agne (_ 'An^@
ale (_ 'a:l@
@) ant (_ 'Ant @) ant (_ 'Ant
@) ant (e_ 'Ant @) ant (e_ 'Ant
@) ant (en_ 'Ant @) ant (en_ 'Ant
bs (_N ps bs (_N ps


baan ba:n baan ba:n
&) baar (_ =ba:r
&) baar (_S4 =ba:r
&) bare (_S4 =ba:r@
_) bij (C@P3 b'EI _) bij (C@P3 b'EI
_) binnen (P6 b'In@n _) binnen (P6 b'In@n
_) boven (P5 b'o:v@n _) boven (P5 b'o:v@n
.group e .group e
e e# // [e:] but change to [@] in unstressed syllables e e# // [e:] but change to [@] in unstressed syllables
X) e e: // first syllable in a word X) e e: // first syllable in a word
&C) e (_S1qd @
e (_ @ e (_ @
e (CK E e (CK E
e (x E e (x E
eeuw eU eeuw eU
eu Y: eu Y:


&C) e (_S1qd @
KAC) e (_S1e @ // remove 'e' and double the vowel
el) e (_+S1qd @
er) e (_+S1qd @
ig) e (_+S1qd @

ea (_ 'e:a: ea (_ 'e:a:
eau o: //words with French origin eau o: //words with French origin
@) ee (_ 'e: @) ee (_ 'e:
&) em (_ @m &) em (_ @m
&) e (ment @ &) e (ment @
&) e (nissen_ @ &) e (nissen_ @
&) en (_S2qd @n

&) en (_S2qd @n // double the previous vowel
KAC) en (_S2e @n
el) en (_+S2qd @n
er) en (_+S2qd @n

&) ens (_S3q @ns &) ens (_S3q @ns
ll) en (_S3 @n ll) en (_S3 @n
&) end (_ @nd &) end (_ @nd
&) ende (_ @nd@
&) enden (_ @nd@n
&) ende (_S1 @
&) enden (_S2 @n
eden e:d@n eden e:d@n
&) ent (_$w_alt =@nt &) ent (_$w_alt =@nt
@) ent (_ 'Ent @) ent (_ 'Ent
@) ent (ste_ 'Ent @) ent (ste_ 'Ent
ag) ent 'Ent ag) ent 'Ent
@j) es (_ @s @j) es (_ @s
@) es (_S2qd 'Es
@) es (_S2qd 'Es // double the previous vowel
KAC) es (_S2e @s
@) essen (_S5qd 'Es@n @) essen (_S5qd 'Es@n
@) eres (_S4qd @r'Es @) eres (_S4qd @r'Es
@) eressen (_S7sq @r'Es@n @) eressen (_S7sq @r'Es@n
.group g .group g
g Q // ph_dutch changes to [x] before unvoiced, NULL after [x] g Q // ph_dutch changes to [x] before unvoiced, NULL after [x]
gg Q gg Q
s) g x


_) ge (@P2 Q@ _) ge (@P2 Q@
ge (bied Q@ ge (bied Q@
ie (CtjeX_ 'i ie (CtjeX_ 'i
ie (ren_ 'i ie (ren_ 'i
ie (rd_ 'i ie (rd_ 'i
@) ig (_S2dq @x
@) ige (_S3dq @Q@
@) igen (_ @Q@n
@) iger (_ @Q@r
@) igere (_ @Q@r@
@) igst (_ @Qst
@) igste (_ @Qst@
@) ig (_S2dq =@x
@) ige (_S3dq =@Q@
@) igen (_ =@Q@n
@) iger (_ =@Q@r
@) igere (_ =@Q@r@
@) igst (_ =@Qst
@) igste (_ =@Qst@
ij (_ 'EI ij (_ 'EI
ij (e_ 'EI ij (e_ 'EI
@) ij (n_ 'EI @) ij (n_ 'EI
n (k$w_alt3 n n (k$w_alt3 n


_) na (C@@P2 n'a: _) na (C@@P2 n'a:
_) na (tion na:
_) na (C@ n'a:
_) na (C% nA
_) na (cht nA
_) narci (s n%ArsI
_) na (rc n%A
_) na (der na: _) na (der na:
_) na (tion na:
_) nano (@P4 n'a:no:
_) na (polA n%a:
napoleon n%a:po:l@jOn
_) natuur na:t'yr _) natuur na:t'yr
naturel na:tyr'El
na (tur n%a:
na (vig n%a:
_) na (vr na:
_) na (volg@ n%a:
_) noord (@P5 no:rd _) noord (@P5 no:rd
_) nieuws (@P6 n'iws _) nieuws (@P6 n'iws
@@) nis (_S3 nIs @@) nis (_S3 nIs
_) on (@P2 %On _) on (@P2 %On
oo (X 'o: oo (X 'o:
oon 'o:n // in compounds, eg. telefoongesprek oon 'o:n // in compounds, eg. telefoongesprek
oo (C_ 'o:
_) oost (@P4 o:st _) oost (@P4 o:st
_) op (@@P2 'Op _) op (@@P2 'Op
_) open (@P4 'o:p@n _) open (@P4 'o:p@n
_) op (era 'o:p _) op (era 'o:p
_) op (tion Op _) op (tion Op
@at) or (_ 'o:r
ou (che_ u ou (che_ u
ouch (en_ uS ouch (en_ uS
_) over (@P4 ,o:v@r _) over (@P4 ,o:v@r
s (s s (s
A) s (A z A) s (A z
s (b z s (b z
s (g z
s (d z
sc s sc s
sch sx sch sx
sch (_ s sch (_ s
sj S sj S
@@) s (_S1 s @@) s (_S1 s


sc (oop sk
sc (opi sk
&) sel (_ =s@l &) sel (_ =s@l
&) selen (_ =s@l@n &) selen (_ =s@l@n
@) si (o S @) si (o S


.group v .group v
v v v v
s) v f


_) van (@P3 v%An _) van (@P3 v%An
_) vanzelf (@P7 vAnz,Elf _) vanzelf (@P7 vAnz,Elf
_) wan (@P3 v#'An _) wan (@P3 v#'An
_) wan (L01@P3 v#'AN _) wan (L01@P3 v#'AN
_) wan (del v#An _) wan (del v#An
_) wanhopig v#Anh'o:p@Q
_) wan (kel v#AN _) wan (kel v#AN
_) wann (eer v#An
_) wanordelijk v#An_|'Ord@l@k
_) wansmakelijk v#Ansm'a:k@l@k
_) wanstaltig v#Anst'Alt@Q
_) wantrouwig v#Antr'VU@Q
_) wanvoeglijk v#Anv'uxl@k
_) weg (@P3 v#'EQ _) weg (@P3 v#'EQ
_) weg (en v#e:Q _) weg (en v#e:Q
_) weg (e_ v#e:Q // bewegelijk _) weg (e_ v#e:Q // bewegelijk
.group z .group z
z z z z
z (z z (z
s) z

zele (_S4 ze:l@ // common suffix for cities. zele (_S4 ze:l@ // common suffix for cities.
@) zelf (_S4 s'Elf
_) zoge (@P4 z,og@ _) zoge (@P4 z,og@
_) zuid (@P4 zWyt _) zuid (@P4 zWyt



+ 1
- 0
dictsource/ro_rules View File

ou (_N 'oU ou (_N 'oU
ou (_ ou ou (_ ou
o (AAA o o (AAA o
@C) o (riii_ 'o




.group p .group p

+ 3
- 0
dictsource/sk_list View File

stĺp stl:p stĺp stl:p
plch pl-x plch pl-x
čln tSl-n čln tSl-n
plť pl-t;
tĺk tl:k
vlk vl-k


// don't soften (d,n,t) before e,i // don't soften (d,n,t) before e,i
aktívni $alt aktívni $alt

+ 538
- 527
dictsource/sk_rules
File diff suppressed because it is too large
View File


+ 49
- 3
dictsource/ta_list View File



// abbreviations // abbreviations
ரூ ru:ba:j $dot $only ரூ ru:ba:j $dot $only
(பி . ஏ) bije: $dot
(கி . மீ) kilo:mi:t.t.Vr $dot


// numbers // numbers
_0 suz.ijVm // சுழியம் _0 suz.ijVm // சுழியம்


_dpt _pul.l.i _dpt _pul.l.i


// drop final [U] when followed by an ordinal suffix
_1o onR
_2o irVn.d.
_3o mu:nR
_4o na:ng
_5o aInd
_6o a:R
_7o ;e:l
_8o ;et.t.
_9o onbVd.
_10o patt
_11o patinonR
_12o pVnnirVn.d.
_19o pattonbVd

_20o irUbVd
_30o muppVd // முப்பது
_40o na:RpVd
_50o aImbVd
_60o aRUbVd
_70o ;ez.UbVd
_80o ;en.bVd
_90o ton.n.u:R

_1Co nu:R
_2Co irUnu:R
_3Co munnu:R
_4Co na:nu:R
_5Co aInu:R
_6Co aRUnu:R
_7Co ;ez.Unu:R
_8Co ;en.n.u:R

_#ம் a:m // ordinal suffix _#ம் a:m // ordinal suffix
_#-ம் a:m // ordinal suffix
_#ல் il
_#வது a:vVdU
_#வதும் a:vVdUm
_#வதுமாக a:vVdUma:gV


_#-ம் a:m // ordinal suffix with hyphen
_#-ல் il
_#-வது a:vVdU
_#-வதும் a:vVdUm
_#-வதுமாக a:vVdUma:gV


// English words // English words
tamil தமிழ் $text tamil தமிழ் $text
பந்தா $alt பந்தா $alt
பிரா bra: பிரா bra:
ப்ரா $alt ப்ரா $alt
(பி . ஏ) bije:
பலம் $alt
பலமாக $alt
பலமா $alt




// initial த as [d] // initial த as [d]
தின $alt தின $alt
தில் $alt தில் $alt
தன $alt தன $alt
தடியா $alt




// initial ட // initial ட
களிலும் $alt களிலும் $alt
கடம் $alt கடம் $alt
காட் $alt காட் $alt
கிடு $alt






பைக்கில் baIkkIl பைக்கில் baIkkIl
தாங்ஸ் Ta:Nks // thanks தாங்ஸ் Ta:Nks // thanks
டிபுடி d.EpjUt.i // deputy டிபுடி d.EpjUt.i // deputy
டிபன் t.ifVn
ஆகா a:Ha: ஆகா a:Ha:
ஓகோ o:Ho: ஓகோ o:Ho:
கப் kVp கப் kVp

+ 146
- 21
dictsource/ta_rules View File

// i or i: // i or i:
.L08 ி ீ .L08 ி ீ


// n or n
.L09 ந ன

// l or l.
.L10 ல ள

// b d g
.L11 ப த க

// words before "bottle" // words before "bottle"
.L10 பீர் கலர் சாராய சோடா தண்ணி தண்ணீர் பிராந்தி வாட்டர் விஸ்கி பிளாஸ்டிக் ப்ளாஸ்டிக் கண்ணாடி கிளாஸ் க்ளாஸ் மது
.L12 பீர் கலர் சாராய சோடா தண்ணி தண்ணீர் பிராந்தி வாட்டர் விஸ்கி பிளாஸ்டிக் ப்ளாஸ்டிக் கண்ணாடி கிளாஸ் க்ளாஸ் மது


// words after "booga" // words after "booga"
.L11 வாழ்க்கை பூமி விருந்த மனிதன

.L13 வாழ்க்கை பூமி விருந்த மனிதன


// consonants // consonants


_) கி (ராம g _) கி (ராம g
_) கி (ராம்ப k _) கி (ராம்ப k
_) கி (ரிகோரிய g _) கி (ரிகோரிய g
_) க (ிரிக்கா g
_) க (ிரிஜா g _) க (ிரிஜா g
_) க (ிரிதர g _) க (ிரிதர g
_) கி (ரித்த k _) கி (ரித்த k
_) கி (ரிமினல k
_) கி (ரியா_ k
_) க (ிரியாக g
_) க (ிரியால g
_) க (ிரியி g
_) க (ிரியு g
_) கி (ரில் g
_) கிரிஸ்டோப (ர krist.o:fV _) கிரிஸ்டோப (ர krist.o:fV
_) கி (ரிஸ்த k _) கி (ரிஸ்த k
_) கி (ரீட k _) கி (ரீட k
_) கி (ரீஸ g _) கி (ரீஸ g
_) க (ிருகஸ்தர g _) க (ிருகஸ்தர g
_) க (ிருகிரு g _) க (ிருகிரு g
_) கிரு (ஸ்த kri
_) க (ிருஹஸ்தர g _) க (ிருஹஸ்தர g
_) கி (ரேக்க g _) கி (ரேக்க g
_) கி (ரேய k _) கி (ரேய k
_) க (ுருஜி g _) க (ுருஜி g
_) க (ுருதேவ g _) க (ுருதேவ g
_) க (ுருநா g _) க (ுருநா g
_) குருப (ாத gurup
_) க (ுருபூஜை g _) க (ுருபூஜை g
_) க (ுருப்பெயர g _) க (ுருப்பெயர g
_) க (ுருமார g _) க (ுருமார g
_) க (ுருவு g _) க (ுருவு g
_) க (ுருவுடை g _) க (ுருவுடை g
_) க (ுருவை g _) க (ுருவை g
_) க (ுருவோ g
_) க (ுருவோட g _) க (ுருவோட g
_) க (ுலாப g _) க (ுலாப g
_) க (ுலாம g _) க (ுலாம g
_) க (ுலேபா g _) க (ுலேபா g
_) கு (லோபல g _) கு (லோபல g
_) க (ுல்மோL06ர g
_) க (ுவஹாத்தி g _) க (ுவஹாத்தி g
_) குவாலிட(ி kwa:lit. _) குவாலிட(ி kwa:lit.
_) குவ (ாலிபிகேஷன kw _) குவ (ாலிபிகேஷன kw
_) க (ெஸ்ட 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
_) க (ோரத g _) க (ோரத g
_) க (ோரப g _) க (ோரப g
_) க (ோரப்பட k _) க (ோரப்பட k
_) க (ோரப்போக k
_) க (ோரப்போவ k
_) க (ோரம g _) க (ோரம g
_) க (ோலிக g _) க (ோலிக g
_) க (ோலிய g _) க (ோலிய g
_மை) க் k _மை) க் k
_ஷா) க் (_ k _ஷா) க் (_ k
_விவே) க் (_ k _விவே) க் (_ k
_ஜ) க்க ggV#
துர்) க்க ggV# துர்) க்க ggV#
மார்) க்க ggV# மார்) க்க ggV#
மூர்) க்க ggV# மூர்) க்க ggV#
இ) க்கி (ராம gg இ) க்கி (ராம gg
L03) க்க (ுகை gg L03) க்க (ுகை gg
_மு) க்க (ுண gg _மு) க்க (ுண gg
_போர்) க்க (ுண gg
அணு) க்க (ுண்ட gg அணு) க்க (ுண்ட gg
_வெடி) க்க (ுண்ட gg
_துப்பாக்கி) க்க (ுண்ட gg _துப்பாக்கி) க்க (ுண்ட gg
ஜன) க்க (ும்பல gg ஜன) க்க (ும்பல gg
_ல) க்க (ேஜ gg _ல) க்க (ேஜ gg
L03) க்க (ோபுர gg
_வி) க்ச (னரி ks.V _வி) க்ச (னரி ks.V
_பி) க்ச (ர ktSV _பி) க்ச (ர ktSV
_மெ) க்சிக (ோ ksik _மெ) க்சிக (ோ ksik
ச (ந்திர tSV ச (ந்திர tSV
_ஹட்) ச (ன sV _ஹட்) ச (ன sV
_வாட்) ச (ன sV _வாட்) ச (ன sV
_சாபவிமோ) ச (ன tSV
_டேவிட்) ச (ன sV _டேவிட்) ச (ன sV
_பாவவிமோ) ச (ன tSV _பாவவிமோ) ச (ன tSV
_விமோ) ச (ன tSV _விமோ) ச (ன tSV
_) ச (ப்பL11் tSV
_) ச (ப்பா tSV _) ச (ப்பா tSV
_) ச (ப்பி tSV _) ச (ப்பி tSV
_) ச (ப்பு tSV _) ச (ப்பு tSV
_) சரசு (வதி sVrVs _) சரசு (வதி sVrVs
_) சர்ச (ி tSVrtS _) சர்ச (ி tSVrtS
_) ச (ர்ச்சில tSV _) ச (ர்ச்சில tSV
_) ச (ர்ச்சு tSV
மருதா) ச (ல tSV மருதா) ச (ல tSV
வேதா) ச (ல tSV வேதா) ச (ல tSV
_சேஷா) ச (ல tSV _சேஷா) ச (ல tSV
அருணா) ச (ல tSV அருணா) ச (ல tSV
வெங்கடா) ச (ல tSV வெங்கடா) ச (ல tSV
வேங்கடா) ச (ல tSV வேங்கடா) ச (ல tSV
_) ச (வான tSV
_) சாக்ப (ீL04 tSa:kp _) சாக்ப (ீL04 tSa:kp
_) சாக்லேட் tSa:kle:t. _) சாக்லேட் tSa:kle:t.
_) ச (ாணக்கிய tS _) ச (ாணக்கிய tS
ஆ) ச (ாரம tS ஆ) ச (ாரம tS
_) சாருலத (ா tSa:rUlVt _) சாருலத (ா tSa:rUlVt
_) ச (ாருவ tS _) ச (ாருவ tS
_ரீ) ச (ார்ஜ tS
_டிஸ்) ச (ார்ஜ tS
_) ச (ார்ஜை tS _) ச (ார்ஜை tS
_) ச (ார்ஜ்_ tS _) ச (ார்ஜ்_ tS
_) ச (ார்லஸ tS _) ச (ார்லஸ tS
_) ச (ிப்ஸ tS _) ச (ிப்ஸ tS
சி (ரம s சி (ரம s
_) சி (ரார்த்த s _) சி (ரார்த்த s
_) சிரு (ங்கார sri
_) சிரு (ஷ்டி sri _) சிரு (ஷ்டி sri
_) ச (ிற்றம்பல tS _) ச (ிற்றம்பல tS
_) சி (லாகி s
_) ச (ிலிய tS _) ச (ிலிய tS
_) சி (லேட s
_) ச (ில்ற tS _) ச (ில்ற tS
_) ச (ில்லறை tS _) ச (ில்லறை tS
_) ச (ிள்ற tS _) ச (ிள்ற tS
ராவணே) சு (வர s ராவணே) சு (வர s
_) சுவர்க்க svVrggV# _) சுவர்க்க svVrggV#
_) சுவர்க்க (ோழி suvVrkk _) சுவர்க்க (ோழி suvVrkk
_) சு (வர்ண s
_) சு (வாச s _) சு (வாச s
சு (வாதீன s சு (வாதீன s
சு (வாமி s சு (வாமி s
அ) சுவாரசி (ய sva:rVs அ) சுவாரசி (ய sva:rVs
சு (வாரஸ்ய s சு (வாரஸ்ய s
_) சு (விட்ச s _) சு (விட்ச s
_) சு (விஸ s
_) சு (வீட s _) சு (வீட s
_) ச (ூரண tS
_) செக் (_ tSek _) செக் (_ tSek
_) ச (ெக்கோL04 tS _) ச (ெக்கோL04 tS
_) ச (ெங்கிஸ tS _) ச (ெங்கிஸ tS
_) ச (ென்னி tS _) ச (ென்னி tS
_) ச (ென்னை tS _) ச (ென்னை tS
_) ச (ெயின tS _) ச (ெயின tS
_) செயின்ட sejint.V#
_) செயின்ட sejint.
_) ச (ெய்ன tS _) ச (ெய்ன tS
_) செய்ன்ட sejnt.V#
_) செய்ன்ட sejnt.
_) ச (ெர்னோபில tS _) ச (ெர்னோபில tS
_) ச (ெல்லக்கிளி tS
_) ச (ெல்லக்குட்டி tS _) ச (ெல்லக்குட்டி tS
_) ச (ெல்லக்குழந்த tS
_) ச (ெல்லத்துக்கு tS _) ச (ெல்லத்துக்கு tS
_) ச (ெல்லத்தை tS _) ச (ெல்லத்தை tS
_) ச (ெல்லப்பன tS _) ச (ெல்லப்பன tS
_) ச (ெல்லப்பெண் tS _) ச (ெல்லப்பெண் tS
_) ச (ெல்லப்பையன tS _) ச (ெல்லப்பையன tS
_) ச (ெல்லமா tS _) ச (ெல்லமா tS
_) ச (ெல்லமே_ tS
_) ச (ெஸ் tS _) ச (ெஸ் tS
ச (ெஸ்டர tS // -chester
_) ச (ேஞ்ச tS _) ச (ேஞ்ச tS
_) ச (ேட்டன tS
_) ச (ேனல tS _) ச (ேனல tS
_) ச (ேரி tS _) ச (ேரி tS
_) ச (ேர்மேன tS _) ச (ேர்மேன tS
_) ச (ைனாவ tS _) ச (ைனாவ tS
_) ச (ைனீஸ tS _) ச (ைனீஸ tS
_) ச (ௌதரி tS _) ச (ௌதரி tS
_) ச (ௌதிரி tS
_) ச (ௌஹான tS
//endsort //endsort




அர்ஜண்) ட t.V# அர்ஜண்) ட t.V#
அர்ஜெண்) ட t.V# அர்ஜெண்) ட t.V#
இண்டர்மீடியே) ட t.V# இண்டர்மீடியே) ட t.V#
ன்ஸ்பரண்) ட t.V#
ன்ஸ்பெரண்) ட t.V#
_) ட (ஃப் t.V _) ட (ஃப் t.V
_) ட (க் t.V
_) ட (க்கர t.V _) ட (க்கர t.V
ங்) ட (ன t.V // -ington ங்) ட (ன t.V // -ington
_நியூ) ட (ன t.V _நியூ) ட (ன t.V
_) ட (யரில t.V _) ட (யரில t.V
_) ட (யரு t.V _) ட (யரு t.V
_) ட (யர் t.V _) ட (யர் t.V
ஃபில்) ட (ர t.V
_செண்) ட (ர t.V _செண்) ட (ர t.V
_ப்ரிண்) ட (ர t.V _ப்ரிண்) ட (ர t.V
_ஷெல்) ட (ர t.V _ஷெல்) ட (ர t.V
கான்) டினென்ட (ல t.inent.V கான்) டினென்ட (ல t.inent.V
_) ட (ின் t. _) ட (ின் t.
_) டின்க (ரிங் t.inkV _) டின்க (ரிங் t.inkV
_) டிப (ன t.ifV
_சர்) டிபிகேட t.ifige:t.V# _சர்) டிபிகேட t.ifige:t.V#
_) ட (ிப்ஸ t. _) ட (ிப்ஸ t.
_) டி (யூசன t. _) டி (யூசன t.
_) டி (யூஷன t. _) டி (யூஷன t.
_) டி (ரங் t. _) டி (ரங் t.
_) டி (ரங்கு t. _) டி (ரங்கு t.
_) டி (ரபிள t.
_) டிரம்பெட் t.rVmpet. _) டிரம்பெட் t.rVmpet.
_) டிர (ஸ d.re _) டிர (ஸ d.re
_) டிர (ஸ்ட t.rV _) டிர (ஸ்ட t.rV
_) டி (ராஜ t. _) டி (ராஜ t.
_) டி (ரான்சிஸ்டர t. _) டி (ரான்சிஸ்டர t.
_) டி (ரான்ஸ்ஃபர t. _) டி (ரான்ஸ்ஃபர t.
_) டி (ரான்ஸ்ப t.
_) டிரான்ஸ்ப (ர t.ra:nsfV _) டிரான்ஸ்ப (ர t.ra:nsfV
_) டி (ரான்ஸ்பாண்டர t.
_) டிரான்ஸ்பிரண்ட t.ra:nspirVn.t.V#
_) டிரான் (ஸ்பரண்ட+++ t.ra:n
_) டி (ரான்ஸ்மீட்டர t. _) டி (ரான்ஸ்மீட்டர t.
_) டி (ரான்ஸ்லே t. _) டி (ரான்ஸ்லே t.
_) டி (ரான்ஸ்வேல t. _) டி (ரான்ஸ்வேல t.
_) டிரிக்க (ர t.riggV _) டிரிக்க (ர t.riggV
_) டி (ரிங்க் d. _) டி (ரிங்க் d.
_) டி (ரிம் t. _) டி (ரிம் t.
_) டி (ரில்லியன t.
_) டிரீட் t.ri:t. _) டிரீட் t.ri:t.
_) டி (ரெண் t.
_) டிரெயி(லர t.rej _) டிரெயி(லர t.rej
_) டி (ரெயின t. _) டி (ரெயின t.
_) டி (ரெய்லர t. _) டி (ரெய்லர t.
_) டி (ரை_செஞ்ச t. _) டி (ரை_செஞ்ச t.
_) டி (ரை_செய் t. _) டி (ரை_செய் t.
_) டி (ரை_பண் t. _) டி (ரை_பண் t.
_) டி (ரைலர t.
_) டி (ரைவ d. _) டி (ரைவ d.
கண்) டி (ரோல t. கண்) டி (ரோல t.
_நெக) ட (ிவ t. _நெக) ட (ிவ t.
_) ட (ுனீL04 t. _) ட (ுனீL04 t.
_) ட (ுனீஷிய t. _) ட (ுனீஷிய t.
_) டுவிங்க (ிள t.wiNk _) டுவிங்க (ிள t.wiNk
_) டுவ (ிட்டர t.w
_கார்) ட (ூன t. _கார்) ட (ூன t.
_) ட (ூர t. _) ட (ூர t.
_) டெக் (னாலஜி t.ek _) டெக் (னாலஜி t.ek
_) டெக்னிக (ல t.eknikV _) டெக்னிக (ல t.eknikV
_) ட (ெக்ஸாஸ t. _) ட (ெக்ஸாஸ t.
_) ட (ெக்ஸ் t.
_) ட (ெண்டர t. _) ட (ெண்டர t.
_) ட (ெண்டுல்கர t. _) ட (ெண்டுல்கர t.
_) டென்டுல்க (ர t.ent.UlkV _) டென்டுல்க (ர t.ent.UlkV
_) டைட (ில t.aIt. _) டைட (ில t.aIt.
_) டைப் t.aIp _) டைப் t.aIp
_) ட (ைம்_ t. _) ட (ைம்_ t.
_) டொக் t.ok
_) ட (ோக்கன t. _) ட (ோக்கன t.
_) ட (ோக்கியோ t. _) ட (ோக்கியோ t.
_) ட (ோட்டல t.
_) டோரண்ட (ோ t.o:rVn.t. _) டோரண்ட (ோ t.o:rVn.t.
_ப்ரி) ட (ோரிய t. _ப்ரி) ட (ோரிய t.
@மெண்) ட் t. // -ment @மெண்) ட் t. // -ment
ஸ்) ட் (ர _|t. // ?? make t. distinct ஸ்) ட் (ர _|t. // ?? make t. distinct
_) ட் (ரங் t. _) ட் (ரங் t.
_) ட் (ரங்கு t. _) ட் (ரங்கு t.
_) ட் (ரபிள t.
_) ட்ரம்பெட் t.rVmpet. _) ட்ரம்பெட் t.rVmpet.
_) ட் (ரஸ்ட t. _) ட் (ரஸ்ட t.
_த) ட் (ரா t. _த) ட் (ரா t.
_நியூ) ட் (ரான t. _நியூ) ட் (ரான t.
_) ட (்ரான்சிஸ்டர t. _) ட (்ரான்சிஸ்டர t.
_) ட் (ரான்ஸ்ஃபர t. _) ட் (ரான்ஸ்ஃபர t.
_) ட் (ரான்ஸ்ப t.
_) ட்ரான்ஸ்ப (ர t.ra:nsfV _) ட்ரான்ஸ்ப (ர t.ra:nsfV
_) ட் (ரான்ஸ்பாண்டர t. _) ட் (ரான்ஸ்பாண்டர t.
_) ட்ரான்ஸ்பிரண்ட t.ra:nspirVn.t.V# _) ட்ரான்ஸ்பிரண்ட t.ra:nspirVn.t.V#
_) ட்ரிக் t.rik _) ட்ரிக் t.rik
_) ட்ரிக்க (ர t.riggV _) ட்ரிக்க (ர t.riggV
_) ட் (ரிம் t. _) ட் (ரிம் t.
_) ட் (ரில்லியன t.
_) ட்ரீட் t.ri:t. _) ட்ரீட் t.ri:t.
_வி) ட் (ரு t. _வி) ட் (ரு t.
_கே) ட் (ரு t. _கே) ட் (ரு t.
_போ) ட் (ரு t. _போ) ட் (ரு t.
_) ட் (ரெண் t.
_) ட்ரெயி (லர t.rej _) ட்ரெயி (லர t.rej
_) ட் (ரெய்லர t. _) ட் (ரெய்லர t.
இண்) ட் (ரேஸ்ட t. இண்) ட் (ரேஸ்ட t.
_) ட் (ரை_செய் t. _) ட் (ரை_செய் t.
_) ட் (ரை_பண் t. _) ட் (ரை_பண் t.
_) ட் (ரையல t. _) ட் (ரையல t.
_) ட் (ரைலர t.
_பெ) ட் (ரோ t. _பெ) ட் (ரோ t.
_மெ) ட் (ரோ t. _மெ) ட் (ரோ t.
கண்) ட் (ரோல t. கண்) ட் (ரோல t.
_ஹி) ட் (லர t. _ஹி) ட் (லர t.
அ) ட்லாண்ட t.la:n.t.V# // atlant அ) ட்லாண்ட t.la:n.t.V# // atlant
_) ட்விங்க (ிள t.wiNk _) ட்விங்க (ிள t.wiNk
_) ட்வ (ிட்டர t.w
//endsort //endsort




_) த (னராஜ dV _) த (னராஜ dV
_) த (னலக்ஷ்மி dV _) த (னலக்ஷ்மி dV
_) த (னலட்சுமி dV _) த (னலட்சுமி dV
_) த (னவந்த dV
_) த (னுஷ dV _) த (னுஷ dV
_) த (ன்மந்திரி dV _) த (ன்மந்திரி dV
_) த (ன்ராஜ dV _) த (ன்ராஜ dV
_) த (ன்வந்தரி dV
_) தபதப dVbVdVbV# _) தபதப dVbVdVbV#
_) த (மயந்தி dV _) த (மயந்தி dV
_) த (ம்பதி dV _) த (ம்பதி dV
_) த (ிம்ம d _) த (ிம்ம d
_) தி (யாக t _) தி (யாக t
_) தி (யான d _) தி (யான d
_) தி (யேட்டர t
_) த (ிரவ d _) த (ிரவ d
_) த (ிரவிய d _) த (ிரவிய d
_) தி (ராட்சை d _) தி (ராட்சை d
_) தி (ராணி t _) தி (ராணி t
_) தி (ராவிட d _) தி (ராவிட d
_) திரிப (ாதி trip
_) திரிப (ோலி trip
_) தி (ரிலோக t
_) தி (ரிவேதி t
_) திரு (திரா dri _) திரு (திரா dri
_) திரு (ஷ்டி dri _) திரு (ஷ்டி dri
_) த (ிரௌபதி d _) த (ிரௌபதி d
_) து (ரோண t _) து (ரோண t
_) த (ுர் d _) த (ுர் d
_) து (வந்த_ d _) து (வந்த_ d
_) துவ (ாதசி dv
_) துவாப (ர dva:pV _) துவாப (ர dva:pV
_) துவ (ார dv _) துவ (ார dv
_) து (வேச d _) து (வேச d
_) து (வேஷ d _) து (வேஷ d
_) துவைத (_ dvaItV _) துவைத (_ dvaItV
_) துவ (ைதத்த dv
_) துவைத (த்தில dvaItV _) துவைத (த்தில dvaItV
_) துவைத (ம dvaItV _) துவைத (ம dvaItV
_) த (ுஷ் d _) த (ுஷ் d
_) த (ேச d _) த (ேச d
_) த (ேவகான d _) த (ேவகான d
_) த (ேவகி d _) த (ேவகி d
_) த (ேவகுமார d
_) த (ேவகுரு d _) த (ேவகுரு d
_) த (ேவகுல d _) த (ேவகுல d
_) த (ேவக் d _) த (ேவக் d
யு) த்த ddV# யு) த்த ddV#
_சிரார்) த்த ddV# _சிரார்) த்த ddV#
_ஸ்ரார்) த்த ddV# _ஸ்ரார்) த்த ddV#
அர்) த்த (L09ார ddV
_சிறை) த்த (ண்டனை ddV _சிறை) த்த (ண்டனை ddV
பு) த்த (ன ddV பு) த்த (ன ddV
_வர்) த்த (மான ddV _வர்) த்த (மான ddV
ஆதி) த்தி (ராவிட dd ஆதி) த்தி (ராவிட dd
ராஜ) த்து (ரோக dd ராஜ) த்து (ரோக dd
_தேச) த்து (ரோகி td _தேச) த்து (ரோகி td
அ) த்து (வான d
வி) த்து (வான d வி) த்து (வான d
_முக) த்து (வார dd _முக) த்து (வார dd
L03) த்த (ூச dd L03) த்த (ூச dd
பி_._) ப(ி_._சி b // b.b.c பி_._) ப(ி_._சி b // b.b.c
_) ப (L06ுகுணா bV _) ப (L06ுகுணா bV
_) ப (L07லர b _) ப (L07லர b
_) ப (ஃபூன bV
_) ப (கதூர bV _) ப (கதூர bV
_) ப (கத்சிங் bV _) ப (கத்சிங் bV
_) ப (கவதி bV _) ப (கவதி bV
_) ப (கிஷ்க bV _) ப (கிஷ்க bV
_) ப (கீர bV _) ப (கீர bV
_) ப (குள bV _) ப (குள bV
_) ப (க்கிங்L06ாம bV
_) ப (க்கெட் bV _) ப (க்கெட் bV
_) ப (க்கென்ற bV _) ப (க்கென்ற bV
_) பக் (த bVk _) பக் (த bVk
_) பக் (ரீத bVk _) பக் (ரீத bVk
_) ப (க்ருதீன fV _) ப (க்ருதீன fV
_) ப (க்ஷண bV
_) ப (ங்கம bV _) ப (ங்கம bV
_) பங்க (ர bVNkV _) பங்க (ர bVNkV
_) ப (ங்களா bV _) ப (ங்களா bV
_) பந்த (ுலு bVnt _) பந்த (ுலு bVnt
_) ப (ந்துவ bV _) ப (ந்துவ bV
_) ப (ந்தோபஸ்த bV _) ப (ந்தோபஸ்த bV
_) ப (னல fV
_) ப (னியன bV _) ப (னியன bV
_) ப (ன்னாரி bV _) ப (ன்னாரி bV
_டீயும்_) ப (ன்னும்_ bV
_) ப (ன்னும்_டீயும் bV
_) ப (ன்ருட்டி bV _) ப (ன்ருட்டி bV
_) ப (பூன bV
_) ப (ம்பர bV _) ப (ம்பர bV
_) ப (ம்பாய bV _) ப (ம்பாய bV
_) ப (யங் bV _) ப (யங் bV
_) ப (யபக்தி bV _) ப (யபக்தி bV
_) ப (யப் bV _) ப (யப் bV
_) ப (யப்பத pV _) ப (யப்பத pV
_) ப (யப்பவை pV
_) ப (யம bV _) ப (யம bV
_) ப (யாலஜி bV _) ப (யாலஜி bV
_) பயாஸ்கோப் bVja:sko:p _) பயாஸ்கோப் bVja:sko:p
_) ப (லப்பட bV _) ப (லப்பட bV
_) ப (லப்படு bV _) ப (லப்படு bV
_) ப (லப்பரீட்சை bV _) ப (லப்பரீட்சை bV
_) ப (லம bV
_) ப (லமடங்க pV
_) ப (லமாடி pV
_) ப (லமுறை pV
_) ப (லமொழி pV
_) ப (லமணைத்த bV
_) ப (லமாகC் bV
_) ப (லமாகி bV
_) ப (லமாச்ச bV
_) ப (லமான bV
_) ப (லமாய் bV
_) ப (லமுடன bV
_) ப (லமும bV
_) ப (லராம bV _) ப (லராம bV
_) ப (லவந்த bV _) ப (லவந்த bV
_) ப (லவான bV _) ப (லவான bV
_) ப (ாக்ஸர b _) ப (ாக்ஸர b
_) ப (ாக்ஸிங் b _) ப (ாக்ஸிங் b
_) பாங்க (ாக் ba:Nk _) பாங்க (ாக் ba:Nk
_) ப (ாங்கில b
_) ப (ாங்க் b _) ப (ாங்க் b
_) ப (ாசு b _) ப (ாசு b
_) ப (ாசுர p _) ப (ாசுர p
_) ப (ாடி_பில்டிங் b _) ப (ாடி_பில்டிங் b
_) ப (ாட்டலியன b _) ப (ாட்டலியன b
_L10_) ப (ாட்டில b // bottle
_L12_) ப (ாட்டில b // bottle
_) ப (ாட்டிலி b _) ப (ாட்டிலி b
_) ப (ாட்டிலுக் b _) ப (ாட்டிலுக் b
_) ப (ாட்டிலுடன b _) ப (ாட்டிலுடன b
_) பாப (ர ba:bV _) பாப (ர ba:bV
_) பாப (ாசாகேப் ba:b _) பாப (ாசாகேப் ba:b
_) பாப (ாசாஹேப் ba:b _) பாப (ாசாஹேப் ba:b
_) பாப (ாவ ba:b
_) ப (ாபிலோனியா b _) ப (ாபிலோனியா b
_) ப (ாபுவ b _) ப (ாபுவ b
_) ப (ாமாவ b _) ப (ாமாவ b
_) ப (ாம்பே b _) ப (ாம்பே b
_ஆடு_) ப (ாம்பே p _ஆடு_) ப (ாம்பே p
_விளையாடு_) ப (ாம்பே p _விளையாடு_) ப (ாம்பே p
_ரூம்_) ப (ாய b
_) ப (ாரத b _) ப (ாரத b
_) ப (ாரதி b _) ப (ாரதி b
_) ப (ாரத்த b _) ப (ாரத்த b
_) ப (ிசினஸ b _) ப (ிசினஸ b
_) ப (ிசிய b _) ப (ிசிய b
_) ப (ிஜிலி b _) ப (ிஜிலி b
_) ப (ிடில f
_) ப (ிட்சு b _) ப (ிட்சு b
_) ப (ிட்டடி b _) ப (ிட்டடி b
_) ப (ினாமி b _) ப (ினாமி b
_) ப (ிரித்தானி b _) ப (ிரித்தானி b
_) பி (ரித்தானி b _) பி (ரித்தானி b
_) பிரின்சிப (ால prinsip _) பிரின்சிப (ால prinsip
_) பிரியங்க (ா prijVNk
_) பி (ரியதர p
_) பி (ரியன p _) பி (ரியன p
_) பி (ரியப்பட p _) பி (ரியப்பட p
_) பி (ரியம p _) பி (ரியம p
_) பிள (ைட் fl. _) பிள (ைட் fl.
_) பி (ளௌஸ b _) பி (ளௌஸ b
_) பிஷப் bis.Vp _) பிஷப் bis.Vp
_) ப (ிஷ் f
_) ப (ிஸினஸ b _) ப (ிஸினஸ b
_) ப (ிஸிய b _) ப (ிஸிய b
_) ப (ிஸ்கட் b _) ப (ிஸ்கட் b
_) ப (ிஸ்கெட் b _) ப (ிஸ்கெட் b
_) ப (ிஸ்கோத் b _) ப (ிஸ்கோத் b
_) ப (ிஸ்மார்க் b
_) ப (ிஸ்மில்லா b
_) ப (ீகார b _) ப (ீகார b
_) ப (ீச்சில b _) ப (ீச்சில b
_) ப (ீச்சுக்க b _) ப (ீச்சுக்க b
_) புரபொ (சர profV _) புரபொ (சர profV
_) பு (ரவுச b _) பு (ரவுச b
_) ப (ுருடா b _) ப (ுருடா b
_) பு (ருனாய b
_) புரொப (சர profV _) புரொப (சர profV
_) புரொபொ (சர profV _) புரொபொ (சர profV
_) பு (ரோகித p _) பு (ரோகித p
_) ப (ுஸ்ஸெ b _) ப (ுஸ்ஸெ b
_) ப (ூகம்ப b _) ப (ூகம்ப b
_) ப (ூகோல b _) ப (ூகோல b
_) ப (ூச்சாண்டி b
_) பூட (ான bu:t. _) பூட (ான bu:t.
_) ப (ூட்ஸ b _) ப (ூட்ஸ b
_) ப (ூதகணங்க b _) ப (ூதகணங்க b
_) ப (ெண்டாஸ்டிக் f _) ப (ெண்டாஸ்டிக் f
_) ப (ெதர f _) ப (ெதர f
_) ப (ெனசீர b _) ப (ெனசீர b
_) பெப்ப (ே bebb
_) ப (ெப்ரவரி f _) ப (ெப்ரவரி f
_) ப (ெர்னாட்ஷா b _) ப (ெர்னாட்ஷா b
_) ப (ெர்னான்ட f _) ப (ெர்னான்ட f
_) ப (ேஜார b _) ப (ேஜார b
_) ப (ேட்டரி b _) ப (ேட்டரி b
_) ப (ேட்டா b _) ப (ேட்டா b
_) ப (ேதங் b
_) ப (ேதமி b
_) ப (ேதமு b
_) ப (ேதலித்த b _) ப (ேதலித்த b
_) ப (ேதி b _) ப (ேதி b
_) ப (ேனர b _) ப (ேனர b
_) ப (ேஷன f _) ப (ேஷன f
_) ப (ேஷா b _) ப (ேஷா b
_) ப (ைக்குகள b _) ப (ைக்குகள b
_) ப (ைசன b
_) ப (ைபிள b _) ப (ைபிள b
_) ப (ைரவ b _) ப (ைரவ b
_) ப (ொம்மன b _) ப (ொம்மன b
_) ப (ொம்மல b _) ப (ொம்மல b
_) ப (ொம்மை b _) ப (ொம்மை b
_) ப (ோஃபோர் b _) ப (ோஃபோர் b
_) ப (ோக_L11 b
_) ப (ோக_L13 b
_) ப (ோகங்க b _) ப (ோகங்க b
_) ப (ோகத்த b _) ப (ோகத்த b
_) ப (ோகத்திற்க b _) ப (ோகத்திற்க b
_) ப (ோர்_அடி b _) ப (ோர்_அடி b
_) ப (ோர்ஜரி f _) ப (ோர்ஜரி f
_) ப (ோர்தான்_அடி b _) ப (ோர்தான்_அடி b
_) ப (ோர்வெல் b
_) ப (ோஷி b _) ப (ோஷி b
_சந்திர_) ப (ோஸ b _சந்திர_) ப (ோஸ b
_) ப (ோஸிட b _) ப (ோஸிட b
_) பௌண்ட (ன faUn.t.V _) பௌண்ட (ன faUn.t.V
_) ப (ௌதிக b _) ப (ௌதிக b
_) ப (ௌத்த b _) ப (ௌத்த b
சு) ப்பி (ரமணி b
_) ப் (ரசல்ஸ b _) ப் (ரசல்ஸ b
_) ப்ரபொ (சர profV _) ப்ரபொ (சர profV
_) ப் (ரம்ம b _) ப் (ரம்ம b
_) ப் (ரான்ஸ f _) ப் (ரான்ஸ f
_) ப் (ராவ b _) ப் (ராவ b
_) ப்ரிஸ்ப (ேன brisb _) ப்ரிஸ்ப (ேன brisb
_) ப் (ருனாய b
_) ப் (ரெஞ்ச் f _) ப் (ரெஞ்ச் f
_) ப் (ரெட் b _) ப் (ரெட் b
_) ப்ரெட்ரிக் fred.rik _) ப்ரெட்ரிக் fred.rik
_பயன்) ப pV _பயன்) ப pV
_விகல்) ப pV# _விகல்) ப pV#
அடால்) ப fV# அடால்) ப fV#
_ஷெரீ) ப (+ fV#
_ஸ்தா) ப (+ bV#
பரிதா) ப (+ bV# பரிதா) ப (+ bV#
அநுதா) ப (+ bV# அநுதா) ப (+ bV#
அனுதா) ப (+ bV# அனுதா) ப (+ bV#
பிரஸ்தா) ப (+ bV# பிரஸ்தா) ப (+ bV#
_பச்சாதா) ப (+ bV# _பச்சாதா) ப (+ bV#
_விரகதா) ப (+ bV#
மனஸ்தா) ப (+ bV# மனஸ்தா) ப (+ bV#
அல்) ப (_ pV# அல்) ப (_ pV#
நன்) ப (கல pV நன்) ப (கல pV
ஜிந்தா) ப (ாத் b ஜிந்தா) ப (ாத் b
ச) பாபதி ba:pVti ச) பாபதி ba:pVti
_) பாபவிமோசன pa:bVvimo:tSV _) பாபவிமோசன pa:bVvimo:tSV
_சாயி) பாப (ா ba:b
_சாய்) பாப (ா ba:b _சாய்) பாப (ா ba:b
அ) பாயிண்ட்மெண்ட pa:jin.t.ment.V# அ) பாயிண்ட்மெண்ட pa:jin.t.ment.V#
_டீ) ப (ாய் p _டீ) ப (ாய் p
L03தன்) ப (ால p L03தன்) ப (ால p
_ப்ரின்சி) ப (ால p _ப்ரின்சி) ப (ால p
_சிவ) ப (ாலன b _சிவ) ப (ாலன b
_கம்) ப (ாலா p
_கா) ப (ாலி b _கா) ப (ாலி b
_டி) பால்ட fa:lt.V# _டி) பால்ட fa:lt.V#
_நே) ப (ாள p _நே) ப (ாள p
வீண்) ப (ாவ p வீண்) ப (ாவ p
அடி) ப (ாவி p அடி) ப (ாவி p
_நவ) ப (ாஷ p _நவ) ப (ாஷ p
_தமிழ்ப்) ப (ாஷ _b
வாதா) ப (ி p வாதா) ப (ி p
_கடா) ப (ி f
சித்தப்) பி(ரமை b சித்தப்) பி(ரமை b
_கன்) ப (ிகர f _கன்) ப (ிகர f
வாலி) பிக (ேஷன fik வாலி) பிக (ேஷன fik
_முன்) ப (ின்_ p _முன்) ப (ின்_ p
@) ப (ின்நாலும்_ p @) ப (ின்நாலும்_ p
@) ப (ின்னர்_ p @) ப (ின்னர்_ p
_கன்னா) ப (ின்னா p
@) ப (ின்னால்_ p @) ப (ின்னால்_ p
_) ப (ிப்ரவரி f _) ப (ிப்ரவரி f
_லெஸ்) ப (ியன b _லெஸ்) ப (ியன b
உ) ப்ப (ிப் bb உ) ப்ப (ிப் bb
உ) ப்ப (ிய bb உ) ப்ப (ிய bb
அ) ப்ப (ியாச bb அ) ப்ப (ியாச bb
_சிவ) ப்பி (ரகா pp
_யாதவ) ப்பி (ரகாச pp
அதிக) ப்பி (ரசங்க pp அதிக) ப்பி (ரசங்க pp
_நில) ப்பி (ரபு pp _நில) ப்பி (ரபு pp
மன) ப்பி (ரமை bb மன) ப்பி (ரமை bb
_பர) ப்பி (ரம்ம pb _பர) ப்பி (ரம்ம pb
_மணி) ப்பி (ரவா pp
L03) ப்பி (ரவாக pp L03) ப்பி (ரவாக pp
_நதி) ப்பி (ரவாக pp _நதி) ப்பி (ரவாக pp
அக) ப்பி (ரவாக pp
_ஜல) ப்பி (ரவாக pp
_மன) ப்பி (ரவாக pp _மன) ப்பி (ரவாக pp
_ரத்த) ப்பி (ரவாக pp
இரத்த) ப்பி (ரவாக pp
_ஒL10ி) ப்பி (ரவாக pp
தேச) ப்பி (ரஷ்ட pp தேச) ப்பி (ரஷ்ட pp
ஆ) ப்பி (ரிக்க f ஆ) ப்பி (ரிக்க f
தென்னா) ப்பி (ரிக்க fV தென்னா) ப்பி (ரிக்க fV
_ஹ) ப்ப (ிள bb
_சந்தேக) ப்ப (ுத்தி bb _சந்தேக) ப்ப (ுத்தி bb
இ) ப்ப (ூமி bb இ) ப்ப (ூமி bb
_ல) ப்ப (ை bb _ல) ப்ப (ை bb
ம mV ம mV
ம (B m ம (B m
_சL07) மி (ய m _சL07) மி (ய m
_) மி (யூ m




.group ய .group ய
_) வி (யா v _) வி (யா v
வி (யூக v வி (யூக v


D_) வ (து_ a:vV
D_) வ (தும்_ a:vV
D_) வ (துமாக_ a:vV
-) வ (து_ a:vV
-) வ (தும்_ a:vV
-) வ (துமாக_ a:vV



.group ஶ .group ஶ
ஶ SV ஶ SV
இ (ரத்த இ (ரத்த
இரப்ப (ர rVbbV இரப்ப (ர rVbbV
இ (ரயில இ (ரயில
இ (ரவீந்திர
இ (ராக இ (ராக
இ (ராச இ (ராச
இ (ராஜ இ (ராஜ
இ (ராதாகி இ (ராதாகி
இ (ராதாவ இ (ராதாவ
இ (ராத்த இ (ராத்த
இ (ராப்_
இ (ராப்பிச்சை இ (ராப்பிச்சை
இ (ராம இ (ராம
இ (ராமல்_ i இ (ராமல்_ i
இ (ராவுத்த இ (ராவுத்த
இ (ராஷ்டிர இ (ராஷ்டிர
இ (லகுவாக இ (லகுவாக
இ (லக்ஷ்மண
இ (லட்சக் இ (லட்சக்
இ (லட்சங் இ (லட்சங்
இ (லட்சண இ (லட்சண
இ (லட்சம இ (லட்சம
இ (லட்சா இ (லட்சா
இ (லட்சிய இ (லட்சிய
இ (லட்சுமண
இ (லட்சுமி இ (லட்சுமி
இ (லண்டன இ (லண்டன
இ (லத்தீன இ (லத்தீன
இ (லயி
இ (லவங்க இ (லவங்க
இ (லாப இ (லாப
இ (லேச இ (லேச

+ 4
- 4
espeak-data/voices/!v/f1 View File

language variant language variant
name female1 name female1
gender female
gender female 70


pitch 145 200
flutter 7
pitch 140 200
flutter 8
roughness 4 roughness 4
formant 0 115 80 150 formant 0 115 80 150
formant 1 120 80 180 formant 1 120 80 180
formant 7 110 70 150 formant 7 110 70 150
formant 8 110 70 150 formant 8 110 70 150


stressAdd -10 -10 -20 -20 0 0 40 70
stressAdd -10 -10 -20 -20 0 0 40 60

+ 1
- 1
espeak-data/voices/!v/m1 View File

gender male 70 gender male 70


pitch 75 109 pitch 75 109
flutter 4
flutter 5
roughness 4 roughness 4
consonants 80 100 consonants 80 100



+ 0
- 1
espeak-data/voices/!v/m7 View File

formant 7 100 50 100 formant 7 100 50 100
formant 8 100 50 100 formant 8 100 50 100
voicing 155 voicing 155
fast_test 0 45 75



+ 1
- 0
espeak-data/voices/en/en View File

name english name english
language en-uk 2 language en-uk 2
language en-gb 2
language en 2 language en 2
gender male gender male



+ 1
- 0
espeak-data/voices/en/en-n View File

name lancashire name lancashire
language en-uk-north language en-uk-north
language en-uk 3 language en-uk 3
language en 5
gender male gender male


phonemes en-n phonemes en-n

+ 1
- 0
espeak-data/voices/en/en-rp View File

name english_rp name english_rp
language en-uk-rp language en-uk-rp
language en-uk 4 language en-uk 4
language en 5
gender male gender male


phonemes en-rp phonemes en-rp

+ 1
- 0
espeak-data/voices/en/en-wi View File

name en-westindies name en-westindies
language en-wi language en-wi
language en-uk 4 language en-uk 4
language en 10
gender male gender male


phonemes en-wi phonemes en-wi

+ 2
- 0
espeak-data/voices/en/en-wm View File

name english_wmids name english_wmids
language en-uk-wmids language en-uk-wmids
language en-uk 9
language en 9
gender male gender male


phonemes en-wm phonemes en-wm

+ 1
- 0
espeak-data/voices/es-la View File

name spanish-latin-american name spanish-latin-american
language es-la language es-la
language es-mx 6 language es-mx 6
language es 6
gender male gender male


phonemes es-la phonemes es-la

+ 2
- 1
espeak-data/voices/fr-be View File

language fr-be
name french (Belgium) name french (Belgium)
language fr-be
language fr 8
gender male gender male


dictrules 2 dictrules 2

+ 1
- 7
espeak-data/voices/hi View File

name hindi-test
name hindi
language hi language hi
gender male gender male

translator hi
phonemes hi
dictionary hi

dictrules 1

+ 1
- 0
espeak-data/voices/hy-west View File

name armenian-west name armenian-west
language hy-west language hy-west
language hy 8
gender male gender male


// change consonants for West Armenian pronunciation // change consonants for West Armenian pronunciation

+ 1
- 1
espeak-data/voices/mb/mb-de5-en View File

name en-german-5 name en-german-5
language en
language en 9
gender female gender female


pitch 140 220 pitch 140 220

+ 1
- 1
espeak-data/voices/mb/mb-gr2-en View File

name en-greek name en-greek
language en 7
language en 9
gender male gender male


pitch 82 117 pitch 82 117

+ 1
- 1
espeak-data/voices/mb/mb-sw2-en View File

name en-swedish-f name en-swedish-f
language en
language en 10
gender female gender female


pitch 140 220 pitch 140 220

+ 1
- 0
espeak-data/voices/pt-pt View File

name portugal name portugal
language pt-pt language pt-pt
language pt 6
gender male gender male
phonemes pt-pt phonemes pt-pt



+ 136
- 28
phsource/compile_report View File

74 phoneme tables
76 phoneme tables
new total new total
base 107 107 base 107 107
consonants 10 116 consonants 10 116
jbo 2 114 jbo 2 114
nci 3 123 nci 3 123
fi 40 133 fi 40 133
et 47 139
fr 59 140 fr 59 140
fr-ca 11 140 fr-ca 11 140
hi 57 148 hi 57 148
cs 7 135 cs 7 135
hr 25 140 hr 25 140
mk 3 141 mk 3 141
sr 14 140
sr 14 142
ru 49 137 ru 49 137
bg 14 123 bg 14 123
it 19 127 it 19 127
te 16 148 te 16 148
si 24 154 si 24 154
tn 27 119 tn 27 119
mt 32 127


Data file Used by Data file Used by
b/b [b] base b/b [b] base
[d[] base [d[] base
[d] base2 [d] base2
[d] fi [d] fi
[d] et
[d^] et
[d] fr [d] fr
[d] kn [d] kn
[d] hu [d] hu
[d;] pl [d;] pl
[d] hr [d] hr
[d] sq [d] sq
[d] mt
d/d_ [d] base d/d_ [d] base
[d[] base [d[] base
[d] base2 [d] base2
[d] fi [d] fi
[d] et
[d^] et
[d] fr [d] fr
[d.] hi [d.] hi
[d] kn [d] kn
[d;] pl [d;] pl
[d] hr [d] hr
[d] sq [d] sq
[d] mt
d/d_dnt [d] sr d/d_dnt [d] sr
d/dr [*] base d/dr [*] base
[d[] base [d[] base
[d] base2 [d] base2
[d] fi [d] fi
[d] et
[d^] et
[d] fr [d] fr
[d.] hi [d.] hi
[dh.] hi [dh.] hi
[d;] pl [d;] pl
[d] hr [d] hr
[d] sq [d] sq
[d] mt
d/tap [*;] ro d/tap [*;] ro
d/tap1 [*] base d/tap1 [*] base
d/tap2 [t#] en d/tap2 [t#] en
[dz] consonants [dz] consonants
[d] base2 [d] base2
[d] fi [d] fi
[d] et
[d] fr [d] fr
[z] fr [z] fr
[dh] hi [dh] hi
[d] hr [d] hr
[d] sr [d] sr
[d] sq [d] sq
[d] mt
d/xd3 [dh] hi d/xd3 [dh] hi
d/xd_pzd [d;] pl
d/xd_pzd [d^] et
[d;] pl
d/xdr [d] fr d/xdr [d] fr
[d.] hi [d.] hi
[dh.] hi [dh.] hi
g/xgr [g] fr g/xgr [g] fr
h/h_ [h] base h/h_ [h] base
[h] fi [h] fi
[h] et
[<h>] la [<h>] la
[h] mt
h/h@ [h] base h/h@ [h] base
[h] fi [h] fi
[h] sr
[h] et
[h#] sr
[<h>] la [<h>] la
[h] mt
h/ha [h] base h/ha [h] base
[h] fi [h] fi
[h] et
[<h>] la [<h>] la
[h] mt
h/he [h] base h/he [h] base
[h] fi [h] fi
[h] et
[<h>] la [<h>] la
[h] mt
h/hi [h] base h/hi [h] base
[h] fi [h] fi
[h] et
[<h>] la [<h>] la
[h] mt
h/ho [h] base h/ho [h] base
[<h>] la [<h>] la
h/hu [h] base h/hu [h] base
[<h>] la [<h>] la
h/hu_fi [h] fi h/hu_fi [h] fi
[h] et
[h] mt
j2/_j2 [;] base j2/_j2 [;] base
j2/j2@ [;] base j2/j2@ [;] base
j2/j2a [;] base j2/j2a [;] base
[l/] fr [l/] fr
l/l_@ [l/3] base l/l_@ [l/3] base
[l/] fr [l/] fr
l/l@ [l#] base
[”¦] base
l/l@ [hfx] base
[l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[K] nso [K] nso
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 [l#] base
[”¦] base
l/la [hfx] base
[l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[K] nso [K] nso
[K] tn [K] tn
l/l_a [l/3] base l/l_a [l/3] base
[l/] fr [l/] fr
l/le [l#] base
[”¦] base
l/le [hfx] base
[l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[K] nso [K] nso
[&:] 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 [l#] base
[”¦] base
l/li [hfx] base
[l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[l] zh [l] zh
ll/_ll [L] bg ll/_ll [L] bg
l/l_long [l] base l/l_long [l] base
[l] fr [l] fr
l/lo [l#] base
[”¦] base
l/lo [hfx] base
[l#] base
[l/2] fr [l/2] fr
[K] nso [K] nso
[K] tn [K] tn
l^/l_rfx [l.] base l^/l_rfx [l.] base
[l] ru [l] ru
[l^] ru [l^] ru
l/lu [l#] base
[”¦] base
l/lu [hfx] base
[l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[K] nso [K] nso
[r-] tn [r-] tn
r3/r_ [r/] base r3/r_ [r/] base
[r/] af [r/] af
[r] et
[r/] tn [r/] tn
r3/r#_ [r#] is r3/r#_ [r#] is
r3/r_n [r/] base r3/r_n [r/] base
[r] et
r3/r_ru [R4] ru r3/r_ru [R4] ru
r3/r_ru2 [R4] ru r3/r_ru2 [R4] ru
r3/r_trill [R2] base r3/r_trill [R2] base
[r] af [r] af
[r] tn [r] tn
r3/r_trill_short [R2] fi r3/r_trill_short [R2] fi
[R2] et
r3/r_trill.wav [R2] base r3/r_trill.wav [R2] base
[R2] fi [R2] fi
[R2] et
[R2] lv [R2] lv
[R] pl [R] pl
[r*] sr [r*] sr
r3/rx [*] base r3/rx [*] base
[r/] base [r/] base
[r/] af [r/] af
[r] et
[r/] fr [r/] fr
[R] fr-ca [R] fr-ca
[x] pt-pt [x] pt-pt
ufric/ch [C] base ufric/ch [C] base
[J^] base [J^] base
ufric/ch_ [C] base ufric/ch_ [C] base
ufric/ch_sr [h] sr
[x] sr
ufric/ch_sr [h#] sr
[x#] sr
ufric/f [f] base ufric/f [f] base
[pF] de [pF] de
[f] fr [f] fr
[S;] zh [S;] zh
ufric/sh_rfx [s.] base ufric/sh_rfx [s.] base
[s.] zh [s.] zh
ufric/s_pal [s^] et
ufric/s_pzd [s;] base ufric/s_pzd [s;] base
[z;] base [z;] base
[s;] ro [s;] ro
ufric/x_hr [x] base ufric/x_hr [x] base
[x] hr [x] hr
[x] ru [x] ru
ufric/x_sr [h] sr
[x] sr
ufric/x_sr [h#] sr
[x#] sr
ufric/xx [X] base ufric/xx [X] base
[Q"] base [Q"] base
ustop/c [c] base ustop/c [c] base
ustop/ki [k] base ustop/ki [k] base
[k] base2 [k] base2
[c] af [c] af
[k] et
[k] fr [k] fr
[k] lv [k] lv
[k^] mk [k^] mk
ustop/kl [k] base ustop/kl [k] base
[kh] consonants [kh] consonants
[k] base2 [k] base2
[k] et
[k] fr [k] fr
[k] lv [k] lv
[k] el [k] el
[kh] tn [kh] tn
ustop/kr [k] base ustop/kr [k] base
[k] base2 [k] base2
[k] et
[k] el [k] el
[k] zhy [k] zhy
ustop/k_unasp [k] base ustop/k_unasp [k] base
[k-] consonants [k-] consonants
[k] base2 [k] base2
[k] et
[k] lv [k] lv
[k] el [k] el
[k] zhy [k] zhy
[t[] base [t[] base
[t] base2 [t] base2
[t] en-us [t] en-us
[t] et
[dh] hi [dh] hi
[th] hi [th] hi
[t] hu [t] hu
ustop/t_dnt2 [t] base2 ustop/t_dnt2 [t] base2
[d] kn [d] kn
ustop/t_hi [t[] base ustop/t_hi [t[] base
[t] et
ustop/t_pzd [c] base ustop/t_pzd [c] base
[t^] et
[t;] pl [t;] pl
ustop/tr [t] base ustop/tr [t] base
[t] en-us [t] en-us
vdiph2/i@_2 [i@] en-wm vdiph2/i@_2 [i@] en-wm
vdiph2/ie [i@] en-wi vdiph2/ie [i@] en-wi
[ie] fi [ie] fi
[ie] mt
vdiph2/ie_2 [ie] lv vdiph2/ie_2 [ie] lv
vdiph2/ii@ [i@] en vdiph2/ii@ [i@] en
[i@3] en [i@3] en
[iu] zhy [iu] zhy
vdiph2/iu_2 [iu] fi vdiph2/iu_2 [iu] fi
[iu] lv [iu] lv
[iu] mt
vdiph2/iu_3 [iu] af vdiph2/iu_3 [iu] af
vdiph2/iu_4 [Iu] cy vdiph2/iu_4 [Iu] cy
[Yu] cy [Yu] cy
vdiph2/iy [iy] fi vdiph2/iy [iy] fi
[iy] mt
vdiph2/o@ [o@] af vdiph2/o@ [o@] af
[u@] zh [u@] zh
vdiph2/oa [Oa] ro vdiph2/oa [Oa] ro
vdiph2/u#@ [U@] en-sc vdiph2/u#@ [U@] en-sc
vdiph2/uaa [uo] lv vdiph2/uaa [uo] lv
vdiph2/uo [uo] fi vdiph2/uo [uo] fi
[uo] mt
vdiph2/uu@ [U@] en vdiph2/uu@ [U@] en
[U@] en-n [U@] en-n
[U@] en-wm [U@] en-wm
[yu] zh [yu] zh
vdiph2/y-y# [yY] fi vdiph2/y-y# [yY] fi
[y@] vi [y@] vi
[yY] mt
vdiph/8u [oU] en-us vdiph/8u [oU] en-us
[8u] et
[ou] zh [ou] zh
vdiph/aae [aI] en-us vdiph/aae [aI] en-us
vdiph/aai [ai] lv vdiph/aai [ai] lv
vdiph/aai_2 [AI] af vdiph/aai_2 [AI] af
[AY] cy [AY] cy
vdiph/aai_3 [ai] fi vdiph/aai_3 [ai] fi
[ai] mt
vdiph/aau [au] fi vdiph/aau [au] fi
[au] lv [au] lv
[aU] is [aU] is
[aU:] is [aU:] is
[au] mt
vdiph/aau_2 [aU] en-wi vdiph/aau_2 [aU] en-wi
[VU] nl [VU] nl
[aU] la [aU] la
[ei] fi [ei] fi
[ei] lv [ei] lv
[eI] id [eI] id
[ei] mt
vdiph/eei_3 [eI] sk vdiph/eei_3 [eI] sk
[eI] ku [eI] ku
vdiph/eeu [EU] pt vdiph/eeu [EU] pt
[aU] en-wm [aU] en-wm
[eU] ku [eU] ku
vdiph/eey [ey] fi vdiph/eey [ey] fi
[ey] mt
vdiph/ei [eI] base2 vdiph/ei [eI] base2
[e:] nl [e:] nl
[eI] la [eI] la
[eU] vi [eU] vi
[eU] ne [eU] ne
vdiph/eu_2 [eu] fi vdiph/eu_2 [eu] fi
vdiph/@i [@I] vi
[eu] mt
vdiph/@i [Yi] et
[@I] vi
[@:I] vi [@:I] vi
vdiph/&i [&i] fi vdiph/&i [&i] fi
[&i] et
[aI] hi [aI] hi
[i] mt
vdiph/@i_2 [eI] af vdiph/@i_2 [eI] af
[@I] cy [@I] cy
[@Y] cy [@Y] cy
[oi] lv [oi] lv
[OI] no [OI] no
[oi] zhy [oi] zhy
[oi] mt
vdiph/ooi_2 [OI] af vdiph/ooi_2 [OI] af
[oI] eo [oI] eo
vdiph/ooi_3 [OI] en-rp vdiph/ooi_3 [OI] en-rp
vdiph/ou [ou] fi vdiph/ou [ou] fi
[ou] zhy [ou] zhy
[oU] ne [oU] ne
[ou] mt
vdiph/ou_2 [oU] sk vdiph/ou_2 [oU] sk
[oU] ro [oU] ro
vdiph/ou_3 [oU] is vdiph/ou_3 [oU] is
vdiph/ui_3 [uI] cy vdiph/ui_3 [uI] cy
[uY] cy [uY] cy
vdiph/ui_4 [ui] fi vdiph/ui_4 [ui] fi
[ui] mt
vdiph/Vi [VI] ne vdiph/Vi [VI] ne
vdiph/Vu [@U] af vdiph/Vu [@U] af
[VU] ne [VU] ne
vdiph/&y [&y] fi vdiph/&y [&y] fi
[Wy] nl [Wy] nl
vdiph/yi [yi] fi vdiph/yi [yi] fi
[yi] et
[yI] grc [yI] grc
[u-I] no [u-I] no
[yi] zh [yi] zh
[yi] mt
vdiph/y#i [Yi] fi vdiph/y#i [Yi] fi
[Yi] mt
vdiph/y#i_2 [Yy] is vdiph/y#i_2 [Yy] is
[Yy:] is [Yy:] is
vdiph/y#y [Yy] fi vdiph/y#y [Yy] fi
[Yy] mt
vdiph/y#y_2 [Yy] af vdiph/y#y_2 [Yy] af
[eoi] zhy [eoi] zhy
vdiph/y#y_3 [Y:] nl vdiph/y#y_3 [Y:] nl
voc/Q_ulv [Q"] base voc/Q_ulv [Q"] base
voc/v [v] base voc/v [v] base
[v] fi [v] fi
[v] et
[v] fr [v] fr
[v;] ro [v;] ro
[v] mt
voc/v_ [B] base voc/v_ [B] base
[v] base [v] base
[v] fi [v] fi
[v] et
[v] fr [v] fr
[v#] es [v#] es
[v;] ro [v;] ro
[v] mt
voc/v# [v#] base voc/v# [v#] base
voc/v#_ [v#] base voc/v#_ [v#] base
voc/v2 [v#] es voc/v2 [v#] es
[r*] hr [r*] hr
vowel/& [a] en-rp vowel/& [a] en-rp
[&] fi [&] fi
[&] et
[&:] et
[&:] hi [&:] hi
[&] lv [&] lv
[&:] lv [&:] lv
[W2] fr [W2] fr
vowel/8 [o-] zh vowel/8 [o-] zh
vowel/8_2 [U] en-us vowel/8_2 [U] en-us
[8] et
[8] sv [8] sv
vowel/8_3 [eo] zhy vowel/8_3 [eo] zhy
vowel/8_5 [8] ku vowel/8_5 [8] ku
vowel/8_6 [V] sq vowel/8_6 [V] sq
vowel/8_7 [@] lv
vowel/8_7 [8:] et
[@] lv
vowel/a [a] base vowel/a [a] base
[a] en [a] en
[aa] en [aa] en
[a:] wo [a:] wo
vowel/a_7 [a] en vowel/a_7 [a] en
[a] fr [a] fr
[a] sk
[a] ht [a] ht
vowel/aa [A] fr-ca
vowel/aa [a:] et
[A] fr-ca
[A] no [A] no
[A:] no [A:] no
[aa] zhy [aa] zhy
[A:] de [A:] de
vowel/aa_8 [0] en-us vowel/aa_8 [0] en-us
[A:] en-us [A:] en-us
[A] et
[A1] et
[A] nl [A] nl
[a:] is [a:] is
vowel/aa_9 [a] fi vowel/aa_9 [a] fi
[a] et
[a:] hi [a:] hi
[a] ne [a] ne
[a] pa [a] pa
[a] ak [a] ak
[a] mt
vowel/@_bck [@] hi vowel/@_bck [@] hi
[@] bg [@] bg
[@] zh [@] zh
vowel/e_5 [i] en-sc vowel/e_5 [i] en-sc
vowel/e_6 [e] ht vowel/e_6 [e] ht
[e] ak [e] ak
vowel/e_7 [e] et
[e:] et
vowel/e_8 [E:] de vowel/e_8 [E:] de
[e] fr [e] fr
vowel/ee [E] en-n vowel/ee [E] en-n
[&:] af [&:] af
[E] pt [E] pt
[E] vi [E] vi
vowel/ee_4 [E] sq
vowel/ee_4 [E] et
[E1] et
[E] sq
vowel/ee_5 [E] en vowel/ee_5 [E] en
[E] ak [E] ak
[E] wo [E] wo
[e] am [e] am
[e] te [e] te
[e:] si [e:] si
[e] mt
vowel/@_fnt [@] en-wi vowel/@_fnt [@] en-wi
[@2] en-wi [@2] en-wi
[@2] hr [@2] hr
vowel/i# [y:] cy vowel/i# [y:] cy
vowel/i_2 [i2] de vowel/i_2 [i2] de
[i:] de [i:] de
[i] et
[i] nl [i] nl
[i:] la [i:] la
[i:] sv [i:] sv
vowel/i#_2 [y] am vowel/i#_2 [y] am
vowel/i_3 [i] af vowel/i_3 [i] af
[I] et
[I1] et
[i:] sk [i:] sk
vowel/i_4 [i] fi vowel/i_4 [i] fi
[i] hu [i] hu
[i:] is [i:] is
[i] vi [i] vi
[i] da [i] da
[i] mt
vowel/i_5 [i:] en-sc vowel/i_5 [i:] en-sc
vowel/i#_5 [y] pt-pt vowel/i#_5 [y] pt-pt
[i/] pt-pt [i/] pt-pt
[i] te [i] te
[i] si [i] si
vowel/i#_6 [i.] zh vowel/i#_6 [i.] zh
vowel/i_7 [i] pl
vowel/i_7 [i:] et
[i] pl
[i] sq [i] sq
vowel/i#_7 [i[] zh vowel/i#_7 [i[] zh
vowel/i_8 [i] fr vowel/i_8 [i] fr
[i] sq [i] sq
vowel/ii_2 [I] en vowel/ii_2 [I] en
[i] zh [i] zh
[I] mt
vowel/ii#_2 [y] pl vowel/ii#_2 [y] pl
vowel/ii_3 [I] cy vowel/ii_3 [I] cy
[I] fi [I] fi
vowel/ii_4 [I2] en vowel/ii_4 [I2] en
[I] en-us [I] en-us
[I2] tn [I2] tn
vowel/ii_5 [i] ta
vowel/ii_5 [i1] et
[i] ta
[i] bg [i] bg
[I] la [I] la
[i] zh [i] zh
[oU] en-wi [oU] en-wi
[o:] de [o:] de
[o] eo [o] eo
[o:] et
[o] fr [o] fr
[o] hi [o] hi
[o] ta [o] ta
vowel/oe_2 [W] no vowel/oe_2 [W] no
vowel/oe_4 [W] sv vowel/oe_4 [W] sv
vowel/o_mid [U@] en-rp vowel/o_mid [U@] en-rp
[O] et
[o] et
[O1] et
[O] fr [O] fr
[o] hu [o] hu
[o] bg [o] bg
[o] si [o] si
[o:] si [o:] si
[O] tn [O] tn
[o] mt
vowel/oo_2 [0] en-sc vowel/oo_2 [0] en-sc
[O] cy [O] cy
[o] cs [o] cs
[u] am [u] am
[u] wo [u] wo
vowel/u#_2 [u-] sv vowel/u#_2 [u-] sv
vowel/u_3 [u] et
[u:] et
vowel/u#_3 [U] ta vowel/u#_3 [U] ta
[U:] ta [U:] ta
vowel/u#_4 [U] en-sc vowel/u#_4 [U] en-sc
[u:] en-sc [u:] en-sc
[y] ml [y] ml
vowel/u_5 [u] sw
vowel/u_5 [U] et
[U1] et
[u] sw
[u] nso [u] nso
[u] az [u] az
[u] tn [u] tn
[u#] rw [u#] rw
[u] ne [u] ne
[u] pa [u] pa
[u] mt
vowel/u_bck2 [u] fr vowel/u_bck2 [u] fr
[u:] fr [u:] fr
[u:] la [u:] la
[y] zh [y] zh
vowel/uu_4 [U] fi vowel/uu_4 [U] fi
[U] sv [U] sv
[U] mt
vowel/uu_bck [U] en-wi vowel/uu_bck [U] en-wi
[U] fr-ca [U] fr-ca
[U] hi [U] hi
vowel/y [y] base2 vowel/y [y] base2
[y:] de [y:] de
[y] fi [y] fi
[y] et
[y:] et
[y] fr [y] fr
[y:] hu [y:] hu
[y] nl [y] nl
[y] sq [y] sq
[y] da [y] da
[y] az [y] az
[y] mt
vowel/y# [Y] base2 vowel/y# [Y] base2
[3:] en-wm [3:] en-wm
[Y:] de [Y:] de
[Y] fi [Y] fi
[Y] et
[Y:] et
[Y] fr [Y] fr
[Y:] hu [Y:] hu
[8] nl [8] nl
[Y] ro [Y] ro
[oe] zhy [oe] zhy
[W] tr [W] tr
[Y] mt
vowel/y## [y] is vowel/y## [y] is
vowel/y_2 [y:] la vowel/y_2 [y:] la
[y] zh [y] zh
[d[] base [d[] base
[d] base2 [d] base2
[d] fi [d] fi
[d] et
[d] fr [d] fr
[d.] hi [d.] hi
[d] kn [d] kn
[d] hr [d] hr
[d] is [d] is
[d] sq [d] sq
[d] mt
x/d_dnt [d[] base x/d_dnt [d[] base
[d] base2 [d] base2
[d] fi [d] fi
[d] et
[d] kn [d] kn
[d] hu [d] hu
[d] pl [d] pl
x/d_pzd [d;] pl
[d] mt
x/d_pzd [d^] et
[d;] pl
x/dzh [J] base x/dzh [J] base
[dZ] base [dZ] base
x/dzh_ [dZ] base x/dzh_ [dZ] base

+ 4
- 2
phsource/ph_serbian View File





// This is for letter "h" at the beginning of a word // This is for letter "h" at the beginning of a word
phoneme x
// Use [x] from lang=hr, request by Gašić Dajan 27.06.2011
phoneme x#
vls vel frc vls vel frc
lengthmod 3 lengthmod 3
IF nextPh(#i) OR nextPh(#e) THEN IF nextPh(#i) OR nextPh(#e) THEN




// This is for letter "h" not at the beginning of word // This is for letter "h" not at the beginning of word
phoneme h
// Use standard [h], request by Gašić Dajan 27.06.2011
phoneme h#
vls vel frc vls vel frc
lengthmod 3 lengthmod 3
IF nextPh(#@) THEN IF nextPh(#@) THEN

+ 5
- 0
phsource/ph_slovak View File

FMT(vowel/e_mid) FMT(vowel/e_mid)
endphoneme endphoneme



phoneme a phoneme a
vowel starttype #a endtype #a vowel starttype #a endtype #a
length 120 length 120

IF thisPh(isWordEnd) AND thisPh(isUnstressed) THEN
FMT(vowel/a_7)
ENDIF
FMT(vowel/a) FMT(vowel/a)
endphoneme endphoneme



+ 7
- 0
phsource/phonemes View File

phonemetable fi base phonemetable fi base
include ph_finnish include ph_finnish


phonemetable et base
include ph_estonian

phonemetable fr base phonemetable fr base
include ph_french include ph_french




phonemetable tn base phonemetable tn base
include ph_setswana include ph_setswana


phonemetable mt base
include ph_maltese

BIN
phsource/vowel/a#_2 View File


BIN
phsource/w/iw_ View File


BIN
phsource/w/w_ View File


+ 14
- 0
src/Makefile View File

MKDIR = mkdir -p MKDIR = mkdir -p


AUDIO = portaudio AUDIO = portaudio
#AUDIO = portaudio0
#AUDIO = portaudio2
#AUDIO = pulseaudio #AUDIO = pulseaudio
#AUDIO = sada #AUDIO = sada


LIB_AUDIO=-lportaudio LIB_AUDIO=-lportaudio
USE_AUDIO=-DUSE_PORTAUDIO USE_AUDIO=-DUSE_PORTAUDIO
else else
ifeq ($(AUDIO),portaudio0)
WAVE=wave.cpp
LIB_AUDIO=/usr/lib/libportaudio.so.0
USE_AUDIO=-DUSE_PORTAUDIO
else
ifeq ($(AUDIO),portaudio2)
WAVE=wave.cpp
LIB_AUDIO=/usr/lib/libportaudio.so.2
USE_AUDIO=-DUSE_PORTAUDIO
else
ifeq ($(AUDIO),sada) ifeq ($(AUDIO),sada)
WAVE=wave_sada.cpp WAVE=wave_sada.cpp
USE_AUDIO=-DUSE_SADA USE_AUDIO=-DUSE_SADA
endif endif
endif endif
endif endif
endif
endif


speak_SOURCES = speak.cpp compiledict.cpp dictionary.cpp intonation.cpp \ speak_SOURCES = speak.cpp compiledict.cpp dictionary.cpp intonation.cpp \
readclause.cpp setlengths.cpp numbers.cpp synth_mbrola.cpp \ readclause.cpp setlengths.cpp numbers.cpp synth_mbrola.cpp \

+ 14
- 3
src/dictionary.cpp View File

*/ */


int ix; int ix;
int len;
int max_len;
unsigned int len;
unsigned int max_len;
int phon_out_ix=0; int phon_out_ix=0;
int stress; int stress;
unsigned int c; unsigned int c;
const char *word_end; const char *word_end;
const char *word1; const char *word1;
int wflags = 0; int wflags = 0;
int wflags2;
// int wflags2;
char word_buf[N_WORD_BYTES+1]; char word_buf[N_WORD_BYTES+1];


if(wtab != NULL) if(wtab != NULL)
if(end_type & SUFX_E) if(end_type & SUFX_E)
{ {
if(tr->translator_name == L('n','l'))
{
if(((word_end[0] & 0x80) == 0) && ((word_end[-1] & 0x80) == 0) && IsVowel(tr, word_end[-1]) && IsLetter(tr, word_end[0], LETTERGP_C) && !IsVowel(tr, word_end[-2]))
{
//double the vowel before the (ascii) final consonant
word_end[1] = word_end[0];
word_end[0] = word_end[-1];
word_end[2] = ' ';
}
}
else
if(tr->translator_name == L('e','n')) if(tr->translator_name == L('e','n'))
{ {
// add 'e' to end of stem // add 'e' to end of stem

+ 3
- 2
src/mbrowrap.cpp View File

static int start_mbrola(const char *voice_path) static int start_mbrola(const char *voice_path)
{ {
int error, p_stdin[2], p_stdout[2], p_stderr[2]; int error, p_stdin[2], p_stdout[2], p_stderr[2];
ssize_t written;
char charbuf[20]; char charbuf[20];


if (mbr_state != MBR_INACTIVE) { if (mbr_state != MBR_INACTIVE) {
dup2(p_stderr[1], 2) == -1) { dup2(p_stderr[1], 2) == -1) {
snprintf(mbr_errorbuf, sizeof(mbr_errorbuf), snprintf(mbr_errorbuf, sizeof(mbr_errorbuf),
"dup2(): %s\n", strerror(errno)); "dup2(): %s\n", strerror(errno));
write(p_stderr[1], mbr_errorbuf, strlen(mbr_errorbuf));
written = write(p_stderr[1], mbr_errorbuf, strlen(mbr_errorbuf));
_exit(1); _exit(1);
} }


/* if execution reaches this point then the exec() failed */ /* if execution reaches this point then the exec() failed */
snprintf(mbr_errorbuf, sizeof(mbr_errorbuf), snprintf(mbr_errorbuf, sizeof(mbr_errorbuf),
"mbrola: %s\n", strerror(errno)); "mbrola: %s\n", strerror(errno));
write(2, mbr_errorbuf, strlen(mbr_errorbuf));
written = write(2, mbr_errorbuf, strlen(mbr_errorbuf));
_exit(1); _exit(1);
} }



+ 2
- 2
src/numbers.cpp View File

int suffix_ix; int suffix_ix;
int skipwords = 0; int skipwords = 0;
char *p; char *p;
char string[20]; // for looking up entries in **_list
char string[32]; // for looking up entries in **_list
char buf1[100]; char buf1[100];
char ph_append[50]; char ph_append[50];
char ph_buf[200]; char ph_buf[200];
char ph_buf2[50]; char ph_buf2[50];
char ph_zeros[50]; char ph_zeros[50];
char suffix[20];
char suffix[30]; // string[] must be long enough for sizeof(suffix)+2
char buf_digit_lookup[50]; char buf_digit_lookup[50];


static const char str_pause[2] = {phonPAUSE_NOLINK,0}; static const char str_pause[2] = {phonPAUSE_NOLINK,0};

+ 4
- 2
src/phonemelist.cpp View File

if(regression & 0x2) if(regression & 0x2)
{ {
// [v] amd [v;] don't cause regression, or [R^] // [v] amd [v;] don't cause regression, or [R^]
if((ph->mnemonic == 'v') || (ph->mnemonic == ((';'<<8)+'v')) || ((ph->mnemonic & 0xff)== 'R'))
if(((ph->mnemonic & 0xff) == 'v') || ((ph->mnemonic & 0xff)== 'R'))
{ {
stop_propagation = 1; stop_propagation = 1;
if(regression & 0x10)
voicing = 0;
} }
} }


// stop propagation at a word boundary // stop propagation at a word boundary
voicing = 0; voicing = 0;
} }
if(regression & 0x10)
if(regression & 0x100)
{ {
// devoice word-final consonants, unless propagating voiced // devoice word-final consonants, unless propagating voiced
if(voicing == 0) if(voicing == 0)

+ 46
- 12
src/readclause.cpp View File

// frame 0 is for the defaults, before any ssml tags. // frame 0 is for the defaults, before any ssml tags.
typedef struct { typedef struct {
int tag_type; int tag_type;
int voice_variant;
int voice_variant_number;
int voice_gender; int voice_gender;
int voice_age; int voice_age;
char voice_name[40]; char voice_name[40];
static int n_ssml_stack; static int n_ssml_stack;
static SSML_STACK ssml_stack[N_SSML_STACK]; static SSML_STACK ssml_stack[N_SSML_STACK];


static espeak_VOICE base_voice;
static char base_voice_variant_name[40] = {0};
static char current_voice_id[40] = {0}; static char current_voice_id[40] = {0};




// Use the voice properties from the SSML stack to choose a voice, and switch // Use the voice properties from the SSML stack to choose a voice, and switch
// to that voice if it's not the current voice // to that voice if it's not the current voice
int ix; int ix;
const char *p;
SSML_STACK *sp; SSML_STACK *sp;
const char *v_id; const char *v_id;
int voice_name_specified; int voice_name_specified;
int voice_found; int voice_found;
espeak_VOICE voice_select; espeak_VOICE voice_select;
char voice_name[40];
static char voice_name[40];
char language[40]; char language[40];
char buf[80];


strcpy(voice_name,ssml_stack[0].voice_name); strcpy(voice_name,ssml_stack[0].voice_name);
strcpy(language,ssml_stack[0].language); strcpy(language,ssml_stack[0].language);
voice_select.age = ssml_stack[0].voice_age; voice_select.age = ssml_stack[0].voice_age;
voice_select.gender = ssml_stack[0].voice_gender; voice_select.gender = ssml_stack[0].voice_gender;
voice_select.variant = ssml_stack[0].voice_variant;
voice_select.variant = ssml_stack[0].voice_variant_number;
voice_select.identifier = NULL; voice_select.identifier = NULL;


for(ix=0; ix<n_ssml_stack; ix++) for(ix=0; ix<n_ssml_stack; ix++)
if(sp->language[0] != 0) if(sp->language[0] != 0)
{ {
strcpy(language, sp->language); strcpy(language, sp->language);

// is this language provided by the base voice?
p = base_voice.languages;
while(*p++ != 0)
{
if(strcmp(p, language) == 0)
{
// yes, change the language to the main language of the base voice
strcpy(language, &base_voice.languages[1]);
break;
}
p += (strlen(p) + 1);
}
if(voice_name_specified == 0) if(voice_name_specified == 0)
voice_name[0] = 0; // forget a previous voice name if a language is specified voice_name[0] = 0; // forget a previous voice name if a language is specified
} }
if(sp->voice_gender != 0) if(sp->voice_gender != 0)
{
voice_select.gender = sp->voice_gender; voice_select.gender = sp->voice_gender;
}

if(sp->voice_age != 0) if(sp->voice_age != 0)
voice_select.age = sp->voice_age; voice_select.age = sp->voice_age;
if(sp->voice_variant != 0)
voice_select.variant = sp->voice_variant;
if(sp->voice_variant_number != 0)
voice_select.variant = sp->voice_variant_number;
} }


voice_select.name = voice_name; voice_select.name = voice_name;
v_id = SelectVoice(&voice_select, &voice_found); v_id = SelectVoice(&voice_select, &voice_found);
if(v_id == NULL) if(v_id == NULL)
return("default"); return("default");

if((strchr(v_id, '+') == NULL) && ((voice_select.gender == 0) || (voice_select.gender == base_voice.gender)) && (base_voice_variant_name[0] != 0))
{
// a voice variant has not been selected, use the original voice variant
sprintf(buf, "%s+%s", v_id, base_voice_variant_name);
strncpy0(voice_name, buf, sizeof(voice_name));
return(voice_name);
}
return(v_id); return(v_id);
} // end of VoiceFromStack } // end of VoiceFromStack


} // end of AddNameData } // end of AddNameData




void SetVoiceStack(espeak_VOICE *v)
{//================================
void SetVoiceStack(espeak_VOICE *v, const char *variant_name)
{//==========================================================
SSML_STACK *sp; SSML_STACK *sp;
sp = &ssml_stack[0]; sp = &ssml_stack[0];


if(v->languages != NULL) if(v->languages != NULL)
strcpy(sp->language,v->languages); strcpy(sp->language,v->languages);
if(v->name != NULL) if(v->name != NULL)
strcpy(sp->voice_name,v->name);
sp->voice_variant = v->variant;
strncpy0(sp->voice_name, v->name, sizeof(sp->voice_name));
sp->voice_variant_number = v->variant;
sp->voice_age = v->age; sp->voice_age = v->age;
sp->voice_gender = v->gender; sp->voice_gender = v->gender;
strncpy0(base_voice_variant_name, variant_name, sizeof(base_voice_variant_name));
memcpy(&base_voice, &current_voice_selected, sizeof(base_voice));
} }






attrcopy_utf8(ssml_sp->language,lang,sizeof(ssml_sp->language)); attrcopy_utf8(ssml_sp->language,lang,sizeof(ssml_sp->language));
attrcopy_utf8(ssml_sp->voice_name,name,sizeof(ssml_sp->voice_name)); attrcopy_utf8(ssml_sp->voice_name,name,sizeof(ssml_sp->voice_name));
ssml_sp->voice_variant = attrnumber(variant,1,0)-1;
ssml_sp->voice_variant_number = attrnumber(variant,1,0)-1;
ssml_sp->voice_age = attrnumber(age,0,0); ssml_sp->voice_age = attrnumber(age,0,0);
ssml_sp->voice_gender = attrlookup(gender,mnem_gender); ssml_sp->voice_gender = attrlookup(gender,mnem_gender);
ssml_sp->tag_type = tag_type; ssml_sp->tag_type = tag_type;
{"reduced",2}, {"reduced",2},
{"moderate",3}, {"moderate",3},
{"strong",4}, {"strong",4},
{"x-strong",5},
{NULL,-1}}; {NULL,-1}};


static const char *prosody_attr[5] = { static const char *prosody_attr[5] = {


if(translator->langopts.tone_language == 1) if(translator->langopts.tone_language == 1)
{ {
static unsigned char emphasis_to_pitch_range[] = {50,50,40,70,90,90};
static unsigned char emphasis_to_volume[] = {100,100,70,110,140,140};
static unsigned char emphasis_to_pitch_range[] = {50,50,40,70,90,100};
static unsigned char emphasis_to_volume[] = {100,100,70,110,135,150};
// tone language (eg.Chinese) do emphasis by increasing the pitch range. // tone language (eg.Chinese) do emphasis by increasing the pitch range.
sp->parameter[espeakRANGE] = emphasis_to_pitch_range[value]; sp->parameter[espeakRANGE] = emphasis_to_pitch_range[value];
sp->parameter[espeakVOLUME] = emphasis_to_volume[value]; sp->parameter[espeakVOLUME] = emphasis_to_volume[value];
} }
else else
{ {
static unsigned char emphasis_to_volume2[] = {100,100,75,100,120,150};
sp->parameter[espeakVOLUME] = emphasis_to_volume2[value];
sp->parameter[espeakEMPHASIS] = value; sp->parameter[espeakEMPHASIS] = value;
} }
ProcessParamStack(outbuf, outix); ProcessParamStack(outbuf, outix);

+ 1
- 1
src/speak.cpp View File

fprintf(stderr,"Wrong version of espeak-data 0x%x (expects 0x%x) at %s\n",result,version_phdata,path_home); fprintf(stderr,"Wrong version of espeak-data 0x%x (expects 0x%x) at %s\n",result,version_phdata,path_home);
} }
LoadConfig(); LoadConfig();
SetVoiceStack(NULL);
SetVoiceStack(NULL, "");
SynthesizeInit(); SynthesizeInit();


for(param=0; param<N_SPEECH_PARAM; param++) for(param=0; param<N_SPEECH_PARAM; param++)

+ 2
- 3
src/speak_lib.cpp View File

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


unsigned char *outbuf=NULL; unsigned char *outbuf=NULL;
extern espeak_VOICE voice_selected;


espeak_EVENT *event_list=NULL; espeak_EVENT *event_list=NULL;
int event_list_ix=0; int event_list_ix=0;
fprintf(stderr,"Wrong version of espeak-data 0x%x (expects 0x%x) at %s\n",result,version_phdata,path_home); fprintf(stderr,"Wrong version of espeak-data 0x%x (expects 0x%x) at %s\n",result,version_phdata,path_home);
} }


memset(&voice_selected,0,sizeof(voice_selected));
SetVoiceStack(NULL);
memset(&current_voice_selected,0,sizeof(current_voice_selected));
SetVoiceStack(NULL, "");
SynthesizeInit(); SynthesizeInit();
InitNamedata(); InitNamedata();



+ 1
- 1
src/synthdata.cpp View File

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


const char *version_string = "1.45.31 25.Jun.11";
const char *version_string = "1.45.37 08.Aug.11";
const int version_phdata = 0x014500; const int version_phdata = 0x014500;


int option_device_number = -1; int option_device_number = -1;

+ 14
- 6
src/tr_languages.cpp View File

static const short stress_lengths_fr[8] = {190, 170, 190, 200, 0, 0, 190, 240}; static const short stress_lengths_fr[8] = {190, 170, 190, 200, 0, 0, 190, 240};
static const unsigned char stress_amps_fr[8] = {18,16, 18,18, 18,18, 18,18 }; static const unsigned char stress_amps_fr[8] = {18,16, 18,18, 18,18, 18,18 };


static const unsigned char stress_amps_sk[8] = {17,17, 20,20, 20,22, 22,21 };
static const unsigned char stress_amps_sk[8] = {17,16, 20,20, 20,22, 22,21 };
static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210};


static const short stress_lengths_ta[8] = {200, 200, 210, 210, 0, 0, 230, 230}; static const short stress_lengths_ta[8] = {200, 200, 210, 210, 0, 0, 230, 230};
SetCyrillicLetters(tr); SetCyrillicLetters(tr);
SetLetterVowel(tr,0x2a); SetLetterVowel(tr,0x2a);
tr->langopts.param[LOPT_UNPRONOUNCABLE] = 0x432; // [v] don't count this character at start of word tr->langopts.param[LOPT_UNPRONOUNCABLE] = 0x432; // [v] don't count this character at start of word
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x17; // devoice at end of word, and change voicing to match a following consonant (except v)
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x107; // devoice at end of word, and change voicing to match a following consonant (except v)
tr->langopts.param[LOPT_REDUCE] = 2; tr->langopts.param[LOPT_REDUCE] = 2;
tr->langopts.stress_rule = STRESSPOSN_2R; tr->langopts.stress_rule = STRESSPOSN_2R;
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_OMIT_1_HUNDRED | NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_SINGLE_AND | NUM_ROMAN | NUM_ROMAN_ORDINAL | NUM_ROMAN_CAPITALS ; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_OMIT_1_HUNDRED | NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_SINGLE_AND | NUM_ROMAN | NUM_ROMAN_ORDINAL | NUM_ROMAN_CAPITALS ;
tr->langopts.word_gap = 0x8; // don't use linking phonemes tr->langopts.word_gap = 0x8; // don't use linking phonemes
tr->langopts.vowel_pause = 0x30; tr->langopts.vowel_pause = 0x30;
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] = 0x100; // devoice at end of word
tr->langopts.param[LOPT_LONG_VOWEL_THRESHOLD] = 175/2; tr->langopts.param[LOPT_LONG_VOWEL_THRESHOLD] = 175/2;
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_SWAP_TENS | NUM_ALLOW_SPACE | NUM_ORDINAL_DOT | NUM_ROMAN; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_SWAP_TENS | NUM_ALLOW_SPACE | NUM_ORDINAL_DOT | NUM_ROMAN;
} }
break; break;


case L('m','t'): // Maltese
{
tr->charset_a0 = charsets[3]; // ISO-8859-3
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x100; // devoice at end of word
tr->langopts.stress_rule = STRESSPOSN_2R; // penultimate
tr->langopts.numbers = 1;
}
break;


case L('n','l'): // Dutch case L('n','l'): // Dutch
{ {
tr->langopts.vowel_pause = 0x30; // ?? tr->langopts.vowel_pause = 0x30; // ??
tr->langopts.param[LOPT_DIERESES] = 1; tr->langopts.param[LOPT_DIERESES] = 1;
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] = 0x100; // 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_OMIT_1_THOUSAND | NUM_ALLOW_SPACE | NUM_1900 | NUM_ORDINAL_DOT; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_SWAP_TENS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_ALLOW_SPACE | NUM_1900 | NUM_ORDINAL_DOT;
tr->charset_a0 = charsets[2]; // ISO-8859-2 tr->charset_a0 = charsets[2]; // ISO-8859-2
tr->langopts.stress_rule = STRESSPOSN_2R; tr->langopts.stress_rule = STRESSPOSN_2R;
tr->langopts.stress_flags = 0x6; // mark unstressed final syllables as diminished tr->langopts.stress_flags = 0x6; // mark unstressed final syllables as diminished
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x8;
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x9;
tr->langopts.max_initial_consonants = 7; // for example: wchrzczony :) tr->langopts.max_initial_consonants = 7; // for example: wchrzczony :)
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_DFRACTION_2; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_DFRACTION_2;
tr->langopts.numbers2 = 0x40; tr->langopts.numbers2 = 0x40;
tr->charset_a0 = charsets[2]; // ISO-8859-2 tr->charset_a0 = charsets[2]; // ISO-8859-2
tr->langopts.stress_rule = STRESSPOSN_2R; // Temporary tr->langopts.stress_rule = STRESSPOSN_2R; // Temporary
tr->langopts.stress_flags = 0x20; tr->langopts.stress_flags = 0x20;
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x13;
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x103;
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.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

+ 41
- 27
src/translate.cpp View File

} }




void Word_EmbeddedCmd()
{//====================
// Process embedded commands for emphasis, sayas, and break
int embedded_cmd;
int value;

do
{
embedded_cmd = embedded_list[embedded_read++];
value = embedded_cmd >> 8;

switch(embedded_cmd & 0x1f)
{
case EMBED_Y:
option_sayas = value;
break;

case EMBED_F:
option_emphasis = value;
break;

case EMBED_B:
// break command
if(value == 0)
pre_pause = 0; // break=none
else
pre_pause += value;
break;
}
} while(((embedded_cmd & 0x80) == 0) && (embedded_read < embedded_ix));
} // end of Word_EmbeddedCmd


int SetTranslator2(const char *new_language) int SetTranslator2(const char *new_language)
{//========================================= {//=========================================
// Set translator2 to a second language // Set translator2 to a second language
int next_tone=0; int next_tone=0;
unsigned char *p; unsigned char *p;
int srcix; int srcix;
int embedded_cmd;
int value;
int found_dict_flag; int found_dict_flag;
unsigned char ph_code; unsigned char ph_code;
PHONEME_LIST2 *plist2; PHONEME_LIST2 *plist2;
{ {
embedded_flag = SFLAG_EMBEDDED; embedded_flag = SFLAG_EMBEDDED;


do
{
embedded_cmd = embedded_list[embedded_read++];
value = embedded_cmd >> 8;

switch(embedded_cmd & 0x1f)
{
case EMBED_Y:
option_sayas = value;
break;
case EMBED_F:
option_emphasis = value;
break;
case EMBED_B:
// break command
if(value == 0)
pre_pause = 0; // break=none
else
pre_pause += value;
break;
}
} while((embedded_cmd & 0x80) == 0);
Word_EmbeddedCmd();
} }


if((word[0] == 0) || (word_flags & FLAG_DELETE_WORD)) if((word[0] == 0) || (word_flags & FLAG_DELETE_WORD))
} }
} }


if((dict_flags & (FLAG_ALLOW_DOT | FLAG_NEEDS_DOT)) && (ix == word_count-1) && (terminator & CLAUSE_DOT))
if((dict_flags & (FLAG_ALLOW_DOT | FLAG_NEEDS_DOT)) && (ix == word_count - 1 - dictionary_skipwords) && (terminator & CLAUSE_DOT))
{ {
// probably an abbreviation such as Mr. or B. rather than end of sentence // probably an abbreviation such as Mr. or B. rather than end of sentence
clause_pause = 10; clause_pause = 10;
} }
} }


if(embedded_read < embedded_ix)
{
// any embedded commands not yet processed?
Word_EmbeddedCmd();
}

for(ix=0; ix<2; ix++) for(ix=0; ix<2; ix++)
{ {
// terminate the clause with 2 PAUSE phonemes // terminate the clause with 2 PAUSE phonemes

+ 4
- 2
src/translate.h View File

#define LOPT_PREFIXES 3 #define LOPT_PREFIXES 3


// non-zero, change voiced/unoiced to match last consonant in a cluster // non-zero, change voiced/unoiced to match last consonant in a cluster
// bit 0=use regressive voicing
// bit 1=LANG=cz,bg don't propagate over [v] // bit 1=LANG=cz,bg don't propagate over [v]
// bit 2=don't propagate acress word boundaries // bit 2=don't propagate acress word boundaries
// bit 3=LANG=pl, propagate over liquids and nasals // bit 3=LANG=pl, propagate over liquids and nasals
// bit 4=devoice word-final consonants
// bit 4=LANG=cz,sk don't progagate to [v]
// bit 8=devoice word-final consonants
#define LOPT_REGRESSIVE_VOICING 4 #define LOPT_REGRESSIVE_VOICING 4


// 0=default, 1=no check, other allow this character as an extra initial letter (default is 's') // 0=default, 1=no check, other allow this character as an extra initial letter (default is 's')
void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *tone, char **voice_change); void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *tone, char **voice_change);
int ReadClause(Translator *tr, FILE *f_in, char *buf, short *charix, int *charix_top, int n_buf, int *tone_type, char *voice_change); int ReadClause(Translator *tr, FILE *f_in, char *buf, short *charix, int *charix_top, int n_buf, int *tone_type, char *voice_change);


void SetVoiceStack(espeak_VOICE *v);
void SetVoiceStack(espeak_VOICE *v, const char *variant_name);
void InterpretPhoneme(Translator *tr, int control, PHONEME_LIST *plist, PHONEME_DATA *phdata); void InterpretPhoneme(Translator *tr, int control, PHONEME_LIST *plist, PHONEME_DATA *phdata);
void InterpretPhoneme2(int phcode, PHONEME_DATA *phdata); void InterpretPhoneme2(int phcode, PHONEME_DATA *phdata);



+ 1
- 0
src/voice.h View File

// percentages shown to user, ix=N_PEAKS means ALL peaks // percentages shown to user, ix=N_PEAKS means ALL peaks
extern USHORT voice_pcnt[N_PEAKS+1][3]; extern USHORT voice_pcnt[N_PEAKS+1][3];


extern espeak_VOICE current_voice_selected;


extern voice_t *voice; extern voice_t *voice;
extern int tone_points[12]; extern int tone_points[12];

+ 49
- 35
src/voices.cpp View File

static espeak_VOICE *voices_list[N_VOICES_LIST]; static espeak_VOICE *voices_list[N_VOICES_LIST];
static int len_path_voices; static int len_path_voices;


espeak_VOICE voice_selected;
espeak_VOICE current_voice_selected;




enum { enum {
int pitch1; int pitch1;
int pitch2; int pitch2;


static char voice_identifier[40]; // file name for voice_selected
static char voice_name[40]; // voice name for voice_selected
static char voice_languages[100]; // list of languages and priorities for voice_selected
static char voice_identifier[40]; // file name for current_voice_selected
static char voice_name[40]; // voice name for current_voice_selected
static char voice_languages[100]; // list of languages and priorities for current_voice_selected


strcpy(voicename,vname); strcpy(voicename,vname);
if(voicename[0]==0) if(voicename[0]==0)
voice_name[0] = 0; voice_name[0] = 0;
voice_languages[0] = 0; voice_languages[0] = 0;


voice_selected.identifier = voice_identifier;
voice_selected.name = voice_name;
voice_selected.languages = voice_languages;
current_voice_selected.identifier = voice_identifier;
current_voice_selected.name = voice_name;
current_voice_selected.languages = voice_languages;
} }
else else
{ {


case V_GENDER: case V_GENDER:
{ {
int age;
int age = 0;
char vgender[80]; char vgender[80];
sscanf(p,"%s %d",vgender,&age); sscanf(p,"%s %d",vgender,&age);
voice_selected.gender = LookupMnem(genders,vgender);
voice_selected.age = age;
current_voice_selected.gender = LookupMnem(genders,vgender);
current_voice_selected.age = age;
} }
break; break;


} // end of LoadVoice } // end of LoadVoice




static char *ExtractVoiceVariantName(char *vname, int variant_num)
{//===============================================================
static char *ExtractVoiceVariantName(char *vname, int variant_num, int add_dir)
{//===========================================================================
// Remove any voice variant suffix (name or number) from a voice name // Remove any voice variant suffix (name or number) from a voice name
// Returns the voice variant name // Returns the voice variant name


char *p; char *p;
static char variant_name[20];
static char variant_name[40];
char variant_prefix[5]; char variant_prefix[5];


variant_name[0] = 0; variant_name[0] = 0;
sprintf(variant_prefix,"!v%c",PATHSEP); sprintf(variant_prefix,"!v%c",PATHSEP);
if(add_dir == 0)
variant_prefix[0] = 0;


if(vname != NULL) if(vname != NULL)
{ {
if((p = strchr(vname,'+')) != NULL) if((p = strchr(vname,'+')) != NULL)
{ {
// The voice name has a +variant suffix // The voice name has a +variant suffix
variant_num = 0;
*p++ = 0; // delete the suffix from the voice name *p++ = 0; // delete the suffix from the voice name
if(isdigit(*p)) if(isdigit(*p))
{ {
else else
{ {
// voice variant name, not number // voice variant name, not number
strcpy(variant_name,variant_prefix);
strncpy0(&variant_name[3],p,sizeof(variant_name)-3);
sprintf(variant_name, "%s%s", variant_prefix, p);
} }
} }
} }
char buf[60]; char buf[60];


strncpy0(buf,vname,sizeof(buf)); strncpy0(buf,vname,sizeof(buf));
variant_name = ExtractVoiceVariantName(buf,variant_num);
variant_name = ExtractVoiceVariantName(buf,variant_num, 1);


if((v = LoadVoice(buf,0)) == NULL) if((v = LoadVoice(buf,0)) == NULL)
return(NULL); return(NULL);






espeak_VOICE *SelectVoiceByName(espeak_VOICE **voices, const char *name)
{//=====================================================================
espeak_VOICE *SelectVoiceByName(espeak_VOICE **voices, const char *name2)
{//======================================================================
int ix; int ix;
int match_fname = -1; int match_fname = -1;
int match_fname2 = -1; int match_fname2 = -1;
int match_name = -1; int match_name = -1;
const char *id;
const char *id; // this is the filename within espeak-data/voices
char *variant_name;
int last_part_len; int last_part_len;
char last_part[41]; char last_part[41];
char name[40];


if(voices == NULL) if(voices == NULL)
{ {
voices = voices_list; voices = voices_list;
} }


strncpy0(name, name2, sizeof(name));
if((variant_name = strchr(name, '+')) != NULL)
{
*variant_name = 0;
variant_name++;
}

sprintf(last_part,"%c%s",PATHSEP,name); sprintf(last_part,"%c%s",PATHSEP,name);
last_part_len = strlen(last_part); last_part_len = strlen(last_part);


break; break;
} }
else else
if(strcmp(name,id = voices[ix]->identifier)==0)
{
match_fname = ix; // matching identifier, use this if no matching name
}
else
if(strcmp(last_part,&id[strlen(id)-last_part_len])==0)
{ {
match_fname2 = ix;
id = voices[ix]->identifier;
if(strcmp(name, id)==0)
{
match_fname = ix; // matching identifier, use this if no matching name
}
else
if(strcmp(last_part,&id[strlen(id)-last_part_len])==0)
{
match_fname2 = ix;
}
} }
} }


} }
strncpy0(buf,voice_select2.name,sizeof(buf)); strncpy0(buf,voice_select2.name,sizeof(buf));
variant_name = ExtractVoiceVariantName(buf,0);
variant_name = ExtractVoiceVariantName(buf,0,0);


vp = SelectVoiceByName(voices_list,buf); vp = SelectVoiceByName(voices_list,buf);
if(vp != NULL) if(vp != NULL)
{ {
if(variant_name[0] != 0) if(variant_name[0] != 0)
{ {
sprintf(voice_id,"%s+%s",vp->identifier,&variant_name[3]); // omit the !v/ from variant_name
sprintf(voice_id,"%s+%s", vp->identifier, variant_name);
return(voice_id); return(voice_id);
} }




if(vp->variant != 0) if(vp->variant != 0)
{ {
variant_name = ExtractVoiceVariantName(NULL,vp->variant);
sprintf(voice_id,"%s+%s",vp->identifier,&variant_name[3]);
variant_name = ExtractVoiceVariantName(NULL, vp->variant, 0);
sprintf(voice_id,"%s+%s", vp->identifier, variant_name);
return(voice_id); return(voice_id);
} }


static char buf[60]; static char buf[60];


strncpy0(buf,name,sizeof(buf)); strncpy0(buf,name,sizeof(buf));
variant_name = ExtractVoiceVariantName(buf,0);
variant_name = ExtractVoiceVariantName(buf, 0, 1);


memset(&voice_selector,0,sizeof(voice_selector)); memset(&voice_selector,0,sizeof(voice_selector));
// voice_selector.name = buf; // voice_selector.name = buf;
} }


DoVoiceChange(voice); DoVoiceChange(voice);
SetVoiceStack(&voice_selector);
SetVoiceStack(&voice_selector, variant_name);
return(EE_OK); return(EE_OK);
} }


LoadVoice(variant_name,2); LoadVoice(variant_name,2);
} }
DoVoiceChange(voice); DoVoiceChange(voice);
SetVoiceStack(&voice_selector);
SetVoiceStack(&voice_selector, variant_name);
return(EE_OK); return(EE_OK);
} }
} }


LoadVoiceVariant(voice_id,0); LoadVoiceVariant(voice_id,0);
DoVoiceChange(voice); DoVoiceChange(voice);
SetVoiceStack(voice_selector);
SetVoiceStack(voice_selector, "");


return(EE_OK); return(EE_OK);
} // end of SetVoiceByProperties } // end of SetVoiceByProperties


ESPEAK_API espeak_VOICE *espeak_GetCurrentVoice(void) ESPEAK_API espeak_VOICE *espeak_GetCurrentVoice(void)
{//================================================== {//==================================================
return(&voice_selected);
return(&current_voice_selected);
} }


#pragma GCC visibility pop #pragma GCC visibility pop

Loading…
Cancel
Save