Browse Source

[1.46.15]


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@280 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 13 years ago
parent
commit
4d64bf10a1

+ 11
- 15
dictsource/da_list View File

& Vw & Vw
£ pun? £ pun?
€ euro € euro
© kopyrajt
© kVpirajt
÷ divid'eReD||meD ÷ divid'eReD||meD
= l'imeD = l'imeD
# n'OmV # n'OmV
× g'aNe × g'aNe
ª feminin||Wdin'al ª feminin||Wdin'al
º m'askulin||Wdin'al º m'askulin||Wdin'al
® registr'eret||varemerke
® registr'Er@D||v'ar@mErk3
¼ en||kvart ¼ en||kvart
¢ s'ents
¾ trEkv'art
¢ s'ent
¥ j'en: ¥ j'en:
µ my µ my
' apostr'Vf // PB o changed to V ' apostr'Vf // PB o changed to V
_12 t'Vl _12 t'Vl
_13 tR'&#d@-n // PB & changed to &# _13 tR'&#d@-n // PB & changed to &#
_14 fj'ord@-n _14 fj'ord@-n
_15 f'emt@n
_15 f'emt@-n
_16 s'ajsd@-n _16 s'ajsd@-n
_17 s'Wd@-n // PP Y changed to W _17 s'Wd@-n // PP Y changed to W
_18 '&d@-n // PB a changed to & _18 '&d@-n // PB a changed to &
_2X t'y:w _2X t'y:w
_3X tR'&#Dv@ //PB [tR'ADv@] changed to [tR'&#Dv@] _3X tR'&#Dv@ //PB [tR'ADv@] changed to [tR'&#Dv@]
_4X f'W:V //PB [f'W:*3] changed to [ f'W:V] _4X f'W:V //PB [f'W:*3] changed to [ f'W:V]
_5X h&l't*es // PB [a] changed to [&]
_6X t*'es
_5X h&l't*Es // PB [a] changed to [&], e changed to E
_6X t*'Es // PB changed from e to E
_7X h&lfj'&rs // PV a changed to & _7X h&lfj'&rs // PV a changed to &
_8X f'irs _8X f'irs
_9X h&lf'Ems // PB a changed to & _9X h&lf'Ems // PB a changed to &
obsidian $alt2 obsidian $alt2
ocean $alt2 ocean $alt2
oktan $alt2 oktan $alt2
oman $alt2
organ $alt2 organ $alt2
orkan $alt2 orkan $alt2
osman $alt2 osman $alt2
magasin $alt magasin $alt
mandarin $alt mandarin $alt
mandolin $alt mandolin $alt
margin $alt
marin $alt marin $alt
marocain mAro'kEN $alt marocain mAro'kEN $alt
maroquin mAro'kEN $alt maroquin mAro'kEN $alt
maskulin $alt
mazarin $alt mazarin $alt
medicin $alt medicin $alt
melamin $alt melamin $alt
bortadopter $alt bortadopter $alt
adoucer $alt adoucer $alt
adressere $alt adressere $alt
omadressere $alt
adsorber $alt adsorber $alt
adstringer $alt adstringer $alt
adviser $alt adviser $alt
draper $alt draper $alt
dresser $alt dresser $alt
dubler $alt dubler $alt
dueller $alt
duellere $alt
duetter $alt duetter $alt
duper $alt duper $alt
duplicer $alt duplicer $alt
intervener $alt intervener $alt
intimider $alt intimider $alt
intoner $alt intoner $alt
intriger $alt
introducer $alt introducer $alt
intuber $alt intuber $alt
invader $alt invader $alt
estragon estRag'VN $alt estragon estRag'VN $alt
glukagon $alt glukagon $alt
heksagon $alt heksagon $alt
jargon SjArg'VN $alt
oktagon $alt oktagon $alt
oktogon $alt oktogon $alt
ortogon $alt ortogon $alt
wagon v&g'VN $alt wagon v&g'VN $alt


// -son list (VN/on // -son list (VN/on
bison b'isVn $alt
blouson blus'VN $alt blouson blus'VN $alt
chanson SjAns'VN $alt chanson SjAns'VN $alt
garnison $alt garnison $alt
meson $alt meson $alt
person $alt person $alt
ræson REs'VN $alt ræson REs'VN $alt
//sæson sEs'VN $alt
sæson $alt
unison $alt unison $alt


// PB exceptions from the "be" rule in group "be" // PB exceptions from the "be" rule in group "be"
(et kvarter) et||kvA'ter // PB (et kvarter) et||kvA'ter // PB
(mit kvarter) mit||kvA'ter // PB (mit kvarter) mit||kvA'ter // PB
(vores kvarter) vV:s||kvA'ter // PB (vores kvarter) vV:s||kvA'ter // PB
(deres kvarter) de@s||kvA'ter // PB
(deres kvarter) dE:Vs||kvA'ter // PB
(det kvarter) de||kvA'ter // PB (det kvarter) de||kvA'ter // PB
(i kvarter) i||kv'A:dV (i kvarter) i||kv'A:dV
(at have) &||h&: // PB the verb 'have', not the noun 'have' = garden (at have) &||h&: // PB the verb 'have', not the noun 'have' = garden

+ 286
- 108
dictsource/da_rules
File diff suppressed because it is too large
View File


+ 6
- 6
dictsource/dict_phonemes View File

x z x z




Dictionary da_dict 2011-10-24
Dictionary da_dict 2012-04-07


& &# 0 3 @ @- a A & &# 0 3 @ @- a A
aI e E i o O u V aI e E i o O u V
x Z x Z




Dictionary hu_dict 2012-01-05
Dictionary hu_dict 2012-04-07


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




Dictionary en_dict 2012-01-06
Dictionary en_dict 2012-04-07


0 3 3: @ @- @2 @5 @L 0 3 3: @ @- @2 @5 @L
a a# A: A@ aa aI aI3 aI@ a a# A: A@ aa aI aI3 aI@
S s2 t v w Z S s2 t v w Z




Dictionary fr_dict 2011-12-14
Dictionary fr_dict 2012-02-22


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




Dictionary ta_dict 2012-01-06
Dictionary ta_dict 2012-04-07


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:
w x z z. w x z z.




Dictionary pa_dict 2009-11-24
Dictionary pa_dict 2012-04-07


@ a a~ e E e~ E~ i @ a a~ e E e~ E~ i
I i~ I~ o O O~ o~ r- I i~ I~ o O O~ o~ r-

+ 249
- 86
dictsource/en_list
File diff suppressed because it is too large
View File


+ 149
- 79
dictsource/en_rules
File diff suppressed because it is too large
View File


+ 4
- 2
dictsource/fr_list View File

/ /
// *************************************************************************** // ***************************************************************************
// * Copyright (C) 2005 to 2010 by Jonathan Duddington *
// * Copyright (C) 2005 to 2012 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 *


// 2006-11-18 Gilles Casse <[email protected]> // 2006-11-18 Gilles Casse <[email protected]>
// //
// Updated 2011-10-29 Michel Such <[email protected]>
// Updated 2012-02-12 Michel Such <[email protected]>
// //
// * Numbers, a few abbreviations and exceptions. // * Numbers, a few abbreviations and exceptions.
// //
merguez mErgEz merguez mErgEz
messieurs mesjYz2 messieurs mesjYz2
mieux miY $u+ mieux miY $u+
miloud milud
mouloud mulud
monsieur m@sjY monsieur m@sjY
mrs _^_en mrs _^_en
oasis oazis oasis oazis

+ 228
- 1
dictsource/hu_list View File

hallgatónak $unstressend hallgatónak $unstressend
tárgyaláson $unstressend tárgyaláson $unstressend
törvényről $unstressend törvényről $unstressend
(múlt héten) mu:lt_'||he:tEn $unstressend
//(múlt héten) mu:lt'||he:tEn $unstressend
(kérte fel múlt héten) ke:R2tE_'||fEl_||mu:lt_'||he:tEn $unstressend (kérte fel múlt héten) ke:R2tE_'||fEl_||mu:lt_'||he:tEn $unstressend
kötendő $unstressend kötendő $unstressend
(vevőkkel kötendő) vEvY:k:El_||kYtEndY: $unstressend (vevőkkel kötendő) vEvY:k:El_||kYtEndY: $unstressend
bankja $unstressend bankja $unstressend
banknak $unstressend banknak $unstressend
kérdését $unstressend kérdését $unstressend
várják $unstressend
történetében $unstressend
kormánynak $unstressend
legfeltűnőbb $unstressend
körülmény $unstressend
(a bizottság) A'||bizotS:a:g $unstressend
(fog a bizottság) fog_||A'||bizotS:a:g $unstressend
elvek $unstressend
(kormány között) koR2ma:n^_||kYzYt: $unstressend
(az ügyekben) Az_||yJEkbEn $unstressend
hetet $unstressend
kezdeményezésére $unstressend
reméljük $unstressend
törvényeken $unstressend
kötelezettségeket $unstressend
(is beszélt) iS_||bEse:lt $unstressend
(is történt) iS_||tYrte:nt $unstressend
nyilatkoztak $unstressend
(a kutatókat) A'||kutAto:kAt $unstressend
gyanúsítanak $unstressend
(fordul elő) fordul_||ElY: $unstressend
(alatt készül) AlAt:_||ke:syl $unstressend
ritka $unstressend
gyanúját $unstressend
(kapcsolatos gyanúról) kAptSolAtoS_||JAnu:R2o:l $unstressend
tartalma $unstressend
(ki kell terjednie) ki_||kEl:_||tER2jEdniE $unstressend
szerzője $unstressend
munkában $unstressend
(is mérik) iS_||me:R2ik $unstressend
eldöntése $unstressend
azokat $unstressend
(az ügyeket) Az_||yJEkEt $unstressend
(is megemlíti) iS_||mEgEmli:ti $unstressend
(lehet érni) lEhEt_||e:R2ni $unstressend
csalódott $unstressend
(benne újdonság) bEn:E_||u:jdonSa:g $unstressend
jelzik $unstressend
(találja meg) tAla:ljA_||mEg $unstressend
(a világon) A'||vila:gon $unstressend
céget $unstressend
értelmét $unstressend
jöhet $unstressend
aljasságra $unstressend
másodpercet $unstressend
(percet fizetek) pER2tsEt_||fizEtEk $unstressend
fizetek $unstressend
hallottam $unstressend
(témája lesz) te:ma:jA_||lEs $unstressend
kezdődő $unstressend
politikában $unstressend
alapozták $unstressend
döntései $unstressend
vitái $unstressend
magyarázta $unstressend
történni $unstressend
címétől $unstressend
keveredett $unstressend
(a szokás) A'||soka:S $unstressend
vesztette $unstressend
értékelte $unstressend
berendezkedést $unstressend
berendezkedéssel $unstressend
(se értették) SE_||e:R2tEt:e:k $unstressend
levezényelni $unstressend
vesztesége $unstressend
arány $unstressend
(visszaesés hatásait) vis:AESe:S_||hAta:SAit $unstressend
(a kedélyeket) A'||kEde:jEkEt $unstressend
hatásában $unstressend
(válaszolt a felvetésre) va:lAsolt_||A'||fElvEte:SR2E $unstressend
(dőlt be) dY:lt_||bE $unstressend
(sem fog) SEm_||fog $unstressend
(lát majd) la:t_||mAjd $unstressend
megmentésére $unstressend
(csődjének elkerülésére) tSY:J:e:nEk_||ElkER2yle:Se:R2E $unstressend
(válik a cég) va:lik_||A'||tse:g $unstressend
polgármesterekkel $unstressend
fenntartására $unstressend
firtatva $unstressend
(elleni fellépésre) El:Eni_||fEl:e:pe:SR2E $unstressend
frakcióvezetője $unstressend
(nyitni akkor) n^itni_||Ak:oR2 $unstressend
(hangzott el) hAngzot:_||El $unstressend
vita $unstressend
csinálsz $unstressend
(szoftverekről van szó) softvER2EkR2Y:l_||vAn_||so: $unstressend
(ellen létrehozott) El:En_||le:tR2Ehozot: $unstressend
(felhasználók letöltéseit) fElhAsna:lo:k_||lEtYlte:SEit $unstressend
(lépése ellen) le:pe:SE_||El:En $unstressend
választásokat $unstressend
(tulajdont védő törvények) tulAjdont_||ve:dY:_||tYR2ve:n^Ek $unstressend
ország $unstressend
együtt
(több ország) tYb:_||oR2sa:g $unstressend
(is aláírta) iS_||Ala:i:R2tA $unstressend
(lehet akadályozni) lEhEt_||AkAda:jozni $unstressend
(öt körül) Yt_||kYR2yl $unstressend
(a tüntetést) A'||tyntEte:St $unstressend
(ér véget) e:R2_||ve:gEt $unstressend
órakor $unstressend
(lehet számítani) lEhEt_||sa:mi:tAni $unstressend
választéka $unstressend
bevételhez $unstressend
reális $unstressend
(élők helyzete) e:lY:k_||hEjzEtE $unstressend
kritika $unstressend
sértené $unstressend
megállapodást $unstressend
(héttel ezelőtt) he:t:El_||EzElY:t: $unstressend
hazánk $unstressend
(abban foglaltakat) Ab:An_||foglAltAkAt $unstressend
életbe $unstressend
tagállam $unstressend
ratifikálását $unstressend
(közleményt adott ki) kYzlEme:n^t_||Adot:_||ki $unstressend
médium $unstressend
laknának $unstressend
feküdt $unstressend
lakásban $unstressend
(nevezi tulajdonosa) nEvEzi_||tulAjdonoSA $unstressend
tulajdonosa $unstressend
rágyújthat $unstressend
(itt senki) it:_||SEnki $unstressend
csapolhat $unstressend
fordulni $unstressend
amiatt $unstressend
(problémákat kapargat) pR2oble:ma:kAt_||kApAR2gAt $unstressend
termékeket $unstressend
(a baj)A'||bAj $unstressend
jószágot $unstressend
(se kapni) SE_||kApni $unstressend
(se bírom) SE_||bi:R2om $unstressend
(a kaját) A'||kAja:t $unstressend
ételhordóval $unstressend
esznek $unstressend
(igaza van) igAzA_||vAn $unstressend

(akar valamit) AkAR2_||vAlAmit $unstressend
harcol $unstressend
(számoltam ki) sa:moltAm_||ki $unstressend
élelmiszerekre $unstressend
nyersanyagokra $unstressend
(olcsóbbat is) oltSo:b:At_||iS $unstressend
főzni $unstressend
(rövid ahhoz) R2Yvid_||Ahoz $unstressend
(töltsem meg) tYltSEm_||mEg $unstressend
(egy kisebb) EJ_||kiS:Eb $unstressend
csirkére $unstressend
(másra is) ma:SR2A_||iS $unstressend
mire $unstressend
(alig van) Alig_||vAn $unstressend
hibbant $unstressend
jártunk $unstressend
bementek $unstressend
banánt $unstressend
szerető $unstressend
(alapanyagokra kényes) AlApAn^AgokR2A_||ke:n^ES $unstressend
állampolgár $unstressend
ételt $unstressend
(dolgokról beszélek) dolgokR2o:l_||bEse:lEk $unstressend
haverjaim $unstressend
utaznak $unstressend
utalt $unstressend
(hulladékok csupán) hul:Ade:kok_||tSupa:n $unstressend
(tök igaz) tYk_||igAz $unstressend
cucc $unstressend
nyomorult $unstressend
megvesznek $unstressend
(miatt van így) miAt:_||vAn_||i:J $unstressend
kereskedők $unstressend
külföldi $unstressend
drágább $unstressend
(hozna megoldást) hoznA_||mEgolda:St $unstressend
drágábban $unstressend
korlátozása $unstressend
ezres $unstressend
érdekel $unstressend
boltot $unstressend
(az alapélménye) Az_||AlApe:lme:n^E $unstressend
beszerezni $unstressend
kedvéért $unstressend
(a helyzetet) A'||hEjzEtEt $unstressend
rontani $unstressend
(esetleg elérhet) ESEtlEg_||Ele:R2hEt $unstressend
láncok $unstressend
vásárolnak $unstressend
(az szar) Az_||sAR2 $unstressend
felfogás $unstressend
(cucc külföldről) tsuts:_||kylfYldR2Y:l $unstressend
külföldről $unstressend
hőbörög $unstressend
(a magyarok) A'||mAJAR2ok $unstressend
(a döntést) A'||dYnte:St $unstressend
mobilcég $unstressend
döntését $unstressend
(tartják problémásnak) tAR2ca:k_||pR2oble:ma:SnAk $unstressend
(is vitatják) iS_||vitAc:a:k $unstressend
(az időre) Az_||idY:R2E $unstressend
(lehetővé tétele) lEhEtY:ve:_||te:tElE $unstressend
(eljárás indul) Elja:R2a:S_||indul $unstressend
(a panaszokat) A'||pAnAsokAt $unstressend
(eső részét) ESY:_||R2e:se:t $unstressend
végéig $unstressend
(meg kell vizsgálni) mEg_||kEl:_||viZga:lni $unstressend


// word pairs // word pairs
(mit eszel) mit_||EsEl $unstressend
tudhatnád $unstressend
illeti $unstressend
(szomorú volt látni) somoR2u:_||volt_||la:tni $unstressend
(régen kitalálták) R2e:gEn_||kitAla:lta:k $unstressend
magához $unstressend
(emberen segíthet) EmbER2En_||SEgi:thEt $unstressend
(kell venni) kEl:_||vEn:i $unstressend
valamivel $unstressend
(meg kell oldani) mEg_||kEl:_||oldAni $unstressend
piacokat $unstressend
(az értékesítést) Az_||e:R2te:kESi:te:St $unstressend
polcán $unstressend
(ki volt írva) ki_||volt_||i:R2vA $unstressend
tojást $unstressend
tojás $unstressend
tojja $unstressend
felárral $unstressend
(terméket vásárolok) tER2me:kEt_||va:Sa:R2olok $unstressend
(jobb volt) job:_||volt $unstressend
keveréke $unstressend





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

+ 331
- 14
dictsource/hu_rules View File

_in) cz (éd ts _in) cz (éd ts
_virgon) c (ság ts _virgon) c (ság ts
_elmén) c (ség ts _elmén) c (ség ts
martaló) c (ser ts
martaló) c ts
_ér) c (sas ts _ér) c (sas ts
_újon) c (ság ts
_kuru) c (ság ts
_újon) c ts
_kuru) c ts
_paló) c (ság ts _paló) c (ság ts
_fejlé) c ts _fejlé) c ts
nyol) c (seb ts nyol) c (seb ts
bará) cs (ágta tS: bará) cs (ágta tS:
bér) c (csut ts
bér) c (süveg ts
bilin) cs (zör tS
_ér) c (salak ts
_ér) c (cs ts
_ér) c (sely ts
_ér) c (síp ts
ér) cs (ípte tS
ér) c (sodr ts
garabon) c (ser ts
_laban) c ts
_kéjen) c ts
_ner) c (stólá ts
_jege) c ts
kavi) cs (z tS
kilin) cs (zör tS
laza) c ts
árbo) c (sud ts
_ar) c (seb ts
nyargon) c (cs ts
pere) c (süt ts
_prin) c (ség ts
_rá) c (ság ts
sátán) cs (ap tS
suhan) c ts
udvaron) c (ser ts
pere) c (cs ts
licen) ccs ts|tS


.group ch .group ch
anar) ch (i h anar) ch (i h
ma) ch (iavell h ma) ch (iavell h
_or) ch (ide h _or) ch (ide h
almana) ch h almana) ch h
kronoszti) ch (on h
arca) ch (on h


.group d .group d
d d d d
_tér) d (zseb d _tér) d (zseb d
twee) d (szövet d twee) d (szövet d
utó) d (szerv d utó) d (szerv d
epizó) d (szer d
tize) d (szám d
faj) d (tyúk d
kó) d (szerke d
ha) d (szertá d
_föl) d (szelle d
_föl) d (szerz d
_föl) d (sziget d
_föl) d (szín d
_föl) d (szurok d
_föl) d (szült d
_gon) d (szer d
_ha) d (játék d
_ha) d (száll d
_ha) d (szer d
_harma) d (szül d
_hor) d (szek d
kalan) d (szer d
_kó) d (szob d
_küz) d (szell d
_lú) d (szokás d
lú) d (zsír d
va) d (szerű d
hó) d (szőr d
kobol) d (szög d
máso) d (szerep d
_mon) dsz (a ts
ná) d (szilán d
_rá) d (sóz d
ötö) d (szülö d
pa) d (szőny d
_smarag) d (sz d
szaba) d (szól d
szomszé) d (sor d
va) d (sáfr d
va) d (szegf d
va) d (szilv d
vá) d (szóza d
borso) d (sz d
herná) d (sz d
szaba) d (szent d
for) d (jános d


.group dz .group dz
fogó) dz (kod ts fogó) dz (kod ts
le) gg (roteszk g: le) gg (roteszk g:
_agya) g (gy g _agya) g (gy g
anya) g (győz g anya) g (győz g
felsé) g (gy g
elesé) g (gy g
sere) g (gyűj g
kötelessé) g (gyak g
_lán) g (gy g
szentsé) g (gy g
zálo) g (gy g
me) ggy (em J:
mére) g (gy g
nyere) g (gy g
vendé) g (gy g
világossá) g (gy g
vilá) g (gy g
virá) g (gy g


.group gy .group gy
gy J gy J
_e) gy (ablak J: _e) gy (ablak J:
összee) gy (esít J: összee) gy (esít J:
nem-e) gy (ik J: nem-e) gy (ik J:
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 tár) gy (sor J
e) gy (éjszak J: e) gy (éjszak J:
_egyszere) gy (e J: _egyszere) gy (e J:
_huszone) gy (e J: _huszone) gy (e J:
száze) gy (edik J:
védje) gy (straté J


.group h .group h
h h h h
_ju) h (sajt _ju) h (sajt
_ju) h (tenyész _ju) h (tenyész
_ju) h (szárnyék _ju) h (szárnyék
cse) h (bánya


.group i .group i
i i i i
_sz) í (néssz i _sz) í (néssz i
sz) í (vatn i sz) í (vatn i
_megsz) í (vatta i _megsz) í (vatta i

szabad) ítsz its:
sz) í (vemészt i:
vesz) ítsz i:ts:


.group j .group j
j j j j
_me) ny (assz n^ _me) ny (assz n^
_me) nny (assz n^ _me) nny (assz n^
kölcsö) n (jegyz n kölcsö) n (jegyz n
_bű) n (nyom n
filigrá) n (nyel n
kabi) n (nyíl n
magá) n (nyel n
oroszlá) n (nyom n
_ö) n (nyom n
_szi) n (játsz n
szivárvá) ny (játsz n^
utá) n (nyom n
verse) ny (játék n^
_elle) n (jav n


.group o .group o
o o o o
?1 _) potsdam potsda:m ?1 _) potsdam potsda:m
pp (-L01 p //if have consonant after - character, need spokening one p letter pp (-L01 p //if have consonant after - character, need spokening one p letter



.group q .group q
q kv q kv
qu kv qu kv
_áldá) s S _áldá) s S
_asztalo) s S _asztalo) s S
_árgu) s S _árgu) s S
dragonyo) s S
_képzé) s S
farka) s (szőr S
fedezé) s S
galaxi) s S
koldu) s S
brekegé) s S
ritmu) s (zaj S
_tetszé) s S
toko) s (zászl S
váro) s (zaj S
váro) s (zs S
ki) s (zsidá S
ki) s (szent S
ki) s (sziget S
ki) s (szőlő S
körö) s (szeg S


.group ss .group ss
ssz ss2 ssz ss2
mennydörgé) ssz (erű Ss mennydörgé) ssz (erű Ss
robbaná) ss S: robbaná) ss S:
hamva) ssz s: hamva) ssz s:
kotyva) ssz s:
robbaná) ssz (er Ss robbaná) ssz (er Ss
danubiu) ss s: //a radio station name danubiu) ss s: //a radio station name
danubiu) ssz s: //a radio station name danubiu) ssz s: //a radio station name
csuszamlá) ssz (erű Ss csuszamlá) ssz (erű Ss
fűté) ssz (ag Ss fűté) ssz (ag Ss
habitu) ssz (erű Ss habitu) ssz (erű Ss
halotta) ssz (ob Ss
halotta) ssz Ss
hányá) ssz (ag Ss hányá) ssz (ag Ss
világo) ssz (őke Ss világo) ssz (őke Ss


a) ssz (isztál s a) ssz (isztál s
piro) ssz (ka s piro) ssz (ka s
ágyú) ssz Ss ágyú) ssz Ss
alá) ssz (olg Ss
_alá) ssz (olg Ss
almá) ssz (ürk Ss almá) ssz (ürk Ss

csárdá) ssz (ól Ss
csikó) ssz Ss
éde) ssz (ül Ss
éke) ssz (ó Ss
föléle) ssz (em s:
frázi) ssz (erű Ss
fuvaro) ssz (ekér Ss
fúvó) ssz (ersz Ss
ver) ssz (erz Ss
_gyor) ssz Ss
_ki) ssz (állá Ss
_hajó) ssz Ss
_hár) ssz Ss
_hasi) ssz (ag Ss
_hatá) ssz (er Ss
_heku) ssz (ag Ss
_hízelkedé) ssz Ss
_horkantá) ssz (er Ss
_hő) ssz Ss
_hú) ssz (ín Ss
_hú) ssz (iget Ss
hűvö) ssz (emű Ss
_ina) ssz Ss
_forrá) ssz Ss
_jáspi) ssz (ob Ss
_jó) ssz Ss
_kacagá) ssz (er Ss
kapu) ssz Ss
má) ssz (er Ss
_kevé) ssz Ss
ki) ssz (eb Ss
ki) ssz (ed Ss
kormo) ssz Ss
köntö) ssz Ss
könyve) ssz Ss
farka) ssz (ürk Ss
hú) ssz (aft Ss
kihívá) ssz Ss
lőszere) ssz Ss
lövé) ssz (erű Ss
fehére) ssz (ürk Ss
köhinté) ssz (erű Ss
kva) ssz (iakér s:
nyeríté) ssz (erű Ss
lőporo) ssz Ss
kapará) ssz (erű Ss
nyávogá) ssz (erű Ss
szoká) ssz (ám Ss
borza) ssz (őr Ss
harco) ssz S|s
kocsi) ssz (erep Ss
vitorlá) ssz Ss
mágná) ssz Ss
má) ssz (őr Ss
mécse) ssz Ss
téveszté) ssz (erű Ss
méhe) ssz Ss
dörgé) ssz Ss
muzsiku) ssz Ss
oázi) ssz (erű Ss
_orda) ssz Ss
állá) ssz Ss
ősze) ssz Ss
ő) ssz (árm Ss
_ő) ssz (ell Ss
_ő) ssz (i Ss
_ő) ssz (ék Ss
_ő) ssz (erű Ss
ő) ssz (arv Ss
_ő) ssz (oká Ss
ő) ssz (örny Ss
ő) ssz (ülő Ss
papiro) ssz Ss
papriká) ssz Ss
plü) ss (zs S
_portá) ssz Ss
_raká) ssz Ss
rántá) ssz Ss
_rava) ssz s:
keríté) ssz Ss
repülő) ssz (trájk Ss
rezgé) ssz (ám Ss
_rongyo) ssz Ss
ruhá) ssz (ob Ss
_sá) ssz Ss
_sorva) ssz s:
sugárzá) ssz Ss
szindikátu) ssz Ss
_szólá) ssz Ss
szőrö) ssz (ív Ss
_tár) ssz (ob Ss
tár) ssz (omszéd Ss
teá) ssz (erv Ss
tövi) ssz Ss
tubáko) ssz (el Ss
_tükrö) ssz Ss
tüze) ssz (em Ss
pótlá) ssz Ss
vallatá) ssz (er Ss
_váro) ssz Ss
_vere) ssz Ss
_veté) ssz Ss
világo) ssz Ss
villamo) ssz Ss
rángá) ssz (er Ss
zölde) ssz (ürk Ss
zsíro) ssz (áj Ss
zsoldo) ssz Ss
bázi) ssz Ss
_kapo) ssz Ss
_agyago) ssz (erg Ss
_béké) ssz Ss
_gombo) ssz Ss
_kemene) ssz Ss
_miko) ssz Ss
_neme) ssz Ss
_szamo) ssz Ss
_szilvá) ssz Ss
_vámo) ssz Ss


.group sz .group sz
sz s sz s
para) sztsz (andál st|s para) sztsz (andál st|s
te) szts (oroz st|S te) szts (oroz st|S
_dama) szts st|S _dama) szts st|S
_dama) sztsz st|s
kere) szt (sor st kere) szt (sor st
kere) szt (szer st kere) szt (szer st
para) szt (segg st para) szt (segg st
sz (acsk Sz //all szacsk containing part block need spokening single S and z phoneme, for example chipseszacskó word sz (acsk Sz //all szacsk containing part block need spokening single S and z phoneme, for example chipseszacskó word
legké) szs (éges S: legké) szs (éges S:
ameti) sztsze st|sE ameti) sztsze st|sE
bati) sztsze (gé st|sE
kere) sztsz (e st|s
mala) szts (ugal st|S
para) szts (ihed st|S
para) szts (ors st|S
para) szts (üte st|S
para) sztsz (ag st|s
para) szts (uhan st|S


.group t .group t
t t t t
ha) t (cell t //for example hatcellás, hatcella word need spokening t before c letter. ha) t (cell t //for example hatcellás, hatcella word need spokening t before c letter.
pár) t (székház t pár) t (székház t
hálóza) t (semleges t hálóza) t (semleges t
lisz) t (cipel t
vajon) t (szoros t vajon) t (szoros t
tsz (h ts tsz (h ts
te) tsz (h ts te) tsz (h ts
plaká) t (cég t plaká) t (cég t
álla) t (szőr t álla) t (szőr t
aszal) t (jeg t aszal) t (jeg t

bölcsele) t (sava t
diva) t (szép t
éle) t (szomj t
eli) t (szolg t
_es) t (szél t
ezüs) t (sark t
gyémán) t (szoli t
halla) tsz (ának ts:
kárpi) t (szőny t
_ké) t (szél t
kilá) tssz (ék ts:
me) tsz (vény ts
köte) t (szám t
halla) tsz (ód ts:
_ú) tsz (ék t|s
ezüs) t (szob t
ezüs) t (szőr t
ezüs) t (szél t
lá) tsz (va ts
me) tsz (itek ts:
nemze) t (szín t
padla) t (szőny t
_par) t (szél t
robo) t (szond t
_rő) t (szők t
sajá) t (szemé t
_szegle) t (sz t
szé) t (szorít t
szögle) t (szob t
tuca) t (szép t
ügyle) t (szob t
üzle) t (szob t
vivá) t (szó t
vizi) t (szob t
zár) t (szék t
szé) t (szortír t


.group tj .group tj
C) tj c C) tj c
_készle) tj (elen tj _készle) tj (elen tj
tisztele) tj (egy tj tisztele) tj (egy tj
_vész) tj (ósl tj _vész) tj (ósl tj
cson) tj (áték tj
hangula) tj (avít tj
állapo) tj (avul tj
körösz) tj (ár tj
ezüs) tj (elv tj
többle) tj (övedel tj
piké) tj (átsz tj
természe) tj (áték tj
természe) tj (og tj
_tisztele) tj (el tj
zené) tj (átsz tj
szen) tj (akab 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
ttgy t:J ttgy t:J
ttj c: ttj c:
ala) tt (jár t ala) tt (jár t
krike) tt (játék t
krike) tt (ját t
ttr tR2 //special exception with always need executing ttr tR2 //special exception with always need executing
helyeze) tt (ről t: helyeze) tt (ről t:
tts (á tS: tts (á tS:
keresz) tt (űz t: keresz) tt (űz t:
me) ttsz (et ts: me) ttsz (et ts:
bennszülö) tt (jelmez t bennszülö) tt (jelmez t
krike) tt (ját t
szé) tt (rancsír t:


.group ty .group ty
mindszen) ty t|i mindszen) ty t|i
ty (ard t|j


.group u .group u
u u u u
h) ú (gom u h) ú (gom u
_h) ú (gy u _h) ú (gy u
_h) ú (ggy u _h) ú (ggy u
h) ú (szanny u:





.group ü .group ü
rejtő) z (t s rejtő) z (t s
hango) z (t s hango) z (t s
szerve) z (ked s szerve) z (ked s
kaló) z (ság z
kaló) z z
szellő) z (tet s szellő) z (tet s
vigyá) zz (áll z vigyá) zz (áll z
zippzár tsipza:R2 zippzár tsipza:R2
helye) z (ke s helye) z (ke s
_tí) z (sou z _tí) z (sou z
leme) z (stú z leme) z (stú z
gá) z (sug z
_gő) z z
_pén) zs (ed Z
_lá) z (seb z
_lá) z (sóh z
ré) z (serleg z
_tí) z (zsák z
ré) z (sárká z
ké) z (seb z
matró) z (sipk z
_mé) z (ser z
_ő) z (sut z
_ő) z (seb z
ré) z (sark z
ré) z (sav z
ré) z (sipk z
ré) z (sod z
tí) z (sáv z
_tí) z (shill z
topá) z z


.group .group
$ dolla:R2 $ dolla:R2

+ 4
- 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
பாதாம் $alt பாதாம் $alt
போகம் $alt போகம் $alt
போதனை $alt போதனை $alt
பலிக்குத்தான் $alt பலிக்குத்தான் $alt
பவ $alt பவ $alt
புஸ் $alt புஸ் $alt
போஸின் $alt
போனி $alt போனி $alt
பிஸி $alt பிஸி $alt
பேஷ் $alt பேஷ் $alt
புக்கர் $alt புக்கர் $alt
பாதிக்க $alt பாதிக்க $alt
பலக்க $alt பலக்க $alt

பூமா $alt
பூம்பா $alt
பலத்து $alt
பலத்தும் $alt






தீரமுள்ள $alt தீரமுள்ள $alt
தீரமற்ற $alt தீரமற்ற $alt
தலாய் $alt தலாய் $alt
தானம் $alt
தீரமும் $alt தீரமும் $alt
தீரத்தோடு $alt தீரத்தோடு $alt
தவத்தில் $alt தவத்தில் $alt

+ 261
- 43
dictsource/ta_rules
File diff suppressed because it is too large
View File


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

dictrules 3 6 dictrules 3 6
option reduce_t 1 option reduce_t 1


stressLength 145 125 190 170 0 0 260 290
stressLength 145 125 190 170 0 0 260 300
stressAmp 17 16 19 19 19 19 21 19 stressAmp 17 16 19 19 19 19 21 19


replace 03 I i replace 03 I i

+ 9
- 8
phsource/compile_report View File

base2 26 123 base2 26 123
en 53 153 en 53 153
en-n 33 153 en-n 33 153
en-us 39 154
en-us 40 154
en-sc 40 155 en-sc 40 155
en-rp 34 153 en-rp 34 153
en-wm 31 153 en-wm 31 153
[l/] fr [l/] fr
l/l_@ [l/3] base l/l_@ [l/3] base
[l/] fr [l/] fr
l/l@ [h] base
l/l@ [hVv] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
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] base
l/la [hVv] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[K] tn [K] tn
l/l_a [l/3] base l/l_a [l/3] base
[l/] fr [l/] fr
l/le [h] base
l/le [hVv] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[&:] 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] base
l/li [hVv] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
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] base
l/lo [hVv] base
[l#] base [l#] base
[l/2] fr [l/2] fr
[K] nso [K] nso
l^/l_rfx [l.] base l^/l_rfx [l.] base
[l] ru [l] ru
[l^] ru [l^] ru
l/lu [h] base
l/lu [hVv] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[I] ku [I] ku
[I#] sq [I#] sq
[i] tn [i] tn
vowel/ii# [Y] cy
vowel/ii# [I#] en-us
[Y] cy
[Y] ru [Y] ru
[I] ku [I] ku
[i] sq [i] sq

+ 1
- 0
phsource/mbrola/de2 View File

0 @5 NULL 0 @ 0 @5 NULL 0 @
0 a# NULL 0 @ 0 a# NULL 0 @
0 I2 NULL 0 I 0 I2 NULL 0 I
0 i NULL 0 I
0 aa NULL 0 a 0 aa NULL 0 a
0 V NULL 0 a: 0 V NULL 0 a:
0 0 NULL 0 O 0 0 NULL 0 O

+ 1
- 0
phsource/mbrola/de4 View File

0 @5 NULL 0 @ 0 @5 NULL 0 @
0 a# NULL 0 @ 0 a# NULL 0 @
0 I2 NULL 0 I 0 I2 NULL 0 I
0 i NULL 0 I
0 aa NULL 0 a 0 aa NULL 0 a
0 V NULL 0 a: 0 V NULL 0 a:
0 0 NULL 0 O 0 0 NULL 0 O

+ 1
- 0
phsource/mbrola/de6 View File

0 @5 NULL 0 @ 0 @5 NULL 0 @
0 a# NULL 0 @ 0 a# NULL 0 @
0 I2 NULL 0 I 0 I2 NULL 0 I
0 i NULL 0 I
0 aa NULL 0 a 0 aa NULL 0 a
0 V NULL 0 a: 0 V NULL 0 a:
0 0 NULL 0 a: 0 0 NULL 0 a:

+ 1
- 0
phsource/mbrola/sv View File

0 @2 NULL 0 @ 0 @2 NULL 0 @
0 @5 NULL 0 @ 0 @5 NULL 0 @
0 I2 NULL 0 I 0 I2 NULL 0 I
0 i NULL 0 I
0 V NULL 0 u0 0 V NULL 0 u0
0 aa NULL 0 a 0 aa NULL 0 a
0 0 NULL 0 A: 0 0 NULL 0 A:

+ 1
- 0
phsource/mbrola/sv2 View File

0 @2 NULL 0 @ 0 @2 NULL 0 @
0 @5 NULL 0 @ 0 @5 NULL 0 @
0 I2 NULL 0 I 0 I2 NULL 0 I
0 i NULL 0 i
0 V NULL 0 u0 0 V NULL 0 u0
0 aa NULL 0 a 0 aa NULL 0 a
0 0 NULL 0 A: 0 0 NULL 0 A:

+ 1
- 0
phsource/mbrola/us View File

0 U@ NULL 50 U r 0 U@ NULL 50 U r
0 i@ NULL 50 I @ 0 i@ NULL 50 I @
0 i@3 NULL 60 i r 0 i@3 NULL 60 i r
0 I# NULL 0 @


4 p VWL 0 p_h 4 p VWL 0 p_h
4 t VWL 0 t_h 4 t VWL 0 t_h

+ 1
- 0
phsource/mbrola/us3 View File

0 aI NULL 0 AI 0 aI NULL 0 AI
0 oU NULL 0 @U 0 oU NULL 0 @U
0 O: NULL 0 O 0 O: NULL 0 O
0 I# NULL 0 @


0 0 NULL 0 A 0 0 NULL 0 A
0 O NULL 0 O 0 O NULL 0 O

+ 3
- 0
phsource/ph_english View File

IF nextPh(l/2) THEN IF nextPh(l/2) THEN
FMT(vwl_en/u_L) FMT(vwl_en/u_L)
ENDIF ENDIF
IF prevPhW(j) THEN
length 180
ENDIF
FMT(vdiph2/uw_2) FMT(vdiph2/uw_2)
endphoneme endphoneme



+ 11
- 1
phsource/ph_english_us View File

endphoneme endphoneme




phoneme I#
vowel starttype #i endtype #i
unstressed
length 160
// FMT(vowel/@_fnt)
FMT(vowel/ii#)
endphoneme



phoneme i // optional variant of [I] for end of words phoneme i // optional variant of [I] for end of words
vowel starttype #i endtype #i vowel starttype #i endtype #i
unstressed unstressed


phoneme A: phoneme A:
vowel starttype #a endtype #a vowel starttype #a endtype #a
length 210
length 200
IF nextPh(r) THEN IF nextPh(r) THEN
FMT(vwl_en_us/ar) FMT(vwl_en_us/ar)
ENDIF ENDIF

+ 5
- 0
platforms/windows/espeakedit/src/speech.h View File

typedef unsigned short USHORT; typedef unsigned short USHORT;
typedef unsigned char UCHAR; typedef unsigned char UCHAR;
typedef double DOUBLEX; typedef double DOUBLEX;
#ifdef __WIN64__
typedef uint64_t long64; // use this for conversion between pointers and integers
#else
typedef unsigned long long64;
#endif

+ 5
- 0
platforms/windows/espeakedit/src_copy/speech.h View File

typedef unsigned short USHORT; typedef unsigned short USHORT;
typedef unsigned char UCHAR; typedef unsigned char UCHAR;
typedef double DOUBLEX; typedef double DOUBLEX;
#ifdef __WIN64__
typedef uint64_t long64; // use this for conversion between pointers and integers
#else
typedef unsigned long long64;
#endif

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

// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,45,00
PRODUCTVERSION 1,0,45,00
FILEVERSION 1,0,46,00
PRODUCTVERSION 1,0,46,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,45,00\0"
VALUE "InternalName", "espeak1.45\0"
VALUE "FileVersion", "1, 0,46,00\0"
VALUE "InternalName", "espeak1.46\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, 45, 00\0"
VALUE "ProductVersion", "1, 0, 46, 00\0"
VALUE "SpecialBuild", "\0" VALUE "SpecialBuild", "\0"
END END
END END

+ 1
- 1
src/dictionary.cpp View File



if(p[0] == RULE_REPLACEMENTS) if(p[0] == RULE_REPLACEMENTS)
{ {
pw = (unsigned int *)(((long)p+4) & ~3); // advance to next word boundary
pw = (unsigned int *)(((long64)p+4) & ~3); // advance to next word boundary
tr->langopts.replace_chars = pw; tr->langopts.replace_chars = pw;
while(pw[0] != 0) while(pw[0] != 0)
{ {

+ 1
- 1
src/phonemelist.cpp View File

next = phoneme_tab[plist3->phcode]; // this phoneme, i.e. after the insert next = phoneme_tab[plist3->phcode]; // this phoneme, i.e. after the insert


// re-use the previous entry for the inserted phoneme. // re-use the previous entry for the inserted phoneme.
// That's OK because we don't look backwards from plist3
// That's OK because we don't look backwards from plist3 *** but CountVowelPosiion() and isAfterStress does !!!
j--; j--;
plist3 = plist3_inserted = &ph_list3[j]; plist3 = plist3_inserted = &ph_list3[j];
if(j > 0) if(j > 0)

+ 2
- 2
src/speak_lib.cpp View File

if((type == espeakEVENT_MARK) || (type == espeakEVENT_PLAY)) if((type == espeakEVENT_MARK) || (type == espeakEVENT_PLAY))
ep->id.name = &namedata[value]; ep->id.name = &namedata[value];
else else
#ifdef deleted
//#ifdef deleted
// temporarily removed, don't introduce until after eSpeak version 1.46.02 // temporarily removed, don't introduce until after eSpeak version 1.46.02
if(type == espeakEVENT_PHONEME) if(type == espeakEVENT_PHONEME)
{ {
p[1] = value2; p[1] = value2;
} }
else else
#endif
//#endif
{ {
ep->id.number = value; ep->id.number = value;
} }

+ 11
- 3
src/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 2010 by Jonathan Duddington *
* Copyright (C) 2005 to 2012 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 *
#define ESPEAK_API #define ESPEAK_API
#endif #endif


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


Revision 6 Revision 6
Added macros: espeakRATE_MINIMUM, espeakRATE_MAXIMUM, espeakRATE_NORMAL Added macros: espeakRATE_MINIMUM, espeakRATE_MAXIMUM, espeakRATE_NORMAL

Revision 7 24.Dec.2011
Changed espeak_EVENT structure to add id.string[] for phoneme mnemonics.
Added espeakINITIALIZE_PHONEME_IPA option for espeak_Initialize() to report phonemes as IPA names.

*/ */
/********************/ /********************/
/* Initialization */ /* Initialization */
int sample; // sample id (internal use) int sample; // sample id (internal use)
void* user_data; // pointer supplied by the calling program void* user_data; // pointer supplied by the calling program
union { union {
int number; // used for WORD and SENTENCE events. For PHONEME events this is the phoneme mnemonic.
int number; // used for WORD and SENTENCE events.
const char *name; // used for MARK and PLAY events. UTF8 string const char *name; // used for MARK and PLAY events. UTF8 string
char string[8]; // used for phoneme names (UTF8). Terminated by a zero byte unless the name needs the full 8 bytes.
} id; } id;
} espeak_EVENT; } espeak_EVENT;
/* /*
} espeak_ERROR; } espeak_ERROR;


#define espeakINITIALIZE_PHONEME_EVENTS 0x0001 #define espeakINITIALIZE_PHONEME_EVENTS 0x0001
#define espeakINITIALIZE_PHONEME_IPA 0x0002
#define espeakINITIALIZE_DONT_EXIT 0x8000 #define espeakINITIALIZE_DONT_EXIT 0x8000


#ifdef __cplusplus #ifdef __cplusplus
path: The directory which contains the espeak-data directory, or NULL for the default location. path: The directory which contains the espeak-data directory, or NULL for the default location.


options: bit 0: 1=allow espeakEVENT_PHONEME events. options: bit 0: 1=allow espeakEVENT_PHONEME events.
bit 1: 1= espeakEVENT_PHONEME events give IPA phoneme names, not eSpeak phoneme names
bit 15: 1=don't exit if espeak_data is not found (used for --help) bit 15: 1=don't exit if espeak_data is not found (used for --help)


Returns: sample rate in Hz, or -1 (EE_INTERNAL_ERROR). Returns: sample rate in Hz, or -1 (EE_INTERNAL_ERROR).

+ 1
- 1
src/speech.h View File

typedef unsigned short USHORT; typedef unsigned short USHORT;
typedef unsigned char UCHAR; typedef unsigned char UCHAR;
typedef double DOUBLEX; typedef double DOUBLEX;
typedef unsigned long long64; // use this for conversion between pointers and integers







+ 1
- 1
src/synthdata.cpp View File

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


const char *version_string = "1.46.02 06.Jan.12";
const char *version_string = "1.46.14 22.Feb.12";
const int version_phdata = 0x014600; const int version_phdata = 0x014600;


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

+ 37
- 28
src/synthesize.cpp View File



static void DoAmplitude(int amp, unsigned char *amp_env) static void DoAmplitude(int amp, unsigned char *amp_env)
{//===================================================== {//=====================================================
long *q;
long64 *q;


last_amp_cmd = wcmdq_tail; last_amp_cmd = wcmdq_tail;
amp_length = 0; // total length of vowel with this amplitude envelope amp_length = 0; // total length of vowel with this amplitude envelope
q = wcmdq[wcmdq_tail]; q = wcmdq[wcmdq_tail];
q[0] = WCMD_AMPLITUDE; q[0] = WCMD_AMPLITUDE;
q[1] = 0; // fill in later from amp_length q[1] = 0; // fill in later from amp_length
q[2] = (long)amp_env;
q[2] = (long64)amp_env;
q[3] = amp; q[3] = amp;
WcmdqInc(); WcmdqInc();
} // end of DoAmplitude } // end of DoAmplitude


static void DoPitch(unsigned char *env, int pitch1, int pitch2) static void DoPitch(unsigned char *env, int pitch1, int pitch2)
{//============================================================ {//============================================================
long *q;
long64 *q;


EndPitch(0); EndPitch(0);


q = wcmdq[wcmdq_tail]; q = wcmdq[wcmdq_tail];
q[0] = WCMD_PITCH; q[0] = WCMD_PITCH;
q[1] = 0; // length, fill in later from pitch_length q[1] = 0; // length, fill in later from pitch_length
q[2] = (long)env;
q[2] = (long64)env;
q[3] = (pitch1 << 16) + pitch2; q[3] = (pitch1 << 16) + pitch2;
WcmdqInc(); WcmdqInc();
} // end of DoPitch } // end of DoPitch
int min_length; int min_length;
int x; int x;
int len4; int len4;
long *q;
long64 *q;
unsigned char *p; unsigned char *p;


index = index & 0x7fffff; index = index & 0x7fffff;
q = wcmdq[wcmdq_tail]; q = wcmdq[wcmdq_tail];
q[0] = WCMD_WAVE2; q[0] = WCMD_WAVE2;
q[1] = length | (wav_length << 16); // length in samples q[1] = length | (wav_length << 16); // length in samples
q[2] = long(&wavefile_data[index]);
q[2] = long64(&wavefile_data[index]);
q[3] = wav_scale + (amp << 8); q[3] = wav_scale + (amp << 8);
WcmdqInc(); WcmdqInc();
return(length); return(length);
q = wcmdq[wcmdq_tail]; q = wcmdq[wcmdq_tail];
q[0] = WCMD_WAVE; q[0] = WCMD_WAVE;
q[1] = x; // length in samples q[1] = x; // length in samples
q[2] = long(&wavefile_data[index]);
q[2] = long64(&wavefile_data[index]);
q[3] = wav_scale + (amp << 8); q[3] = wav_scale + (amp << 8);
WcmdqInc(); WcmdqInc();


q = wcmdq[wcmdq_tail]; q = wcmdq[wcmdq_tail];
q[0] = WCMD_WAVE; q[0] = WCMD_WAVE;
q[1] = len4*2; // length in samples q[1] = len4*2; // length in samples
q[2] = long(&wavefile_data[index+x]);
q[2] = long64(&wavefile_data[index+x]);
q[3] = wav_scale + (amp << 8); q[3] = wav_scale + (amp << 8);
WcmdqInc(); WcmdqInc();


q = wcmdq[wcmdq_tail]; q = wcmdq[wcmdq_tail];
q[0] = WCMD_WAVE; q[0] = WCMD_WAVE;
q[1] = length; // length in samples q[1] = length; // length in samples
q[2] = long(&wavefile_data[index+x]);
q[2] = long64(&wavefile_data[index+x]);
q[3] = wav_scale + (amp << 8); q[3] = wav_scale + (amp << 8);
WcmdqInc(); WcmdqInc();
} }
{//========================== {//==========================
// Limit the rate of frequence change of formants, to reduce chirping // Limit the rate of frequence change of formants, to reduce chirping


long *q;
long64 *q;
frame_t *frame; frame_t *frame;
frame_t *frame2; frame_t *frame2;
frame_t *frame1; frame_t *frame1;
frame1 = (frame_t *)q[3]; frame1 = (frame_t *)q[3];
if(frame1 == frame) if(frame1 == frame)
{ {
q[3] = (long)frame2;
q[3] = (long64)frame2;
frame1 = frame2; frame1 = frame2;
} }
else else
modified = 1; modified = 1;
} }
frame2->ffreq[pk] = frame1->ffreq[pk] + allowed; frame2->ffreq[pk] = frame1->ffreq[pk] + allowed;
q[2] = (long)frame2;
q[2] = (long64)frame2;
} }
else else
if(diff < -allowed) if(diff < -allowed)
modified = 1; modified = 1;
} }
frame2->ffreq[pk] = frame1->ffreq[pk] - allowed; frame2->ffreq[pk] = frame1->ffreq[pk] - allowed;
q[2] = (long)frame2;
q[2] = (long64)frame2;
} }
} }
} }
{ {
if(frame1 == frame) if(frame1 == frame)
{ {
q[2] = (long)frame2;
q[2] = (long64)frame2;
frame1 = frame2; frame1 = frame2;
} }
else else
modified = 1; modified = 1;
} }
frame2->ffreq[pk] = frame1->ffreq[pk] + allowed; frame2->ffreq[pk] = frame1->ffreq[pk] + allowed;
q[3] = (long)frame2;
q[3] = (long64)frame2;
} }
else else
if(diff < -allowed) if(diff < -allowed)
modified = 1; modified = 1;
} }
frame2->ffreq[pk] = frame1->ffreq[pk] - allowed; frame2->ffreq[pk] = frame1->ffreq[pk] - allowed;
q[3] = (long)frame2;
q[3] = (long64)frame2;
} }
} }
} }
frame_t *frame2; frame_t *frame2;
frame_t *fr; frame_t *fr;
int ix; int ix;
long *q;
long64 *q;
int len; int len;
int frame_length; int frame_length;
int length_factor; int length_factor;
&& !(last_frame->frflags & FRFLAG_BREAK)) && !(last_frame->frflags & FRFLAG_BREAK))
{ {
// last frame of previous sequence was zero-length, replace with first of this sequence // last frame of previous sequence was zero-length, replace with first of this sequence
wcmdq[last_wcmdq][3] = (long)frame1;
wcmdq[last_wcmdq][3] = (long64)frame1;


if(last_frame->frflags & FRFLAG_BREAK_LF) if(last_frame->frflags & FRFLAG_BREAK_LF)
{ {
fr->ffreq[ix] = last_frame->ffreq[ix]; fr->ffreq[ix] = last_frame->ffreq[ix];
fr->fheight[ix] = last_frame->fheight[ix]; fr->fheight[ix] = last_frame->fheight[ix];
} }
wcmdq[last_wcmdq][3] = (long)fr;
wcmdq[last_wcmdq][3] = (long64)fr;
} }
} }
} }
q = wcmdq[wcmdq_tail]; q = wcmdq[wcmdq_tail];
q[0] = wcmd_spect; q[0] = wcmd_spect;
q[1] = len + (modulation << 16); q[1] = len + (modulation << 16);
q[2] = long(frame1);
q[3] = long(frame2);
q[2] = (long64)frame1;
q[3] = (long64)frame2;
WcmdqInc(); WcmdqInc();
} }
v2 = (voice_t *)malloc(sizeof(voice_t)); v2 = (voice_t *)malloc(sizeof(voice_t));
memcpy(v2,v,sizeof(voice_t)); memcpy(v2,v,sizeof(voice_t));
wcmdq[wcmdq_tail][0] = WCMD_VOICE; wcmdq[wcmdq_tail][0] = WCMD_VOICE;
wcmdq[wcmdq_tail][1] = (long)(v2);
wcmdq[wcmdq_tail][2] = (long64)v2;
WcmdqInc(); WcmdqInc();
} }


DoPause(10,0); // ensure a break in the speech DoPause(10,0); // ensure a break in the speech
wcmdq[wcmdq_tail][0] = WCMD_WAVE; wcmdq[wcmdq_tail][0] = WCMD_WAVE;
wcmdq[wcmdq_tail][1] = soundicon_tab[value].length; wcmdq[wcmdq_tail][1] = soundicon_tab[value].length;
wcmdq[wcmdq_tail][2] = (long)soundicon_tab[value].data + 44; // skip WAV header
wcmdq[wcmdq_tail][2] = (long64)soundicon_tab[value].data + 44; // skip WAV header
wcmdq[wcmdq_tail][3] = 0x1500; // 16 bit data, amp=21 wcmdq[wcmdq_tail][3] = 0x1500; // 16 bit data, amp=21
WcmdqInc(); WcmdqInc();
} }
unsigned char *amp_env; unsigned char *amp_env;
PHONEME_TAB *ph; PHONEME_TAB *ph;
int use_ipa=0; int use_ipa=0;
int done_phoneme_marker;
char phoneme_name[16]; char phoneme_name[16];
static int sourceix=0; static int sourceix=0;


if(p->prepause > 0) if(p->prepause > 0)
DoPause(p->prepause,1); DoPause(p->prepause,1);


if(option_phoneme_events && (p->type != phVOWEL) && (p->ph->code != phonEND_WORD))
done_phoneme_marker = 0;
if(option_phoneme_events && (p->ph->code != phonEND_WORD))
{ {
// Note, for vowels, do the phoneme event after the vowel-start
WritePhMnemonic(phoneme_name, p->ph, p, use_ipa);
DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name);
if((p->type == phVOWEL) && (prev->type==phLIQUID || prev->type==phNASAL))
{
// For vowels following a liquid or nasal, do the phoneme event after the vowel-start
}
else
{
WritePhMnemonic(phoneme_name, p->ph, p, use_ipa);
DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name);
done_phoneme_marker = 1;
}
} }


switch(p->type) switch(p->type)
DoSpect2(ph, 1, &fmtp, p, modulation); DoSpect2(ph, 1, &fmtp, p, modulation);
} }


if(option_phoneme_events)
if((option_phoneme_events) && (done_phoneme_marker == 0))
{ {
WritePhMnemonic(phoneme_name, p->ph, p, use_ipa); WritePhMnemonic(phoneme_name, p->ph, p, use_ipa);
DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name); DoPhonemeMarker(espeakEVENT_PHONEME, sourceix, 0, phoneme_name);

+ 1
- 1
src/synthesize.h View File

#define N_WCMDQ 170 #define N_WCMDQ 170
#define MIN_WCMDQ 25 // need this many free entries before adding new phoneme #define MIN_WCMDQ 25 // need this many free entries before adding new phoneme


extern long wcmdq[N_WCMDQ][4];
extern long64 wcmdq[N_WCMDQ][4];
extern int wcmdq_head; extern int wcmdq_head;
extern int wcmdq_tail; extern int wcmdq_tail;



+ 4
- 4
src/wavegen.cpp View File

int outbuf_size = 0; int outbuf_size = 0;


// the queue of operations passed to wavegen from sythesize // the queue of operations passed to wavegen from sythesize
long wcmdq[N_WCMDQ][4];
long64 wcmdq[N_WCMDQ][4];
int wcmdq_head=0; int wcmdq_head=0;
int wcmdq_tail=0; int wcmdq_tail=0;


// return: 0 output buffer has been filled // return: 0 output buffer has been filled
// return: 1 input command queue is now empty // return: 1 input command queue is now empty


long *q;
long64 *q;
int length; int length;
int result; int result;
int marker_type; int marker_type;
break; break;


case WCMD_VOICE: case WCMD_VOICE:
WavegenSetVoice((voice_t *)q[1]);
free((voice_t *)q[1]);
WavegenSetVoice((voice_t *)q[2]);
free((voice_t *)q[2]);
break; break;


case WCMD_EMBEDDED: case WCMD_EMBEDDED:

Loading…
Cancel
Save